---
title: "Initiate payroll run (verlonen)"
method: POST
path: "/v2/providers/employers/payrolladministrations/{payrollAdministrationId}/payrollruns/initiate"
tags: ["Initiate payroll run"]
---

# Initiate payroll run (verlonen)

`POST /v2/providers/employers/payrolladministrations/{payrollAdministrationId}/payrollruns/initiate`

## Request

- Base URL: `https://api.loket.nl`
- URL: `https://api.loket.nl/v2/providers/employers/payrolladministrations/{payrollAdministrationId}/payrollruns/initiate`
- Auth: none required

__Activity name :__ <a href="https://developer.loket.nl/Activities/PostInitiatePayrollRunByPayrollAdministrationId" target="_blank">PostInitiatePayrollRunByPayrollAdministrationId</a> This is a controller endpoint to perform an action.<br><br>In the older Loket GUI this specific action is referred to as respectively 'Verlonen' / 'Verlonen periode zonder personeel' / 'Verlonen voorgaande jaren' . If this action is performed successfully then the payroll run will be created with status 0 and will be cued for further processing. The further processing depends on the input parameters and the payroll configuration in the given situation. After the initiated run has been picked up and processed by the background process, then the status of the run will be changed accordingly.<br><br>This action may be performed for all payroll periods that are *available for the payroll administration* AND that meet one of the following requirements;<br><br>If typeOfInitiation = 'regular' (Verlonen);<br>* The very last payroll period for which an approved payroll run (status = 9) is available. Within the active year of payrolling. (This would functionally be a so-called 'correction' run)<br>* The very first payroll period in time that does not yet have an approved payroll run (i.e. last payroll period with approved run + 1). Within the active year of payrolling, if available<br>* The provided year may be a maximum of 7 years in the past (based on current datetime)<br><br>If typeOfInitiation = 'withoutEmploymentData' (Verlonen zonder personeel);<br>* The very first payroll period in time that does not yet have an approved payroll run (i.e. last payroll period with approved run + 1). Within the active year of payrolling<br>* Please note that if this type is selected then the following fields must ALL be set to null; sendEmailToEmployee, textPaySlip, textTariffPaySlip, textPayment, emailAdressPayrollRunStarted, emailFinishedPayrollRun<br><br>If typeOfInitiation = 'previousYear' (Verlonen voorgaande jaren);<br>* The very last payroll period for which an approved payroll run (status = 9) is available. Within the given year of payrolling. (This would functionally be a so-called 'correction' run)<br>* The very first payroll period in time that does not yet have an approved payroll run (i.e. last payroll period with approved run + 1). Within the given year of payrolling, if available<br>* The provided year may be a maximum of 7 years in the past (based on current datetime)<br><br><br>In general;<br>* It is not possible to initiate a new payroll run if there is currently a payroll run with status 0  (to be processed) or 1 (awaiting approval) within the payroll administation.<br><br><br>__Metadata :__  No metadata endpoint available for this controller endpoint.<br><br>__Defaults :__ Defaults endpoint is available for this controller endpoint by adding /defaults. Also, an endpoint is available to retrieve initiation values for a specific period.

## Path parameters

- `payrollAdministrationId` string, uuid, required

## Headers

- `Authorization` string, required
- `Accept` string, required

## Request body

