Retrieve a vendor credit
Operation ID: getVendorCredit
Group: Accounting › Vendor Credits
Open in the interactive reference
GET /accounting/vendor-credits/{id}
Read-only: Reads and returns; changes nothing.
Retrieves a vendor credit. A vendor credit is a credit memo from a vendor that can be applied against vendor bills in the same currency. The response has the credit's main fields and its line items with their amortization schedules.
POST accounting/vendor-credits/search returns the same record for each match. GET accounting/vendor-credits returns the main fields only.
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 vendor credit you want to retrieve. Example: "bf4853fb-b692-4b4a-b4a4-c8fee3819f9a". |
Response
200 Success
Under data (getVendorCreditOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for the vendor credit. |
vendorCreditNumber |
string | no | The vendor credit number. Absent until a number has been assigned. |
referenceNumber |
string | yes | The vendor's credit memo reference number, as printed on the vendor's document. |
creditDate |
date | yes | The date on the vendor's credit memo. Format YYYY-MM-DD. |
currency |
string | yes | The currency the credit is denominated in. Format ISO 4217, for example 'USD'. Governs totalAmount and every line amount. |
status |
string | no | The application status, how much of the credit has been set against vendor bills. Values include 'unapplied', 'partiallyApplied' and 'applied'. |
totalAmount |
decimal | no | The total credit amount, in currency. |
externalId |
string | no | The identifier this credit has in the upstream system that produced it. It is not unique. |
vendorId |
string | no | The vendor this credit is from. See id on GET accounting/vendors/:id. |
vendorName |
string | no | The name of the vendor this credit is from. |
entityId |
string | no | The legal entity this credit is booked under. See id on GET base/entities. |
entityName |
string | no | The name of the legal entity this credit is booked under. |
lastModifiedDate |
date-time | yes | The date and time the vendor credit 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. |
lines |
array<object> | no | The credit line items, in their order on the credit. An empty array when the credit has none. |
lines[].id |
string | yes | The unique identifier for the line item. |
lines[].lineNumber |
string | no | The line item number. |
lines[].description |
string | no | A description of the credit line item. |
lines[].lineType |
string | no | The type of line item. Possible values: 'expense', 'prepaid'. |
lines[].amount |
decimal | no | The line credit amount, in the credit currency. |
lines[].currency |
string | no | The currency for the line. It always matches the credit currency. Format ISO 4217, for example 'USD'. |
lines[].netAmount |
decimal | no | The line amount excluding VAT, in the credit currency. |
lines[].vatAmount |
decimal | no | The computed VAT amount on the line, in the credit currency. |
lines[].vatPercentage |
decimal | no | The VAT rate applied, as a percentage. 19 means 19%, not 0.19. |
lines[].accountId |
string | no | The general ledger account this line credits. See id on GET accounting/accounts/:id. |
lines[].departmentId |
string | no | The department this line is allocated to. See id on GET people/departments/:id. |
lines[].amortizationSchedules |
array<object> | no | The amortization schedules this line is deferred over, one per accounting book. Absent when the line is not amortized, which is every line whose lineType is not 'prepaid'. Read the scheduled installments with GET accounting/amortization-schedule-lines, filtering on amortizationScheduleHeaderId. |
lines[].amortizationSchedules[].id |
string | yes | The unique identifier for the amortization schedule. Pass it as amortizationScheduleHeaderId to GET accounting/amortization-schedule-lines to read its installments. |
lines[].amortizationSchedules[].bookId |
string | no | The accounting book this schedule posts into. It is what distinguishes the entries of this array. See id on GET accounting/books/:id. |
lines[].amortizationSchedules[].bookName |
string | no | The name of the accounting book this schedule posts into. |
lines[].amortizationSchedules[].status |
string | no | How far the schedule has progressed. Values include 'notStarted', 'inProgress', 'completed' and 'voided'. A schedule created alongside an unposted credit reads 'notStarted' until the credit posts. |
lines[].amortizationSchedules[].amortizationMethod |
string | no | How the schedule spreads its total. Values include 'exactDays', 'pointInTime', 'straightLine', 'straightLineProRateFirstLast' and 'usageBased'. |
lines[].amortizationSchedules[].amortizationStartDate |
date | no | The first day the schedule amortizes over. Format YYYY-MM-DD. |
lines[].amortizationSchedules[].amortizationEndDate |
date | no | The last day the schedule amortizes over, inclusive. Format YYYY-MM-DD. |
lines[].amortizationSchedules[].term |
decimal | no | The number of months the schedule spreads over. A count, not an amount, so it carries no currency. |
lines[].amortizationSchedules[].description |
string | no | The note recorded against the schedule, where one was given. |
lines[].amortizationSchedules[].deferredAccountId |
string | no | The general ledger account the deferred balance sits on until it is recognized. See id on GET accounting/accounts/:id. |
lines[].amortizationSchedules[].recognitionAccountId |
string | no | The general ledger account each installment recognizes the expense into. See id on GET accounting/accounts/:id. It is taken from the schedule's installments, so it is absent on a schedule that has none yet. |
lines[].amortizationSchedules[].totalRecognized |
decimal | no | The amount recognized so far across the schedule's posted installments, in the credit currency. Zero until the first installment posts. |
{
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"vendorCreditNumber": "<vendorCreditNumber>",
"referenceNumber": "<referenceNumber>",
"creditDate": "2026-01-15",
"currency": "<currency>",
"status": "<status>",
"totalAmount": "19.99",
"externalId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"vendorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"vendorName": "<vendorName>",
"entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityName": "<entityName>",
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"origin": "<origin>",
"lines": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"lineNumber": "<lineNumber>",
"description": "<description>",
"lineType": "<lineType>",
"amount": "19.99",
"currency": "<currency>",
"netAmount": "19.99",
"vatAmount": "19.99",
"vatPercentage": "19.99",
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"departmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"amortizationSchedules": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bookName": "<bookName>",
"status": "<status>",
"amortizationMethod": "<amortizationMethod>",
"amortizationStartDate": "2026-01-15",
"amortizationEndDate": "2026-01-15",
"term": "19.99",
"description": "<description>",
"deferredAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"recognitionAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"totalRecognized": "19.99"
}
]
}
]
},
"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