When someone joins, moves or leaves in PayFit, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect PayFit to Microsoft Entra ID, Joinly reads each HR change at the source — through the PayFit REST API — and applies it automatically to the right account. PayFit stays your source of truth; Joinly is the engine that keeps every action accurate and traceable.
Key takeaways
PayFit stays your source of truth; Joinly applies every joiner, mover and leaver to Entra ID automatically.
Joinly reads the PayFit API at the collaborator and contract level and maps those to the right Entra ID groups and licences — role-to-group logic a generic HRIS connector doesn’t provide on its own.
Because the contract is PayFit’s central object, Joinly resolves which contract should drive the account, so a collaborator with more than one contract still gets one clean, stable identity.
Multi-country PayFit setups (France, Spain, Germany, UK) are handled per company, with mapping rules that respect the SIREN/SIRET structure and country-specific fields.
Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001, in an EU data centre.
Quick facts
Source system | PayFit (HR & payroll) |
Target system | Microsoft Entra ID (formerly Azure AD) |
Connection method | PayFit REST API → Entra ID |
Supported events | Joiner, mover, leaver (incl. rehire, contract changes, multi-contract collaborators) |
Synced attributes | Name, email / UPN, job title, manager, department, company (SIRET), contract start and end date |
Authentication | PayFit API key (bearer token) with scoped access; company_id via introspect |
Real-time or batch | Frequent sync, multiple times per day |
Compliance | ISO 27001, NIS2-ready, GDPR (EU data centre) |
How does Joinly sync PayFit to Microsoft Entra ID?
Joinly reads each HR change in PayFit through the REST API and applies it to the matching Entra ID account automatically. PayFit holds the authoritative collaborator and contract record, so it is the starting point for each identity action.
Joiner. HR completes the hire in PayFit. Joinly reads the new collaborator and their active contract and determines the role from attributes like job title, department, company and manager. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups — timed to the contract start date.
Mover. When a collaborator changes role, department or company in PayFit, or a new contract becomes the active one, Joinly updates their group membership, permissions and licences to match. Access that no longer fits the new position is revoked, so permissions stay aligned with the actual job.
Leaver. On the contract end date recorded in PayFit, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and where a collaborator holds more than one contract, access is only removed when the last active contract ends.
Example: A French tech scale-up hires a back-end engineer in PayFit with a start date next Monday, on a French company (SIRET). Joinly reads the collaborator and contract, waits until the start date, creates the Entra ID account, assigns a Microsoft 365 E3 licence and adds the engineer to the FR-Engineering group. When that person later picks up a second contract on the group’s Spanish entity, Joinly keeps a single stable UPN and adds the extra group rather than creating a duplicate account.
What manual user management costs
Without automation, every account starts as a PayFit change that IT works through by hand or a line in a spreadsheet. A generic HRIS/iPaaS connector can move PayFit attributes into Entra ID, but it maps roles to groups through hand-built rules and doesn’t understand PayFit’s contract model — so the part that actually decides access still falls to people.
Onboarding delays. New joiners wait for accounts, licences and group access while a request sits in a queue, losing productive days in their first week.
Permissions that don’t keep up (privilege creep). When movers change role, company or contract, old access often stays attached, so people accumulate rights they no longer need.
Forgotten offboarding. Accounts that aren’t disabled on time are both a security and audit risk, and unused licences keep costing money — and with multi-contract collaborators it is easy to disable an account while another contract is still active.
Joinly vs. a generic HRIS connector
There is no Microsoft-published PayFit inbound provisioning app, and Entra Cloud Sync can’t read PayFit, so the realistic alternative is a generic unified-HRIS or iPaaS connector. It’s a fine pipe for attributes, but it stops short of the part that actually decides access. Here’s how the two compare for a PayFit-driven setup.
Joinly | Generic HRIS / iPaaS connector | |
|---|---|---|
Source | Reads the PayFit API directly (collaborators + contracts) | Reads the PayFit API, attribute-level only |
Role-to-group mapping | Built in, rule-based on job title / department / company | Not out of the box; hand-built in the middleware |
Multi-contract collaborators | Resolves which contract drives the account | Typically takes the last active contract as-is |
Multi-country (SIREN / SIRET) | Per-company mapping rules across countries | Manual per-connection configuration |
Licence assignment | Driven by role / attributes | Manual or group-based only |
On-premise AD | Yes, own agent plus the native Microsoft agent | Usually cloud-only; AD not covered |
Audit trail | Per-action logging tied to the HR source | Limited |
Watch-outs when connecting PayFit to Microsoft Entra ID
A few PayFit-specific details decide whether this connection stays reliable at scale.
The contract is the central object. In PayFit a collaborator is always tied to one or more contracts, and by default PayFit exposes the last active contract only. A naive rule can therefore drive a stale or wrong contract into Entra ID. Joinly applies explicit rules to pick the contract that should own the account, so the identity reflects the person’s real current position.
Multi-contract and rehired collaborators. A collaborator can hold more than one active contract, or return on a new one. Joinly keeps a single, stable UPN driven by the primary contract while still reflecting the extra access, so a second contract adds groups rather than creating a duplicate account.
Multi-country structure (SIREN / SIRET). PayFit organises data as a holding (SIREN) with one or more companies (SIRET), and endpoints and fields differ per country. Joinly builds mapping rules per company, so a French, Spanish, German or UK entity each lands in the right Entra groups and licences.
UPN format with duplicate names. When two collaborators share a name, a naive UPN rule produces collisions. Joinly applies custom transformation rules — a suffix, company code or controlled tiebreaker — so every UPN is unique and predictable from day one.
Country-specific and custom fields. Not every PayFit attribute is available on every plan or country. Joinly maps the fields you actually have via Liquid templates, so attributes like a local employee number or cost centre land in the right place.
Joinly handles each of these by default with custom mapping and transformation.
Always audit-ready
Every account action Joinly performs is logged: who was affected, when it happened, which access changed and which PayFit change triggered it. For NIS2 that matters directly: access can be traced back to an authorised HR source rather than an ad-hoc request. Joinly is ISO 27001 certified, runs in an EU data centre in Amsterdam, applies least-privilege by default, and is built to meet NIS2 and ISO 27001.
Example case
Picture a French tech startup with around 220 employees across offices in Paris, Barcelona and Berlin, running PayFit as its HR and payroll core while its identity setup never quite keeps up. A generic HRIS connector pushes basic attributes into Entra ID, yet fast hiring, contractors converting to permanent staff and the odd person on a second contract across two entities keep breaking it — engineers with an extra contract end up with the wrong details synced, and new hires are provisioned the moment HR saves the record rather than on their actual start date.
Connect PayFit to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in PayFit at the source and acts on it automatically: new hires have their account, Microsoft 365 licence and group access ready on their contract start date, a move between entities swaps the right groups the same day, a second contract keeps a single, stable UPN, and leavers are disabled on their end date with a 30-day soft-delete grace window.
“We were hiring faster than IT could create accounts, and multi-country contracts made it worse. Now an account is simply ready on the start date, a second contract just adds access, and we can show exactly which PayFit change created every bit of access.” — Head of IT, tech startup
The outcome this setup is designed for: onboarding drops from days to zero touch, multi-contract errors stop, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.
More than a connector
A standalone PayFit to Entra ID connection is a good start, but identity rarely stops at one target. Joinly manages the complete chain from joiner to leaver across all your systems, with logging and governance built in. You review the exceptions; Joinly maintains the chain.
Schedule a demo
Installation guide
Follow these steps to connect PayFit to Microsoft Entra ID with Joinly. The entire cloud setup happens in the platform, with no scripts or local software required.
1. Create your account
Go to platform.joinly.app and create your account.
Note: charges may apply for using the platform after the trial period ends.

