Skip to main content
POST
Trigger send HMRC RTI FPS for 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).

Path Parameters

payrollConfigId
string
required

The payroll configuration ID

Pattern: ^[a-zA-Z0-9_-]+$
taxYear
string
required

The tax year

Pattern: ^[0-9]{4}$
period
string
required

The payroll period

Pattern: ^[0-9]+$

Query Parameters

preview
boolean
default:false

Whether to generate a preview without submitting to HMRC

Body

application/json

Optional. Carries the final submission details (required for the last period of the tax year) and the HMRC late reporting reason. The body may be omitted when neither applies. Sending the bare final submission details object as the body (the shape before finalSubmissionDetails and lateReason existed) is deprecated as input since 5 October 2026 and stops being accepted on 15 January 2027; until then it is read as finalSubmissionDetails with no late reason, and behaves exactly as it did before. Wrap the details in finalSubmissionDetails instead.

Body of the FPS submit and preview request. Both members are optional.

finalSubmissionDetails
object | null

Final submission details. Required for the last pay period of the tax year, otherwise omit it.

lateReason
enum<string> | null

HMRC late reporting reason, when this FPS is sent after the employees' payment date. It is reported on every payment in the submission (HMRC's Payment/LateReason) and recorded on the pay run. Omit it when reporting on time. The values map to HMRC's codes: NotionalPaymentToExpartByThirdPartyOrOverseasEmployer (A), NotionalPaymentEmploymentRelatedSecurity (B), NotionalPaymentOther (C), PaymentSubjectToClass1NicButP11dP9dForTax (D), NoRequirementToMaintainADeductionsWorkingSheetOrImpossibleToReportWorkDoneOnTheDay (F), ReasonableExcuse (G), CorrectionToEarlierSubmission (H). The single code letter is also accepted. Code E (micro employer "on or before" relaxation) was withdrawn by HMRC on 6 April 2016 and is rejected with 400 hmrcRtiFpsInvalidLateReason, as is any other value.

Available options:
NotionalPaymentToExpartByThirdPartyOrOverseasEmployer,
NotionalPaymentEmploymentRelatedSecurity,
NotionalPaymentOther,
PaymentSubjectToClass1NicButP11dP9dForTax,
NoRequirementToMaintainADeductionsWorkingSheetOrImpossibleToReportWorkDoneOnTheDay,
ReasonableExcuse,
CorrectionToEarlierSubmission
Example:

"ReasonableExcuse"

Response

FPS submission triggered successfully

message
object
content
object
validationIssues
object[]