Loket.nl API integration
Loket.nl, a Dutch payroll platform, works in layers: the accounting firm runs payroll, the employer looks on, and an integration only gets the actions it actually uses. If you connect Loket to an HR system, planning or accounting, you need to know those layers. Then hours land in the right period and the journal entry reaches your books without retyping.
- Employees and employments goes back and forth with Your other systems
- Hours and variable pay components goes back and forth with Your other systems
- Payroll runs and results goes back and forth with Your other systems
- Journal entries goes back and forth with Your other systems
Built for clients including Tata Steel, M&G Investments, Digistore24, Toppers in Concert, Bar-le-Duc and Loogman
This is the data organisations most often let flow between systems. Which of it matters to you depends on where work is getting stuck today.
Employees and employments
In Loket, an employee has one or more employments (dienstverbanden), always within one employer. HR data usually belongs to the employee, payroll data to the employment. Miss that distinction and you attach hours to the wrong record.
Hours and variable pay components
Hours worked and other pay components per period, per employment. Which components are possible differs per payroll administration; the API provides the possible values.
Payroll runs and results
Finalised payroll runs with the pay components and their values per employment, plus downloads such as payslips as PDF. Loket processes retroactive corrections in the next run.
Journal entries
The journal runs with the entries for the financial administration. The employer needs the journaliseren module for this: of the three journal modules, the API only works with this newest one.
New employees as drafts
An HR system can create a concept employee with the data it has. The payroll firm completes it and converts it into an actual employee. Loket recommends that route over creating a full employee through the API.
Departments and functions
The organisational units per employment, such as department and function. They decide whether payroll costs land in the right place in your accounting or reports.
For each combination: which data moves back and forth, what the standard integration does and what to watch out for.
- Exact Online and Loket integrationConnecting Exact Online and Loket.nl: how the payroll journal entry reaches Exact, who activates it, and when to fetch the journal run via the API instead.
- Loket and AFAS integrationConnecting Loket.nl and AFAS: the standard integration for AFAS SB, journal entries into AFAS Profit, and new hires from AFAS as concepts in Loket.
Not always. If an existing integration for Loket.nl does exactly what you need, we'll tell you.
According to its own site, Loket connects with more than a hundred applications, for hours, changes, journal entries and more. The integrations overview includes Exact Online, SnelStart, Twinfield, e-Boekhouden.nl, HiBob and Personio.
For the journal entry to your accounting, a standard integration is often enough. For Exact Online, Loket creates a file in Exact's format that is read into Exact Online; the accounting firm activates the integration for the employer. For AFAS SB, the journal entries are transferred automatically every night.
Hours from your own planning, employees from an HR system without a standard integration, or payroll costs back to a project system need an integration of your own on the API. We can connect Loket to any system.
- Hours and allowances from your own planning have to land in Loket per employment, in the right period.
- New employees from your HR system have to be ready for the payroll firm as concept employees.
- You want payroll costs per project or department back in a system other than your accounting.
- You run payroll for many employers as a firm and want to keep track of consent and errors per employer.
REST API with JSON
Loket has a REST API with JSON. The older SOAP web services have not been available since 2021. There's an acceptance environment with a limited set of test data, on api.loket-acc.nl, and a production environment with real customer data.
OAuth with user consent
Access runs through OAuth 2.0 with a code flow, in which the user gives consent themselves. You use the refresh token to get an access token, which is valid for a limited time. A refresh token can only be used a limited number of times; store the new one you get back.
Rights for client and user
A call only succeeds if the client has access to that action and the user has the rights. Loket configures the client, the accounting firm usually the user. In production, a client only gets the actions the integration actually uses; you supply that list when you apply.
From request to production
You first request an integration from Loket; that step is commercial. Once approved, you get credentials for a generic test client and a test user. Production only follows after development and the first test stages, with your own client and pre-registered redirect URIs.
Limits, paging and versions
No explicit limits apply right now, but Loket monitors usage, for example for large numbers of failing calls. Lists return 250 records per page by default. Resources are versioned; when a version becomes obsolete, the obsoleteDate field is no longer empty.
An integration moves data. In between, AI can read, sort and prepare a suggestion. Where it matters, a person decides.
Checking hours before the run
Before hours go to Loket, AI compares them with the roster and previous periods and flags unusual lines. The payroll administrator decides. Loket calculates the pay, AI doesn't.
Completing a new employee
AI compares a concept employee with the contract and reports what's missing or doesn't match, such as a different start date. The payroll firm completes it and converts the employee.
No payroll data in a prompt
Payslips and citizen service numbers (BSN) don't belong in an AI step. Give AI only what it needs, such as hours and rosters, and don't let it change anything in Loket.
Zero isn't empty
If you want to clear a pay component for a period, send it with the value null, not 0. Loket advises against sending 0, because it can have unexpected consequences for payroll.
Records that seem to be missing
If employees or runs are missing from a response, Loket says it's usually down to the user's rights or to paging. The API doesn't filter anything out by itself. Page through everything and check the rights before you start searching your own code.
Old employments too
An employer's list of employments also includes employments that ended years ago. Filter in the call, or you put former employees back in your planning.
Empty strings are rejected
The API generally doesn't accept an empty string as a value, and then returns an error that seems to make no sense. Send null instead of an empty string.
What goes where
Which data moves, in which direction, and which system wins when two values differ. That is written down before anything gets built. For this integration, that means: Employees and employments, Hours and variable pay components, Payroll runs and results, Journal entries, New employees as drafts, Departments and functions.
Fields and rules
For every field, how it translates between the systems: statuses, VAT codes, general ledger accounts, item numbers. And what happens with a duplicate or a missing value. For this integration, that means: REST API with JSON, OAuth with user consent, Rights for client and user, From request to production, Limits, paging and versions.
Testing with real cases
In a sandbox or test administration, with the exceptions you actually run into: credit notes, partial deliveries, changed customer details.
Live, with logging and monitoring
Every sync is logged, and when something fails, someone gets an alert. If a vendor changes its API, we update the integration.

