
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
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.
What our clients plug into the PayFit API
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.
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.
The payroll journal reaches the books
After the run, journal v2 goes to Sage, Odoo, Pennylane or Loop. Balance check, no CSV emailed around.
The portal shows the payslip
payslips:read for the employee, without giving PayFit admin to everyone. National ID and IBAN stay out of logs.
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.
How we connect PayFit to your system
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.
Mapping
Employee numbers, France contracts, absences, accounting setup of journal v2. A field added in the UI export is not necessarily in the API.
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.
Monitoring
Alert on 429, journal gap report, period payroll status. You know a month has not left before the accountant does.
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.
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.
The real constraints of a PayFit integration
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.
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.
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.
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.
PayFit or Lucca, and what it implies
PayFit runs payroll. Lucca runs the HRIS upstream (leave, time, expenses). Not the same connector, often both.
| Criterion | PayFitThis page | LuccaHRIS upstream |
|---|---|---|
| Role | Cloud payroll and HR, payslips, journal | Leave, time, expenses, employee directory |
| API access | Customer Key open, Partner closed with no date | Public REST API, OAuth client credentials |
| Quota | 50 read/s, 20 write/s (Partner API) | 50 requests per minute, shared domain |
| Real time | Svix on request, no run event | Leave webhooks, to ack within 3 s |
| HR writes | Non-finalised contract, already-validated absence | Leave in the Lucca circuit, then webhook |
| Integration effort | Medium, mostly access and accounting mapping | Medium, mostly quota and dual API generations |
| The right case | An SME that runs payroll in-house and wants HRIS or accounting plugged in | An 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.
What we measure on a PayFit project
The other payroll and HRIS tools
The choice follows whichever tool you already run, and who produces payroll.
PayFitWe build your PayFit connectorThis page
LuccaThe HRIS upstream: leave, time, expenses, employee directory.
SilaePractice payroll. API access runs through the partner, file by file.We combine PayFit with
The stack that surrounds PayFit on our projects.
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