Skip to main content
POST
Unlock a locked payroll run

Authorizations

X-Auth-Token
string
header
required

Access token obtained from OAuth2 client credentials flow

X-Org-Id
string
header
required

Organisation to scope the request to. Required when the principal can access more than one organisation; optional for single-organisation principals (the authorizer resolves it automatically).

Headers

Request-Id
string

Optional. Your id for this request: it is carried into every log line about it, so quote it when you contact support.

Path Parameters

payrollConfigId
string
required

The payroll config id

year
integer<int32>
required

The year in format yyyy

period
integer<int32>
required

The period of the pay run (1, 2, 3... etc)

Body

application/json

The body of POST /payroll/{payrollConfigId}/{year}/{period}/unlock.

scope
string

What to reopen: Full (every payslip of the run) or Employees (the listed employees' payslips only)

employeeIds
string[] | null

The employees whose payslips to reopen. Required for the Employees scope, ignored otherwise

reason
string

Why the run is being unlocked. Recorded on the lock cycle and on every payslip version it supersedes. A leaver whose P45 is already issued is reopened like anyone else: the correction reaches HMRC on the next FPS, never as a new P45, and the run's history names them under leaversWithIssuedP45

Response

The run, and every later locked run of the payroll config, is reopened and their payslips are being reopened

message
object
required

A readable message about the outcome and a stable token a client can branch on.

content
object

The data the request returns with its metadata; left out on a response that carries no data, such as most errors.

validationIssues
object[] | null

Each field the request was refused for and why; left out when the request was not refused for its fields.