/v1/statutory-pay under the gateway base URLs documented in the API reference introduction. All endpoint paths on this page are relative to that base path.
Key concepts
- Statutory payment — a single award of one statutory pay type for one employee, identified by a
statutoryPayId. It carries the start and end dates, the total amount, a daily breakdown, its line items, and a status ofPending,InProgress, orPaid. - Average weekly earnings (AWE) — the earnings figure a calculation is based on, derived from the employee’s payslips over the relevant period. You can supply an
averageEarningsOverridewhen the derived figure is not appropriate. - Line item — one payable slice of the schedule, tied to a pay period. Each line item records its source (
PayrollRun,ImportedFromPreviousProvider, orExternalDirectPayment), whether it was manually adjusted, and the adjustment reason. - Sickness linking — SSP periods that fall close together link into one chain. The linking check reports whether a new absence links to earlier ones, the remaining SSP weeks, and whether waiting days are skipped.
- Alabaster recalculation — when an employee receives a pay rise that falls in the relevant period, AWE must be recalculated. The API detects affected payments and recalculates or updates their line items.
- External payment — a statutory amount already paid outside the payroll, recorded against the payment so the schedule reflects what remains to pay.
- Statutory rates — the HMRC weekly rates, waiting days, earnings limits, and recovery rates for a given tax year.
API structure
Statutory calculations
Preview a calculation without saving it viaPOST /calculations/preview, or run and store one for an employee with POST /calculations/employees/{employeeId}. Check SSP linking with POST /calculations/employees/{employeeId}/linking and review past calculations with GET /calculations/employees/{employeeId}/history. The request body is discriminated by statutoryType, so each pay type takes its own fields (for example qualifyingEventDate or neonatal care dates).
Statutory payments
Create a payment withPOST /payments/employees/{employeeId}, then retrieve, update, or delete it at /payments/employees/{employeeId}/{statutoryPayId}. List an employee’s payments with GET /payments/employees/{employeeId} or every payment in the organisation with GET /payments/organisations — both filter by status and statutoryPayType and paginate with pageSize and paginationToken. Each payment keeps a change history at GET /payments/employees/{employeeId}/{statutoryPayId}/history.
Line items and schedule
List a payment’s line items withGET /payments/employees/{employeeId}/{statutoryPayId}/line-items. Override a single week with PATCH .../weeks/{weekNumber} or an individual line item with PATCH .../line-items/{lineItemSequence}, supplying the new amount and a reason. Export the full schedule with GET .../schedule/export, choosing the output with the format query parameter.
External payments
Record an amount paid outside the payroll withPOST /payments/employees/{employeeId}/{statutoryPayId}/external-payments, including the gross and net amounts, payment date, tax year, and period. List recorded payments with GET, and remove one with DELETE .../external-payments/{lineItemSequence}.
Attachments
Attach supporting documents — for example a fit note or MATB1 — to a payment withPOST /payments/employees/{employeeId}/{statutoryPayId}/attachments, list them with GET, and remove one with DELETE .../attachments/{attachmentId}.
Alabaster and earnings
Fetch the AWE calculation for an employee withGET /payments/calculations/employees/{employeeId}/average-earnings, passing the startDate of the absence. For a specific payment, GET .../alabaster-detection reports whether a pay rise affects it; POST .../alabaster-recalculate reruns the calculation and POST .../alabaster-update-line-items applies the result to the schedule.
Import and reconcile
Bring in payments that started under a previous payroll provider withPOST /payments/import/{employeeId}, supplying the AWE, the weeks already paid, and type-specific details. POST /payments/reconcile reconciles an employee’s statutory payments against the pay run.
Statutory rates
GET /statutory-rates/available-years lists the tax years with published rates, and GET /statutory-rates/{taxYear} returns that year’s weekly rates, SSP waiting days, lower earnings limit, recovery rates, and the small employer threshold.
Typical workflow
- Fetch the current rates with
GET /statutory-rates/{taxYear}to understand the limits that apply. - For SSP, run the linking check to see whether the absence links to earlier sickness and whether waiting days are skipped.
- Preview the calculation with
POST /calculations/previewand review the weekly breakdown and any warnings. - Create the payment with
POST /payments/employees/{employeeId}. - Inspect the line items and adjust individual weeks if needed, giving a reason for each override.
- Let the schedule flow into your pay runs — see Running a pay run — and record any amounts paid outside payroll as external payments.
- After a back-dated pay rise, run Alabaster detection and recalculate affected payments.
Notes and best practices
- Prefer the preview endpoint while integrating: it returns the same calculation output without creating a record.
- The organisation and employee list endpoints are paginated — follow
paginationTokenrather than assuming a single page. - Manual overrides of weeks and line items require a
reason, and the payment’s history endpoint records every change, so use them instead of deleting and recreating payments. - Only set
averageEarningsOverridewhen the payslip-derived AWE is wrong for the employee; clear it again withclearAverageEarningsOverrideon update.
For how statutory payments behave in the product, including how they appear in pay runs, see the statutory payments guide.
Authentication
Every request needs anX-Auth-Token header, and multi-organisation credentials must also send X-Org-Id — see Authentication. Responses use the shared envelope described in Response format.