Skip to main content
Joinly by KoppelHet

Paycom → Microsoft Entra ID (formerly Azure AD)

Connect Paycom to Microsoft Entra ID

When someone joins, moves or leaves in Paycom, you want that change reflected in Microsoft Entra ID without anyone touching it by hand. To connect Paycom to Microsoft Entra ID, Joinly reads each HR change at the source — through Paycom’s REST API, working within the restricted access Paycom grants per customer — and applies it automatically to the right account. Paycom stays your source of truth; Joinly is the engine that keeps every action accurate and traceable.

Key takeaways

  • Paycom stays your source of truth; Joinly applies every joiner, mover and leaver to Entra ID automatically — even though Paycom offers no native SCIM provisioning.

  • Joinly works within Paycom’s restricted API: an API user, an API SID and Token, IP whitelisting and rate limits are handled as part of setup, so the hard part — getting clean HR data out of Paycom — is solved once.

  • Joinly maps Paycom positions, departments and locations to the right Entra ID groups and licences, driving access from the position rather than a free-text title.

  • Multi-EIN companies are handled correctly, so the same person under different EINs resolves to one stable account instead of duplicates.

  • Every action is logged for a complete audit trail, aligned with NIS2 and ISO 27001.

Quick facts

Source system

Paycom (HCM / payroll)

Target system

Microsoft Entra ID (formerly Azure AD)

Connection method

Paycom REST API (API SID / Token) → Entra ID

Supported events

Joiner, mover, leaver (incl. rehire, position change, multi-EIN)

Synced attributes

Name, email / UPN, department, position / job title, manager, location, EIN, start and end date

Authentication

API user with API SID and API Token (custom headers); IP whitelisting

Real-time or batch

Frequent sync, multiple times per day (within Paycom rate limits)

Compliance

ISO 27001, NIS2-ready, GDPR (EU data centre)

Liever in het Nederlands? Paycom koppelen met Microsoft Entra ID

How does Joinly sync Paycom to Microsoft Entra ID?

Joinly reads each HR change in Paycom through its REST API and applies it to the matching Entra ID account automatically. Paycom holds the authoritative employee and position record, so it is the starting point for each identity action — and because Paycom restricts API access, Joinly is configured once against the API user and credentials your Paycom representative provisions.

  1. Joiner. HR completes the hire in Paycom. Joinly reads the new employee record and determines the role from the assigned position, department and location. It then creates the account in Entra ID, assigns the right licences and maps the person into the correct groups — timed to the start date on the Paycom record.

  2. Mover. When someone changes position, department or location in Paycom, Joinly updates their group membership, permissions and licences to match. Because Paycom ties job details to the position rather than the person, a position change is a clean signal Joinly acts on, and access that no longer fits is revoked.

  3. Leaver. On the termination date recorded in Paycom, Joinly disables the Entra ID account automatically. There are no orphaned accounts left active after someone has left, and where a person exists under more than one EIN, access is only removed when the last active employment ends.

Example: An insurance company hires a claims adjuster in Paycom with a start date next Monday, assigned to the Claims position at its Phoenix location under its operating EIN. Joinly reads the record, waits until the start date, creates the Entra ID account, assigns an Office E3 licence and adds the adjuster to the Claims-Operations group. When that adjuster later moves into a team-lead position, Joinly reads the position change and swaps the groups the same day — without anyone filing a ticket.

What manual user management costs

Without automation, every account starts as a Paycom report someone exports by hand and works through one row at a time — and because Paycom has no native SCIM and no first-party provisioning app, there is no out-of-the-box path to lean on at all. The export itself is the bottleneck: getting clean, current data out of Paycom’s restricted API is the hard part, and once it is out, mapping positions to access still falls to people.

  • Onboarding delays. New joiners wait for accounts, licences and group access while someone runs a Paycom export and processes it by hand, losing productive days in their first week.

  • Permissions that don’t keep up (privilege creep). When movers change position or location, 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-EIN employment it is easy to disable an account while another employment is still active.

Joinly vs. a Paycom SCIM-gateway bridge

Paycom has no native SCIM provisioning and no Microsoft-published inbound provisioning app, so the real comparison is against third-party middleware — a SCIM gateway like Aquera or a bridge like RoboMQ Hire2Retire. Here’s how the two compare for a Paycom-driven setup.


Joinly

SCIM gateway / middleware bridge

Source

Reads the Paycom REST API directly

Wraps Paycom behind a SCIM gateway

Restricted-API setup

Configured once against your API user, SID/Token and IP allow-list

Also depends on the same Paycom access, plus a gateway to maintain

Role-to-group mapping

Built in, rule-based on position / department / location

Attribute sync only; group logic is manual

Start-date timing

Times account creation to the Paycom start date

Often immediate or batch; no start-date hold

Multi-EIN handling

Resolves one person across EINs to a single account