No account manager. You talk to someone who builds integrations themselves, and who will tell you when a standard integration is enough.
- Office on the Duivendrechtsekade in Amsterdam
- ISO 9001 and ISO 27001, certified by Kiwa
- 500 projects delivered
- 4.8 from 127 reviews
Does Loket.nl have an API?
Yes. Loket has a REST API with JSON and OAuth 2.0, with an acceptance and a production environment. The old SOAP web services have not been available since 2021.
How do I get access to the Loket API?
You request an integration through Loket's website; that first step is commercial. Once approved, you get credentials for the acceptance environment. Production follows after development and testing, with your own client that only gets the actions your integration uses.
Does the Loket API have limits?
No explicit limits apply at the moment. Loket does monitor usage and gets in touch in case of extreme usage, such as large numbers of failing calls.
Can Loket send journal entries to accounting software?
Loket's integrations overview includes Exact Online, Twinfield, SnelStart and e-Boekhouden.nl, among others. You can also fetch journal runs yourself through the API, if the employer has the journaliseren module.
Can I add new employees to Loket through the API?
Yes, preferably as concept employees. Your HR system supplies what it knows, the payroll firm completes the rest and converts the employee. A full employee through the API requires many mandatory fields, and new regulations add more almost every year.
Who manages the users for a Loket integration?
In production, usually the accounting firm, sometimes the employer. Loket doesn't create users in production itself. Loket does manage the integration's client.
- Connect AFAS to your other systemsDutch ERP and HR suite from AFAS that brings HR and payroll, finance, sales, purchasing and projects together in one environment.
- Connect Nmbrs to your other systemsDutch online payroll and HR software for employers and for accountants who run payroll for several employers.
Sources
The technical facts on this page come from the vendors' official documentation, checked on 19 September 2026. Vendors change their APIs and limits; when we build an integration, we always check the current state.
- Loket Developer Portal
- Loket Developer Portal: Introduction
- Loket Developer Portal: FAQ
- Loket Developer Portal: OAuth2 code flow
- Loket: building an integration with Loket (in Dutch)
- Loket: integrations (in Dutch)
- Loket: Exact Online integration (in Dutch)
- AFAS Help Center (AFAS SB): requesting and activating the Loket integration (in Dutch)