- PostPayrollRun
  - `id` string, uuid: The unique identifier of an object (GUID/UUID)
  - `payrollPeriod` object
    - `year` integer: The year of the payroll period the record relates to
    - `periodNumber` integer: The period number of the payroll period the record relates to
  - `payrollRunStatus` object
    - `key` integer: The key indicating the current status of the payroll run.
    - `value` string: The value describing the current status of the payroll run. * Staat klaar voor verloning. (key = 0) * Verloning gereed. (key = 1) * Proforma verloning gereed. (key = 2) * Verwijderd door gebruiker (key = 5) * Verloning geannuleerd door gebruiker. (key = 6) * Fout tijdens verloning. (key = 7) * Geen loonresultaten, verloning geannuleerd. (key = 8) * Verloning goedgekeurd. (key = 9)
  - `textPaySlip` string, nullable: An optional text provided by an authorized user that will be displayed on the pay slip.
  - `textPayment` string, nullable: An optional text provided by an authorized user that will be displayed as a description for the payment.
  - `requestTime` string, date-time: The time at which the payroll run was requested by the user
  - `processingFinishedTime` string, date-time, nullable: Date-time when the calculations of the wages was finished
  - `approvalTime` string, date-time, nullable: The time at which the payroll run was approved by the user
  - `sequenceNumber` integer, nullable: An incremental number with a payrolling year to uniquely identify a payroll run. Null can be returned for those runs that dont contain "wages".
  - `textTariffPaySlip` string, nullable: An additional text to be displayed on the tariff payslip.
  - `availableForEmployeeDate` string, date, nullable: The date on which the pay slips will be available to employees.
  - `sendEmailToEmployee` boolean, nullable: Indicates whether an email should be sent to the employees when the pay slip is available to them. NULL will be seen as false
  - `requestedBy` UserBasicNotNullable
    - `id` string, uuid: The unique identifier of an object (GUID/UUID)
    - `initials` string: The initials of the user
    - `prefix` string, nullable: The prefix of the user
    - `lastName` string: The last name of the user
    - `formattedName` string: preformated user name for displaying. \<lastname\>\", \"\<initials\>\" \"\<prefix\>
  - `approvedBy` UserBasic, nullable
    - `id` string, uuid: The unique identifier of an object (GUID/UUID)
    - `initials` string: The initials of the user
    - `prefix` string, nullable: The prefix of the user
    - `lastName` string: The last name of the user
    - `formattedName` string: preformatted user name for displaying. \<lastname\>\", \"\<initials\>\" \"\<prefix\>
  - `sequenceNumberApproved` integer, nullable: An incremental number with a payrolling year to uniquely identify an approved payroll run.
  - `removeTime` string, date-time, nullable: The time at which the pay roll run was removed.
  - `removedBy` UserBasic, nullable
    - `id` string, uuid: The unique identifier of an object (GUID/UUID)
    - `initials` string: The initials of the user
    - `prefix` string, nullable: The prefix of the user
    - `lastName` string: The last name of the user
    - `formattedName` string: preformatted user name for displaying. \<lastname\>\", \"\<initials\>\" \"\<prefix\>
  - `methodOfCreation` object
    - `key` integer: The key indicating how the payroll run was created.
    - `value` string: The value describing how the payroll run was created.
  - `errorsAndWarnings` object
    - `hasErrors` boolean: Indicates whether the payrollrun has errors
    - `hasWarnings` boolean: Indicates whether the payrollrun has warnings
  - `payrollTaxReturnPeriod` object: Indicates the payrolltaxreturn period in which the payrollrun is included.
    - `year` integer: The year of the payroll period the record relates to
    - `periodNumber` integer: The period number of the payroll period the record relates to
  - `initiationParameters` object
    - `typeOfInitiation` 'regular' | 'withoutEmploymentData' | 'previousYear'
    - `emailAddressPayrollRunStarted` string, nullable: The e-mail address to which an email will be sent when the payroll run is started. (Email starten)
    - `emailAddressPayrollRunFinished` string, nullable: The e-mail address to which an email will be sent when the payroll run is finished. (Email gereed)

## Response `202`

Accepted

- object
  - `content` InitiatedPayrollRun
    - `id` string, uuid: The unique identifier (GUID/UUID) of the payroll run.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

---

[API](https://skmtc.dev/loket/apis/loket-api.md) - [All operations](https://skmtc.dev/loket/apis/loket-api/llms.txt) - [OpenAPI document](https://skmtc.dev/loket/apis/loket-api/revisions/32170564148f?raw)
