Skip to main content

πŸ”— Enterprise API: push employee & salary data from your HR system to Payflip

Everything your team needs to know to set up the Payflip Enterprise API β€” from what it does, to getting access, to going live

Updated yesterday

πŸ’‘ This article explains what the Payflip Enterprise API is, what it does, and everything your team needs to get up and running. Business stakeholders can find the value in the first sections (1-4); your IT/development team will find everything they need to build the integration further down (5-9).​

1. What is the Enterprise API? πŸ“˜

The Payflip Enterprise API is a way to connect your HR system directly to Payflip. Instead of manually keeping employee and salary data up to date in two places, your IT team builds a one-time integration and from that point on, everything syncs automatically.

Your HR system stays the single source of truth. No more exports, no more imports, no more reconciliation headaches.

⚠️ The Enterprise API is designed for organizations with an in-house IT/development team, or who are willing to work with an external IT partner. Payflip does not offer implementation services itself.

2. What's in it for you? 🫡🏼

Here's what changes once the integration is live:

  • No more double data entry. Employee info and salary changes in your HR system flow into Payflip automatically.

  • Fewer errors. Manual imports are a common source of data quality issues: wrong salaries, missing employees, outdated contracts. The API eliminates that whole category of problems.

  • Works for multiple entities. Whether you have one legal entity or ten, one integration handles all of them. No separate setup per entity.

  • Your HR admin focuses on what matters. They only need to step in when something actually requires their attention: a conflict, an offboarding, a manual review item. Everything else just flows through.

  • Standardized and future-proof. Every organization uses the same API schema. No custom work needed on the Payflip side, and it scales as you grow.

3. What gets synced and what doesn't? πŸ”

βœ… What goes in

  • Employee details (name, email, language, start date, contract type, legal entity, payroll ID).

  • Wage contracts (salary, working regime, NSSO coefficients, including changes throughout the year).

❌ What's currently out of scope

  • Calculated budgets (like end-of-year premium or bonus budgets that are manually calculated at your side).

  • Choices employees make in Payflip.

  • Historical wage contract data from previous years (only from the start of the current year onward).

  • Data going back from Payflip to your HR system ➑️ this is a one-way, inbound-only API.

4. How it works πŸ’‘

The model is simple: your system pushes data to Payflip. Payflip never pulls anything from your side.

Here's what happens each time you push data:

  1. Your HR system (or a middleware layer) calls the Enterprise API with employee or contract data.

  2. Payflip validates the data and places it in a staging layer.

  3. A sync job picks it up and processes it into Payflip.

  4. If anything needs attention (a conflict, an offboarding, a manual review item), your HR admin gets a notification in the tool.

Think of it as "push and forget" ➑️ once the integration is running, your IT team doesn't need to babysit it. Your HR admin handles the occasional exception in Payflip, and that's it.

πŸ’‘ Data doesn't appear in Payflip the second you push it ➑️ it goes through a short staging process first. If something is urgent, your HR admin can trigger a manual sync from within the tool.

5. Before your IT team starts building 🚧

Make sure you have these things ready before development kicks off:

  • A developer (or team) with experience building REST API integrations

  • Access to your HR system's employee and salary data or a middleware/ETL layer that can extract it

  • The Payflip company IDs for each of your legal entities ➑️ not sure where to find these? Check our article about this.

  • A designated contact person on your side to receive the API credentials

6. Getting access πŸ”‘

Activating the Enterprise API is something we set up together with you. Here's how it goes:

  1. Reach out to the Payflip support team via the blue button in the admin tool or send an email to [email protected] and let them know you want to activate the Enterprise API.

  2. They'll enable it on your account and loop in the Payflip technical team.

  3. The technical team generates API credentials specific to your organization.

  4. Your credentials are shared via a secure Bitwarden link. The password for that link is sent separately through a second channel of your choice (Slack, Intercom, email, etc.)

Your credentials package will include:

  • Auth0 Client ID and Client Secret

  • Auth0 token endpoint URL

  • API base URL

⚠️ Keep your Client Secret confidential. Never share it over email or any unencrypted channel.

7. Authentication πŸ›‘οΈ

The Enterprise API uses OAuth2 Machine-to-Machine (M2M) authentication via Auth0. In practice, it works like this:

  1. Your system requests a token from the Auth0 endpoint using your Client ID and Secret.

  2. Auth0 returns a signed JWT bearer token.

  3. That token goes into the Authorization: Bearer <token> header of every API call you make.

Tokens expire, so your integration should handle refresh automatically (typically by requesting a new one when the current token is about to expire).

For full details, example requests, and error codes: enterprise.payflip.be

8. What your IT team needs to build πŸ› οΈ

Two endpoints, that's it:

  • POST /employees ➑️ to push employee records

  • POST /contracts ➑️ to push wage contracts

Upsert logic: both endpoints work as an upsert. Each record has a unique key (employeeKey or contractKey) that you define and manage on your side. If the key already exists in Payflip, the record gets updated. If not, it gets created. Just make sure the keys stay consistent across every push.
​

Bulk pushes work: you can send multiple records in one call. If some records in the batch are invalid, the valid ones still go through and the response tells you exactly what succeeded, what failed, and why.

Order matters: an employee record needs to exist in Payflip before you can push a wage contract for that employee.

For the complete field reference, required vs. optional fields, and example payloads: enterprise.payflip.be

9. Testing before you go live πŸ§ͺ

Don't roll out to your full employee population straight away. We recommend a staged approach:

  1. Start small: push 5–10 employees and check that their records appear correctly in Payflip.

  2. Test contracts: push wage contracts for those same employees and confirm the link is correct.

  3. Test offboarding: push one employee with an endDateEmployer and verify the flag appears correctly for your HR admin.

  4. Multi-entity check (if applicable): push records for different entities and confirm they land in the right place.

  5. Go live once everything looks good. πŸš€

A few specific situations πŸ“Œ

Someone leaves the company

Push the employee record again with the endDateEmployer field set to their last day. Payflip will revoke their access on that date and flag them for your HR admin to follow up.

⚠️ The API handles the signal, not the full offboarding. Your HR admin still needs to complete the exit flow in Payflip manually (there are inputs required, like final settlement details, that the API can't provide). The flag in Payflip is their cue to act.

Re-hiring a former employee

If a previously deactivated employee comes back, this one can't be handled via the API. Reach out to the Payflip support team, they'll archive the old record and link the new one to your integration.

Multiple legal entities

No need for multiple API keys. One set of credentials covers all your entities. Just use the companyId field on each employee record to route it to the right legal entity. Your Payflip contact can give you the correct IDs.

You pushed something incorrect

Push the same record (employeeKey or contractKey) again with the correct values and it will be overwritten. If the data had already synced into Payflip, your HR admin may see a conflict in the Integration Module that needs manual resolution.

For any questions, reach out to the Payflip support team via the blue button in the Payflip admin tool or send an email to [email protected]. If needed, they will bring you in contact with the Payflip technical team to discuss details.
​
For the full technical reference (endpoints, field definitions, request/response format, example payloads), see the live API spec at enterprise.payflip.be.

Did this answer your question?