Sign up at platform.joinly.app to get started.
2. Connect your Microsoft account
Open platform.joinly.app/settings/provisioning/idp-setup and connect your Microsoft tenant. Select the scopes you need. For provisioning you don’t need any additional scopes.

Connect your Microsoft tenant and pick your scopes.
3. Import your existing accounts from Entra ID
Import all existing accounts from Entra ID at platform.joinly.app/settings/provisioning/entra-import. This gives Joinly a baseline of every account that already exists, so it can match people to their current account instead of creating duplicates.
4. Find the PayFit integration in the Joinly marketplace
Open the Joinly marketplace and search for the PayFit integration.
Don’t see your system listed? Get in touch at support@koppelhet.nl and we’ll help you out.

Search the marketplace for the PayFit integration.
5. Follow the installation wizard
You may be redirected to integrations.joinly.app. Create an account there and enter your PayFit connection details: your PayFit API key (created as an admin in the PayFit integrations hub with the appropriate scopes) and your company_id. We only ask for the information needed to establish a successful connection with PayFit. All data is encrypted and stored securely.

Enter your PayFit API key and company_id in the wizard.
6. Configure your field mapping
Set up all your field mappings here. Templates support Liquid, so you can build your display name, UPN and other attributes dynamically from PayFit collaborator and contract fields.
Frequently asked questions
How do I map the manager? Reference the collaborator’s manager in the mapping and Joinly resolves the link to the right manager automatically.
How do I handle multiple contracts? Pick the primary contract as the driver for the UPN; Joinly exposes the active contracts so you can choose the one that owns the account.
How do I prevent duplicate usernames? Use the
generateUniqueUsernamehelper, which falls back to the next pattern when the first one is already taken:{{ generateUniqueUsername: “{firstName}.{prefix}.{lastName}”, “{initials}.{prefix}.{lastName}” }}

