Retrieve a payroll payment
Operation ID: getPayrollPayment
Group: Accounting › Payroll Payments
Open in the interactive reference
GET /accounting/payroll-payments/{id}
Read-only: Reads and returns; changes nothing.
Retrieves a payroll payment. Use the payroll payment's id, not its payrollPaymentNumber.
A payroll payment is an outbound payment that pays payroll details. Each application ties part of the payment to one payroll detail and one payee.
The same id also works on GET accounting/outbound-payments/:id, which returns the payment's lines instead of its applications.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
id |
path | string | yes | The unique identifier of the payroll payment you want to retrieve. Example: "a71c3d09-58e4-4b12-90f7-2ce6810b45da". |
Response
200 Success
Under data (getPayrollPaymentOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for the payroll payment. The same record is also readable as an outbound payment under this id. |
payrollPaymentNumber |
string | no | The payment number. Absent until a number has been assigned. |
paymentDate |
date | yes | The date the payment is made. Format YYYY-MM-DD. |
paymentCurrency |
string | yes | The currency the payment is made in. Format ISO 4217, for example 'USD'. Governs totalPaid and every application amount. |
paymentType |
string | yes | How the payment was made: the instrument, not the origin. Values include 'manual' and 'bank'. |
status |
string | yes | The status of the payment. Values include 'successful', 'rejected', 'cancelled', 'processing', 'partiallySuccessful', 'unknown', 'unsigned', 'manuallyRecorded', 'scheduled' and 'voided'. |
approvalStatus |
string | no | The approval status of the payment. |
description |
string | no | A description recorded on the payment. |
totalPaid |
decimal | no | The total amount paid, in paymentCurrency. |
externalId |
string | no | The identifier this payment has in the upstream system that produced it. It is not unique. |
paymentAccountId |
string | no | The general ledger account the payment is booked against. See id on GET accounting/accounts/:id. |
paymentAccountName |
string | no | The name of the general ledger account the payment is booked against. |
entityId |
string | no | The legal entity that made the payment. See id on GET base/entities. |
entityName |
string | no | The name of the legal entity that made the payment. |
lastModifiedDate |
date-time | yes | The date and time the payroll payment last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
origin |
string | no | The source system this record came from, as free-form text. Absent when none was supplied. |
applications |
array<object> | no | The payroll payment applications, each tying part of this payment to one payroll detail and one payee. An empty array when the payment has none. |
applications[].id |
string | yes | The unique identifier for the payroll payment application. |
applications[].applicationNumber |
string | no | The application number. |
applications[].description |
string | no | A description of the application. |
applications[].amountPaid |
decimal | no | The amount paid by this application, as a decimal in currency. |
applications[].currency |
string | no | The currency governing amountPaid, the payroll run's currency. Format ISO 4217, for example 'USD'. |
applications[].paymentStatus |
string | no | The status of the paying payment item, mirrored onto the application. It uses the same values as the payment's status. |
applications[].payrollDetailId |
string | no | The payroll detail this application settles. See id on GET accounting/payroll-details/:id. |
applications[].accountId |
string | no | The general ledger account this application is booked against. See id on GET accounting/accounts/:id. |
applications[].accountName |
string | no | The name of the general ledger account this application is booked against. |
applications[].accountNumber |
string | no | The number of the general ledger account this application is booked against. |
applications[].payeeCode |
string | no | The payee, as a payroll-payee code from your tenant's configuration, for example 'employee' or 'taxOffice'. |
applications[].payeeLabel |
string | no | The display label for the payee. |
applications[].vendorId |
string | no | The vendor being paid, when the payee is a vendor. See id on GET accounting/vendors/:id. |
applications[].vendorName |
string | no | The name of the vendor being paid. |
applications[].employeeId |
string | no | The employee being paid, when the payee is an employee. There is no endpoint for it. |
applications[].employeeName |
string | no | The name of the employee being paid. |
{
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"payrollPaymentNumber": "<payrollPaymentNumber>",
"paymentDate": "2026-01-15",
"paymentCurrency": "<paymentCurrency>",
"paymentType": "<paymentType>",
"status": "<status>",
"approvalStatus": "<approvalStatus>",
"description": "<description>",
"totalPaid": "19.99",
"externalId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paymentAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paymentAccountName": "<paymentAccountName>",
"entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityName": "<entityName>",
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"origin": "<origin>",
"applications": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicationNumber": "<applicationNumber>",
"description": "<description>",
"amountPaid": "19.99",
"currency": "<currency>",
"paymentStatus": "<paymentStatus>",
"payrollDetailId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountName": "<accountName>",
"accountNumber": "<accountNumber>",
"payeeCode": "<payeeCode>",
"payeeLabel": "<payeeLabel>",
"vendorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"vendorName": "<vendorName>",
"employeeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"employeeName": "<employeeName>"
}
]
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Errors
| Code | Status |
|---|---|
NOT_FOUND |
400 |
Statuses
400— Invalid request or business failure. Codes: NOT_FOUND401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error