Can create duplicates across EINs

Licence assignment

Driven by position / attributes

Manual or group-based only

On-premise AD

Yes, own agent plus the native Microsoft agent

Gateway-dependent, limited mapping

Audit trail

Per-action logging tied to the HR source

Limited

Watch-outs when connecting Paycom to Microsoft Entra ID

A few Paycom-specific details decide whether this connection stays reliable at scale — and the first one is the connection itself.

  • Restricted API access. Paycom has no public API. Access is provisioned per customer by a Paycom representative, who sets up an API user with the right permissions, issues an API SID and Token, and often whitelists the calling IP. Joinly handles this gated setup as part of onboarding, so the hard part — getting clean data out of Paycom at all — is solved once rather than on every change.

  • Rate limits and proprietary schema. Paycom rate-limits the API (around 500 calls per minute on some plans) and its field set is proprietary and varies by implementation, so fields must match exactly. Joinly reads efficiently within the limits and maps your specific Paycom fields explicitly, so a heavy import never trips the limit or breaks on a renamed field.

  • Position, not person. Paycom ties job details — title, pay class, labor allocation — to the position rather than the individual. Joinly drives Entra access from the assigned position, so a position change is a clean, reliable trigger instead of a free-text job title that nobody maintains.

  • Multi-EIN employment. Larger organisations run multiple EINs, and the same person can appear under more than one. A naive rule creates duplicate Entra accounts. Joinly resolves the person across EINs to a single, stable account and only offboards when the last active employment ends.

  • UPN format with duplicate names. When two employees share a name, a naive UPN rule produces collisions. Joinly applies custom transformation rules — a suffix, location code or controlled tiebreaker — so every UPN is unique and predictable from day one.

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 Paycom 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 an insurance company with around 3,500 employees across several regional offices, running Paycom as its HCM core while its identity provisioning never quite keeps up. With no native SCIM and no first-party connector, IT lives off Paycom exports: someone pulls a report, works through new hires and position changes by hand, and the queue never empties. Getting the data out is the bottleneck — the restricted API was set up once, years ago, by whoever still remembers the API user and the whitelisted IP — and position changes regularly slip through, leaving adjusters with access from a role they left months ago.

Connect Paycom to Microsoft Entra ID with Joinly and that work disappears. Joinly reads each HR change in Paycom at the source and acts on it automatically: new hires have their account, Office licence and group access ready on their start date, a position change swaps the right groups the same day, people who exist under more than one EIN keep a single stable account, and leavers are disabled on their termination date with a 30-day soft-delete grace window.

“Getting clean data out of Paycom used to be a person’s whole morning. Now an account is simply ready on the start date, a position change just swaps the access, and we can show the auditor exactly which Paycom change created every bit of access.” — Head of IT, insurance company

The outcome this setup is designed for: onboarding drops from days to zero touch, access driven by old positions stops accumulating, and the team can walk into its next NIS2 assessment with a complete, source-backed audit trail.

Installation guide

Follow these steps to connect Paycom 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.


Joinly account creation screen at platform.joinly.app


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.


Joinly identity provider setup screen for connecting a Microsoft Entra tenant


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 Paycom integration in the Joinly marketplace

Open the Joinly marketplace and search for the Paycom integration.

Don’t see your system listed? Get in touch at support@koppelhet.nl and we’ll help you out.


Joinly marketplace showing available HR integrations


Search the marketplace for the Paycom integration.

5. Follow the installation wizard

You may be redirected to integrations.joinly.app. Create an account there and enter your Paycom connection details: the API user’s API SID and API Token that your Paycom representative provisioned, and confirm the IP allow-list covers Joinly. Paycom does not offer self-service API keys, so request API access from your Paycom rep first if you don’t have it yet. We only ask for the information needed to establish a successful connection with Paycom. All data is encrypted and stored securely.


Joinly installation wizard for entering Paycom connection details


Enter your Paycom API SID and API Token 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 Paycom fields.

Frequently asked questions

  • How do I map the manager? Reference the manager’s Paycom employee code in the mapping and Joinly resolves the link to the right manager automatically.

  • How do I handle multi-EIN employees? Joinly exposes each EIN-level employment so you can pick the primary one as the driver for the account.

  • How do I prevent duplicate usernames? Use the generateUniqueUsername helper, which falls back to the next pattern when the first one is already taken:
    {{ generateUniqueUsername: “{firstName}.{prefix}.{lastName}”, “{initials}.{prefix}.{lastName}” }}


Joinly field mapping screen for Paycom attributes using Liquid templates


Map Paycom 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 Paycom should run. Keep the interval within Paycom’s API rate limits.

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 Paycom flows straight through to Entra ID. Finally, add a threshold workflow with the Entra soft delete action that runs a set period after the termination date (for example 30 days) to retire accounts safely.


Joinly workflow editor creating an employee onboarding workflow