Map PayFit fields to Entra ID attributes with Liquid templates.
7. Configure the scheduled import
At platform.joinly.app/settings/import-configs, configure how often the import from PayFit should run.
8. Configure your workflows
Workflows are where Joinly turns each HR change into the right action in Entra ID. Create an onboarding (joiner) and offboarding (leaver) workflow with trigger-based execution, then an Identity updated workflow with a Create/update employee in Entra action so every change in PayFit flows straight through to Entra ID. Finally, add a threshold workflow with the Entra soft delete action that runs a set period after the contract end date (for example 30 days) to retire accounts safely.

Create a trigger-based onboarding workflow.

Add the create/update action, then set your matching strategy and field mapping.

Add the Entra soft delete action to retire accounts safely.
## AD on-premise support
Need to provision to an on-premise Active Directory as well? See our dedicated guide on connecting PayFit to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.
Frequently asked questions
Does the PayFit to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day, so changes in PayFit reach Entra ID quickly without waiting for a nightly batch.
How does Joinly handle collaborators with more than one contract?
Joinly reads all active contracts for a collaborator and applies your rules to pick the primary contract as the driver for the UPN, so a second contract adds access without creating a duplicate account or breaking sign-in.
How does Joinly handle PayFit’s multi-country setup?
PayFit organises data as a holding (SIREN) with one or more companies (SIRET), and Joinly builds mapping rules per company, so each French, Spanish, German or UK entity gets the right groups and licences.
Which attributes sync from PayFit to Entra ID?
Name, email / UPN, job title, manager, department, company (SIRET) and contract start and end date. Fields vary by country and plan and can be mapped via Liquid templates where PayFit exposes them.
Do I still need a separate HRIS or iPaaS connector?
No. Joinly takes over the provisioning, role-to-group mapping and contract handling that a generic connector does manually or not at all, and maintains it as your PayFit data changes.
Does Joinly also support AD on-premise or hybrid provisioning?
Yes. Joinly has its own AD on-premise agent and also supports the native Microsoft Entra provisioning agent, so you can provision users to your on-premise AD environment as well. See the PayFit to Active Directory guide.


