
Payroll to finance
AFAS to SAP Concur integration: expense users from AFAS, approved expenses back into the payroll run
With an integration between AFAS Profit and SAP Concur, every employee from AFAS is automatically an expense user in Concur, with employee number, cost centre and manager, and approved expense reports from Concur are paid out in the next AFAS payroll run. After the run Concur is told the payment has been made, so the claimant sees the status without finance having to update anything.
What the integration does
Organisations that run payroll in AFAS Profit and have expense reports submitted in SAP Concur create new employees in Concur by hand and retype approved expenses as mutations in AFAS every month. Leavers meanwhile stay active in Concur, and the claimant cannot see when payment was made.
- A new employee in AFAS becomes a Concur user with work email, employee number, cost centre and the right payment route.
- A different cost centre or manager in AFAS carries through to Concur; after the last working day the user becomes inactive.
- Up to the cut-off date of the payroll period KoppelHet fetches the approved expense reports and immediately confirms they have arrived.
- Per employee the total goes to AFAS as the pay component for expense reimbursement, in the current period.
- After the payroll run Concur receives a payment confirmation per expense report.
Back: Approved expense reports go to AFAS as a pay component · After the payroll run Concur receives a payment confirmation
What to watch for with AFAS Profit and SAP Concur
- A user name in Concur must be unique across all SAP Concur products, not just within your environment. KoppelHet therefore takes the business email address from AFAS, and flags a duplicate address in AFAS before Concur refuses the creation.
- Concur processes new and changed users asynchronously, in batches of at most one hundred operations. Only the processing status tells whether a new employee can really submit expenses. KoppelHet follows every batch until it is done and turns failed lines into a task.
- Concur has a payment route per claimant, including accounts payable, ADP payroll and Concur Pay. For payment through the AFAS payroll run we choose the route at the start in which Concur does not pay itself, so no double payment occurs.
- A leaver becomes inactive in Concur and is not deleted. According to Concur, deletion is only meant for users without transactions, and a former employee almost always has expense reports. An expense report still in progress can thus be completed and paid after departure.
- Concur queues approved expense reports and expects the fetching system to confirm straight away what it has received. KoppelHet does this right after fetching, so an expense report never lands in AFAS twice.
- Only after the AFAS payroll run does KoppelHet send Concur a payment confirmation. The expense report in Concur then moves from sent for payment to payment confirmed, and the claimant sees the money is in the payslip.
- The manager in Concur refers to the internal ID of a Concur user, not to an employee number. KoppelHet stores that ID with each AFAS employee and creates a new manager first, so the approval route in Concur is right straight away.
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
Do the expense reports also reach the ledger?
Through the AFAS payroll journal, as part of the payroll run. A separate posting per expense report in the financial administration can be added later as an extension.
What happens to an expense report approved after the cut-off date?
It stays in the Concur queue and goes along with the next payroll period.
Can a departed employee still submit expenses?
Not new ones; the user is inactive. An expense report already in progress can still be completed.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- AFAS is read with a GetConnector on employees and employments, filtered on change date. Expense reimbursements go to AFAS through the UpdateConnector HrCompMut, as a pay component in the current period.
- To Concur through the User Provisioning Service v4 (SCIM 2.0) with POST /Users, PATCH /Users/{id} and POST /Bulk (at most 100 operations or 400 KB), and the status through GET /provisions/{provisionId}/status. Enterprise extension with companyId (mandatory), employeeNumber, costCenter, manager and terminationDate; spend extension with reimbursementCurrency and reimbursementType (ACCOUNTS_PAYABLE, ADP_PAYROLL, CONCUR_PAY or OTHER). Company-level access token.
- Expense reports through the Financial Integration Service v4 (/financialintegration/fi/v4/companies/transactiontypes/expense/transactions), then POST .../acknowledgements, .../postingconfirmations and .../paymentconfirmations with processing status CP. Scope FISVC.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in AFAS Profit | Field in SAP Concur | Notes |
|---|---|---|
Medewerkernummer | employeeNumber (enterprise-extensie) | |
E-mail werk | userName en emails | Unique across all Concur products |
Kostenplaats | costCenter (enterprise-extensie) | |
Leidinggevende | manager.value | The manager's Concur ID, not the AFAS number |
Datum uit dienst | terminationDate en active = false | |
Vaste waarde EUR | reimbursementCurrency (spend-extensie) | |
employeeId en goedgekeurd bedrag uit Concur | Looncomponent onkostenvergoeding (HrCompMut) | Per employee and period |
Related
ADP Workforce Now → AFAS Profit
ADP Workforce Now to AFAS integration: Dutch employees from the US HR system in AFAS Profit
AFAS Profit → 4PS Construct
AFAS to 4PS Construct integration: payroll journal per employer in the right 4PS company
AFAS Profit → Adobe Creative Cloud
AFAS to Adobe Creative Cloud integration: users and product profiles from AFAS Profit
AFAS Profit → AG5
AFAS to AG5 integration: employees, employments and absence from AFAS Profit in the skills matrix