CIIFragments Studio is CII-accredited: recover up to 20% of your software development spendLearn more

API integration for PayFit

We build your PayFit connector

We connect PayFit to your HRIS, planning and accounting: employees, contracts, absences, payroll journal. For a single company file, the Customer API Key. The partner programme is not open.

  • Senior product team
  • payroll and HRIS connectors in production
  • from scoping to monitoring
In short

What does the PayFit API provide and why connect PayFit to your HR or accounting software?

PayFit is a payroll and HRIS software designed for French ETIs and SMEs. Its API lets your application read employee information, contracts, payslips and absences, and inject payroll variables at month-end. You integrate it when PayFit is the payroll system in place and you want to eliminate manual exports to the accounting software, sync absences with a planning tool, or feed an HR dashboard with consolidated data without re-entry. API access requires a direct contract with PayFit.

Use cases

What our clients plug into the PayFit API

01

A join creates the payroll file

The business HRIS pushes the employee and the France contract. The PayFit admin finalises. No more app accounts created by hand, no more accounts that outlive the leaver.

02

Planning pushes absences

Leave validated in PayFit frees a slot, or the other way around. Note: POST /absences creates already-validated leave, not a request.

03

The payroll journal reaches the books

After the run, journal v2 goes to Sage, Odoo, Pennylane or Loop. Balance check, no CSV emailed around.

04

The portal shows the payslip

payslips:read for the employee, without giving PayFit admin to everyone. National ID and IBAN stay out of logs.

For you

What a PayFit integration changes for your business

Engineering in service of a measurable outcome: less HR typing, an accurate journal, API access scoped before the quote.

PayFit stays the payroll engine

Your HRIS or scheduling tool stays the daily tool. Payroll, payslips and filings stay in PayFit.

Access is settled before the quote

A key on your company file, or partner access if the programme is open. We do not sell a marketplace app while requests are closed.

A replay does not double the entry

Employee and payroll period carry a stable reference. A resent month does not write twice into accounting.

Sensitive data stays minimal

SSN, IBAN, payslips: strict scopes, no logs, anonymised test sets. We only ask for what the journey needs.

Method

How we connect PayFit to your system

01

Scoping

Customer Key or Partner OAuth, country of the file, scopes, flows (employees, absences, journal). Check that a partnership is not required, or that it is open.

02

Mapping

Employee numbers, France contracts, absences, accounting setup of journal v2. A field added in the UI export is not necessarily in the API.

03

Development and testing

Token cache, 50/20 req/s, retry on 429, journal collection after close. Testing on a test file, never a named payslip in logs.

04

Monitoring

Alert on 429, journal gap report, period payroll status. You know a month has not left before the accountant does.

The API

What PayFit allows

Employees and contracts
Paginated list, employee CRUD, France contracts on create. An employee without a contract is invisible in the app. An API contract is not finalised: the admin completes it before payroll.
Time and absences
time:read / time:write, hours worked per France contract, POST /absences already validated. This is not a manager workflow.
Payslips and payroll journal
contracts:payslips:read, accounting:read. Journal v1 CSV, France v2 aligned on the accounting exports configured in PayFit.
France: meal vouchers, health cover
Localised endpoints, outside UK/ES markets. Payment file and period payroll status as a complement.
Glossary

The vocabulary of a PayFit integration

Customer API Key
A key created in the app by an admin, shown once, scopes chosen, Bearer on partner-api.payfit.com. The path for the company's own file.
Partner API
Multi-company OAuth, marketplace. As of 17 August 2026, PayFit is no longer accepting new requests, with no reopening date. We do not promise it.
One token, one company
No group token. Multi-company PayFit means one flow per company. Regenerating a token deletes the previous one.
Non-finalised contract
POST France contract: the contract exists, the admin must complete it in PayFit before payroll. Creating an employee without a contract: invisible in the app.
Journal v2
JSON aligned on configured accounting exports. Fields added in the UI will not be exported via the API. Five sync fields for an accounting tool.
Already-validated absence
POST /absences does not create a request. Planning that pushes leave bypasses the PayFit manager circuit.
Good to know

The real constraints of a PayFit integration

