
Payroll integration
SAP SuccessFactors to PayFit integration: French hires from Employee Central as collaborators in PayFit
An integration between SAP SuccessFactors and PayFit turns a new employee of the French legal entity in Employee Central into a collaborator with a basic contract in PayFit, and places approved leave from SuccessFactors as an absence on that contract. The PayFit API cannot change a running contract; KoppelHet reports such changes as a task to the payroll administrator.
What the integration does
Organisations that use Employee Central as their global HR system and run French payroll in PayFit enter French starters twice. Leave approved in SuccessFactors is retyped by the payroll administrator, and a wrongly copied social security number only surfaces at the first DSN.
- HR records a hire in Employee Central with the French legal entity in the job information.
- KoppelHet reads person, address, email and national ID through OData and checks that the NIR has fifteen characters.
- In PayFit KoppelHet creates the collaborator, then the basic contract, and links the health insurance that belongs to the French entity.
- The payroll administrator completes working time and other contract details in PayFit.
- Approved leave from SuccessFactors becomes a validated absence; a cancelled request is also cancelled in PayFit by KoppelHet.
What to watch for with SAP SuccessFactors and PayFit
- Employee Central stores job data with an effective date and only returns today's record by default. KoppelHet therefore requests a French hire starting next month with fromDate and toDate, so the collaborator is already in PayFit before the month of the first payslip starts.
- PerNationalId can hold numbers from several countries per person. KoppelHet only takes the number with country FRA, because PayFit expects exactly fifteen characters for France; a German or Dutch number is never sent as the NIR.
- Through the API PayFit can only create a contract for French companies. That matches the selection on the French legal entity in EmpJob; employees of a Spanish or British SuccessFactors entity get at most a collaborator without a contract in PayFit, and KoppelHet reports that to payroll.
- PayFit has a separate endpoint to link health insurance to a French contract. KoppelHet sets the insurance that belongs to the French entity right after the contract, or marks the employee as exempt if that is recorded in SuccessFactors.
- An absence in PayFit cannot be changed, only cancelled and created again. If an employee extends their leave in SuccessFactors, KoppelHet cancels the old absence and creates a new one with the new end date.
- Only leave with the approved status in SuccessFactors goes to PayFit, because PayFit does not want pending requests and marks everything from the API as validated straight away. A request still PENDING in SuccessFactors therefore stays out of PayFit.
- SAP marks basic authentication for the SuccessFactors APIs as deprecated. KoppelHet uses OAuth 2.0 with a SAML assertion, with a technical user that may only read the French legal entity.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Does a pay rise in Employee Central go to PayFit as well?
Not automatically. The PayFit API cannot change an existing contract. KoppelHet reports the rise with its effective date to the payroll administrator, who enters it in PayFit.
What if we use Employee Central Payroll?
Then you do not need PayFit for France. This integration is for organisations that keep French payroll in PayFit.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- SuccessFactors through OData v2: PerPerson, PerPersonal, PerEmail, PerAddressDEFLT, PerNationalId, EmpEmployment and EmpJob (filter on company and lastModifiedDateTime, with fromDate/toDate for future records) and EmployeeTime (filter on approvalStatus APPROVED or CANCELLED). Authentication with OAuth 2.0 SAML bearer assertion.
- PayFit through partner-api.payfit.com with a customer API key: POST /companies/{companyId}/collaborators, POST /companies/{companyId}/collaborators/{collaboratorId}/contracts (France only), PUT /companies/{companyId}/contracts-fr/{contractId}/health-insurance (scope health-insurance:write), POST /companies/{companyId}/absences (time:write) and cancelling with DELETE on the absence. companyId through POST oauth.payfit.com/introspect.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in SAP SuccessFactors | Field in PayFit | Notes |
|---|---|---|
PerPersonal.firstName, lastName | firstName, lastName | |
PerEmail (type privé) | personalEmail | PayFit asks for the personal address, not the work one |
PerNationalId (country FRA) | socialSecurityNumber | Only the French number, fifteen characters |
PerAddressDEFLT | personalAddress (streetNumber, addressFirstLine, city, postCode, country) | |
EmpJob.jobTitle | jobTitle (contract) | |
EmpJob.startDate bij een hire-event | startDate (contract) | |
EmployeeTime.timeType | absence type, bijvoorbeeld fr_conges_payes of fr_rtt | Through a lookup table per time type |
- PayFit – Create collaborators and contracts
- PayFit API – Update a Health Insurance of an employee's contract
- PayFit – Sync absences
- PayFit – Authentication via API key
- SAP Help – Last modified queries and effective-dated entities
- SAP Help – PerNationalId
- SAP Help – Authentication using OAuth 2.0
- SAP KBA 3288045 – EmployeeTime via OData
Related
Ashby → SAP SuccessFactors
Ashby to SAP SuccessFactors integration: hire as a new employee in Employee Central
Bullhorn → SAP SuccessFactors
Bullhorn to SAP SuccessFactors integration: placements as employees or contingent workers in Employee Central
Carerix → SAP SuccessFactors
Carerix to SAP SuccessFactors integration: successful placement as a new employee in Employee Central
Greenhouse → SAP SuccessFactors
Greenhouse to SAP SuccessFactors integration: a hire as a new employee in Employee Central