Create a trigger-based onboarding workflow.


Adding the create or update employee in Entra action to a workflow


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


Adding the Entra soft delete action to remove accounts on employee leave


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 Paycom to Active Directory, or contact support at support@koppelhet.nl to request setup of the Joinly AD Agent.

Frequently asked questions

Does the Paycom to Microsoft Entra ID connection work in real time?
It runs as a frequent sync that updates multiple times per day within Paycom’s API rate limits, so changes in Paycom reach Entra ID quickly without waiting for a nightly batch.

How do I get API access to Paycom?
Paycom has no public API. As a Paycom customer you request API access from your Paycom representative, who provisions an API user with permissions, issues an API SID and API Token, and whitelists the calling IP. Joinly then uses those credentials — there is no self-service key to generate.

Does Joinly need native SCIM from Paycom?
No. Paycom offers no native SCIM provisioning, which is exactly why a connector matters. Joinly reads the Paycom REST API directly and drives the full joiner, mover and leaver lifecycle itself.

Which attributes sync from Paycom to Entra ID?
Name, email / UPN, department, position / job title, manager, location, EIN, and start and end date. Custom Paycom fields can be mapped via Liquid templates.

How does Joinly handle employees under more than one EIN?
Joinly resolves the same person across EINs to a single, stable account, so a second EIN-level employment adds access rather than creating a duplicate, and offboarding waits until the last active employment ends.

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 Paycom to Active Directory guide.

More than a connector

A standalone Paycom 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.

Request installation support

Frequently asked

Questions about connecting Paycom to Microsoft Entra ID (formerly Azure AD)

  • How does Joinly connect Paycom to Microsoft Entra ID?

    The connection reads HR changes at the source (Paycom REST API (API SID / Token) → Entra ID.) Authentication: API user with API SID and API Token (custom headers); IP whitelisting. Joinly writes to Entra ID through Microsoft Graph, with its own app registration and application permissions — no synchronisation server, agent or extra infrastructure. If you prefer Microsoft's API-driven provisioning endpoint, Joinly can deliver the same changes as a SCIM 2.0 bulk request instead.

  • Which HR events does the Paycom → Entra ID connection handle?

    Joiner, mover, leaver (incl. rehire, position change, multi-EIN). Each event runs the workflow you configured for it: a joiner gets an account, groups and licences before the start date, a mover has the access of the old position removed and the new one added, and a leaver is disabled on the termination date.

  • Which Paycom attributes are synced to Entra ID?

    Name, email / UPN, department, position / job title, manager, location, EIN, start and end date. The mapping is configurable per field with Liquid templates, so your own naming convention for the user principal name, display name and e-mail address keeps applying.

  • How often does Joinly sync Paycom with Entra ID?

    Frequent sync, multiple times per day (within Paycom rate limits). The import schedule is yours to set — hourly, daily or weekly at a fixed time — and every run only processes what changed since the previous one.

  • Will Joinly overwrite the accounts that already exist in Entra ID?

    No. Joinly first imports your existing directory and matches those accounts to the employees from Paycom. Existing accounts are recognised and adopted rather than created twice. Which matching strategy applies — user principal name, e-mail address, employee ID or a person identifier — is a setting.

  • Can I try this without anything being written?

    Yes. Run the import as a dry run and you get an Excel export of exactly what would happen. You can also leave the connection in read-only mode, where Joinly calculates everything but writes nothing, and set thresholds for how many creations, activations and deactivations one run may produce before it is blocked for approval.

  • Is Paycom a ready-made connector in Joinly?

    Yes. Paycom is a ready-made HR connector in Joinly: you enable it, enter the details of your Paycom environment and Joinly reads the employees from there. Nothing has to be developed on either side.

  • What happens when someone has more than one contract in Paycom?

    Joinly recognises that it is one person and decides which employment leads for the account, the manager and the department. You do not get two accounts for the same employee, and when one contract ends the account is only disabled when the last active employment ends.

  • Do I need a Microsoft Entra ID P1 or P2 licence for this?

    Not for the Microsoft Graph path: Joinly uses its own app registration and the permissions you grant it. Microsoft's API-driven inbound provisioning endpoint, which Joinly can also target with SCIM bulk requests, follows Microsoft's own licensing for that feature.

  • Does the Paycom → Entra ID connection support NIS2 and ISO 27001?

    ISO 27001, NIS2-ready, GDPR (EU data centre). Every mutation lands in the audit log with its source — HR import, manual, from Entra, by the system or through an API key — and a link to the workflow that caused it. That is the evidence an auditor asks for when they want to know who had access to what, and why.

More on Paycom

Everything Joinly publishes about Paycom: the other installation guide, how the connection compares with Microsoft's own provisioning, what offboarding looks like, and the SCIM route.

See what Joinly can do for your organisation?

Start a free trial today or get in touch for advice on your HR and Microsoft environment.