01

The API partnership is closed

QuickStart and Integrations Requirements: PayFit is no longer accepting new requests for integrations through its API, with no date. A page that promises to plug PayFit into any SaaS is false while that freeze holds.

02

Create is not put on payroll

Employee without a contract: invisible. API contract: not finalised. The gap is documented in the HR process, not in a magic provisioning promise.

03

No payroll-run webhook

Journal collection happens after close, not as a push. PayFit announces an event to come: we do not sell it today. Monthly reconciliation is mandatory.

04

Sensitive data and quotas

National ID, IBAN, payslips: minimisation, no copy in tests. Partner API: 50 read/s and 20 write/s per application, retry on X-RateLimit-Remaining-Second.

Compare

PayFit or Lucca, and what it implies

PayFit runs payroll. Lucca runs the HRIS upstream (leave, time, expenses). Not the same connector, often both.

CriterionPayFitThis pageLuccaHRIS upstream
RoleCloud payroll and HR, payslips, journalLeave, time, expenses, employee directory
API accessCustomer Key open, Partner closed with no datePublic REST API, OAuth client credentials
Quota50 read/s, 20 write/s (Partner API)50 requests per minute, shared domain
Real timeSvix on request, no run eventLeave webhooks, to ack within 3 s
HR writesNon-finalised contract, already-validated absenceLeave in the Lucca circuit, then webhook
Integration effortMedium, mostly access and accounting mappingMedium, mostly quota and dual API generations
The right caseAn SME that runs payroll in-house and wants HRIS or accounting plugged inAn organisation on Lucca that wants planning or payroll downstream

We claim no PayFit partnership and no marketplace listing: we build on the documented API, for the client's own file, while the partner programme stays closed.

Our expertise

What we measure on a PayFit project

20 d
first PayFit flow in production
50/20
req/s read and write, queue respected
0
payroll journal doubled after a replay
4
senior developers on the project
Compare

The other payroll and HRIS tools

The choice follows whichever tool you already run, and who produces payroll.

We combine PayFit with

The stack that surrounds PayFit on our projects.

  • Lucca
  • Sage
  • Pennylane
  • PostgreSQL
  • Node.js
FAQ

PayFit integration: your questions

First settle access. For the company's own file, an admin creates a Customer API Key, we introspect company_id, we cache the Bearer. For a multi-client product you would need the Partner API over OAuth: as of 17 August 2026, PayFit is no longer accepting new requests, with no reopening date. Then we map employee numbers and contracts, respect 50/20 req/s, and collect the journal after close. The real difficulty is not the HTTP call, it is the HR process (incomplete contract) and the accounting mapping of journal v2.

Not as of 17 August 2026. The QuickStart and Integrations Requirements pages say that, due to high demand, PayFit is temporarily unable to accept new requests for integrations via its API, with no date. We therefore promise neither a marketplace, nor a partner badge, nor a multi-tenant PayFit app. What we do: a connector on the client's Customer API Key, for their own file, and an architecture ready if the programme reopens.

It depends on the flows: employees only, absences and time, payslip portal, or journal into accounting. A join/leave feed costs far less than a full chain with journal v2 into Sage or Loop. The state of accounting setup in PayFit weighs as much as the engineering: JSON v2 follows the UI export, not the other way around. We scope the perimeter up front and give a firm estimate.

Yes, and it is a frequent case. We wait for period close, read accounting v2, check the balance (date, account, label, debit, credit), set a period-plus-file key, then inject. A field added in the PayFit export is not necessarily exposed by the API: we check that at scoping. No run webhook: collection is a monthly job, with a gap report before a live write.

Yes for the file, with the documented limits. POST employee without a contract: invisible in PayFit. POST France contract: non-finalised contract, the admin completes it before payroll. Absences pushed by API are already validated. Lucca often stays upstream (leave, time), PayFit the payroll. The two connectors talk through your internal identifiers, not through an official PayFit-Lucca bridge.

A PayFit integration project?

Let's talk. 30 minutes to scope access (Customer key, not a closed partnership) and tell you honestly what is feasible.

Discuss my PayFit project
Discuss my PayFit project