AFAS Profit logoSAP Concur logo

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.

  1. A new employee in AFAS becomes a Concur user with work email, employee number, cost centre and the right payment route.
  2. A different cost centre or manager in AFAS carries through to Concur; after the last working day the user becomes inactive.
  3. Up to the cut-off date of the payroll period KoppelHet fetches the approved expense reports and immediately confirms they have arrived.
  4. Per employee the total goes to AFAS as the pay component for expense reimbursement, in the current period.
  5. After the payroll run Concur receives a payment confirmation per expense report.
AFAS Profit → KoppelHet → SAP ConcurSOURCEAFAS ProfitTARGETSAP ConcurKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → SAP ConcurSOURCEAFAS ProfitTARGETSAP ConcurKoppelHetmapping · logging · monitoring
Out: Users with employee number, cost centre and manager · Reimbursement currency and payment route · Approved expense reports with amount per employee · Pay component for the expense reimbursement in AFAS · Payment confirmation back to Concur
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, architecture and compliance

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.

Price indication · Complex

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

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 ProfitField in SAP ConcurNotes
MedewerkernummeremployeeNumber (enterprise-extensie)
E-mail werkuserName en emailsUnique across all Concur products
KostenplaatscostCenter (enterprise-extensie)
Leidinggevendemanager.valueThe manager's Concur ID, not the AFAS number
Datum uit dienstterminationDate en active = false
Vaste waarde EURreimbursementCurrency (spend-extensie)
employeeId en goedgekeurd bedrag uit ConcurLooncomponent onkostenvergoeding (HrCompMut)Per employee and period

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.