Loket logoCoupa logo

Payroll to finance

Loket to Coupa integration: approved Coupa expense reports as a pay component in the right Loket period

With an integration between Loket and Coupa, reports approved for payment in Coupa automatically arrive as a pay component on the employment in Loket, in the next open period and on the cost centre from Coupa. The report then gets the export flag in Coupa, so finance sees the reimbursement runs through payroll.

What the integration does

Organisations that manage spending in Coupa and process payroll in Loket often reimburse expenses through the payslip. Payroll then enters amounts from a Coupa export into Loket by hand every period, or employees submit the same receipt again in Loket's own expense module.

  1. Employees claim in Coupa and approval happens there.
  2. KoppelHet fetches the reports that are approved for payment and not yet exported.
  3. Using the employee number KoppelHet finds the employer and the employment in Loket.
  4. Per expense type a pay component goes into the payroll period data of the next open period, with the cost centre from Coupa and the report number as payslip text.
  5. Once Loket has saved the data, KoppelHet marks the report as exported in Coupa.
Loket → KoppelHet → CoupaSOURCELoketTARGETCoupaKoppelHetmapping · logging · monitoringLoket → KoppelHet → CoupaSOURCELoketTARGETCoupaKoppelHetmapping · logging · monitoring
Out: Expense reports and lines from Coupa · Employer, employee and employment in Loket · Payroll period data with pay component, cost centre and payslip text · Export flag on the report
Back: Export flag in Coupa once Loket has saved the payroll period data

What to watch for with Loket and Coupa

  • Loket has its own expense module, in which only the employee can create a claim. With Coupa as the expense system the integration skips that module and writes the approved amounts directly into the payroll period data of the employment. That way nobody submits the same receipt twice.
  • Loket adds a pay component in the payroll period data to a fixed value on the employment if the supplement option is on; otherwise it overwrites the fixed value. If an employee has a fixed expense allowance on the same component, KoppelHet switches the supplement on, so the Coupa report does not push that allowance aside.
  • Each pay component in Loket has its own business rules, and Loket returns per year and period which components are allowed. KoppelHet checks the lookup table against that list before an amount is written. An expense type without a valid component stays unexported in Coupa and becomes an alert.
  • A payroll period data record in Loket can have its own cost centre and cost unit, separate from the fixed allocation of the employment. KoppelHet takes over the cost centre from the Coupa line, so the reimbursement appears in the payroll journal on the same cost centre as in Coupa.
  • Coupa advises recording the report ID in the system that pays. Payroll period data in Loket has its own payslip text. KoppelHet puts the Coupa number there, so the employee sees on their payslip which report has been reimbursed.
  • A period in Loket is a month, a four-week period or a week, depending on the employer. KoppelHet determines the next open period per employer and places a late report there, never in a period that has already been paid.
  • In Coupa marking as exported is a separate request. KoppelHet only sends it once Loket has saved the payroll period data without error; otherwise the report stays in the selection for the next working day.

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 employees still need to claim in Loket?

No. Coupa is the place to claim. Loket's expense module stays unused for these expenses.

When does the employee get the money?

With the first payroll run after approval in Coupa. A report that comes in after the last round goes along one period later.

Do employees from Loket also become Coupa users?

Not in the first version. Putting users with employee number and cost centre from Loket into Coupa can be added later as an extension.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Coupa through the Core API: GET /api/expense_reports?status=approved_for_payment&exported=false, lines through /api/expense_lines, users through /api/users (employee-number) and a separate PUT with exported=true per report.
  • Loket through the REST API with OAuth: POST /v2/providers/employers/employees/employments/{employmentId}/payrollperioddata (payrollPeriod with year and periodNumber, costCenter, costUnit, payslipText, payrollComponents with payrollComponent.key, value and isSupplement); allowed components through .../metadata/year/{year}/period/{periodNumber}. For many employees at once there is a CSV import of payroll period data per payroll administration or across several employers.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in LoketField in CoupaNotes
employee-number (Coupa-gebruiker)Werknemer en dienstverband in LoketLooked up per employer
Soort uitgavepayrollComponent (key)Lookup table; only components Loket allows for that period
Bedrag, opgeteld per soortvalue
Vaste vergoeding naast de declaratieisSupplement=trueAdd instead of overwrite
Kostenplaats van de regelcostCenter
Nummer van de declaratiepayslipText
Opgeslagen door Loketexported=true

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.