Retrieve a credit memo
Operation ID: getCreditMemo
Group: Accounting › Credit Memos
Open in the interactive reference
GET /accounting/credit-memos/{id}
Read-only: Reads and returns; changes nothing.
Retrieves a credit memo. Use the credit memo's id, not its creditMemoNumber.
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 credit memo you want to retrieve. |
Response
200 Success
Under data (getCreditMemoOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for the credit memo. |
creditMemoNumber |
string | no | The credit memo number, for example 'CM-1'. Absent while none has been assigned. |
creditMemoDate |
date | yes | The date the credit memo was issued. Format YYYY-MM-DD. |
creditMemoStatus |
string | no | The application status of the credit memo. Possible values: 'unapplied', 'partiallyApplied', 'appliedInFull'. |
creditMemoType |
string | no | How the credit memo was created. Possible values: 'manual', 'creditRebill', 'earlyRenewal', 'lateFees', 'cancellation', 'inventoryReturn'. Only 'manual' credit memos are created through this API. The rest come from internal workflows. |
manualCreditMemoType |
string | no | The reason for a manual credit memo, as a tenant-configured key, for example 'writeOff' or 'customerSatisfaction'. Absent when creditMemoType is not 'manual'. |
currency |
string | yes | The currency of the credit memo. Every amount on the record, its lines and its application rows is in this currency. Format ISO 4217, for example 'USD'. |
description |
string | no | A free-form description of the credit memo. |
externalCreditMemoId |
string | no | The identifier of this credit memo in an external source system. For identifiers owned by your other systems, use externalIdentifiers below. |
customerId |
string | yes | The customer the credit memo is issued to. See id on GET accounting/customers/:id. |
customerName |
string | no | The name of the customer the credit memo is issued to. |
customerNumber |
string | no | The customer number of the customer the credit memo is issued to. |
entityId |
string | yes | The legal entity that issued the credit memo. See id on GET base/entities. |
entityName |
string | no | The name of the legal entity that issued the credit memo. |
invoiceId |
string | no | The invoice the credit memo was created from. Absent when it was not created from an invoice. See id on GET accounting/invoices/:id. |
invoiceNumber |
string | no | The number of the invoice the credit memo was created from. Present whenever invoiceId is. |
subtotal |
decimal | no | The subtotal before tax and duties, in the credit memo currency. Absent when no subtotal has been computed. |
totalTax |
decimal | no | The total tax across all lines, in the credit memo currency. |
totalDutiesAndCustoms |
decimal | no | The total duties and customs across all lines, in the credit memo currency. |
totalAmountCredited |
decimal | no | The total credited, including tax and duties, in the credit memo currency. |
appliedAmount |
decimal | no | The amount applied to invoices and debit memos so far, in the credit memo currency. This is the net of the application rows below. |
unappliedAmount |
decimal | no | The amount still available to apply, in the credit memo currency. |
lastModifiedDate |
date-time | yes | The date and time the credit memo last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
lines |
array<object> | no | The lines of the credit memo, each crediting one product or free-text item. An empty array when the credit memo has no lines. Every amount is in the credit memo currency. |
lines[].id |
string | yes | The unique identifier for the credit memo line. |
lines[].creditMemoLineNumber |
string | no | The line number within the credit memo. |
lines[].description |
string | no | The line description, as shown to the customer. |
lines[].productId |
string | no | The product credited by the line. Absent on free-text lines. See id on GET accounting/products/:id. |
lines[].productCode |
string | no | The product code as it stood when the line was created. It does not follow later changes to the product. |
lines[].productDescription |
string | no | The product description as it stood when the line was created. It does not follow later changes to the product. |
lines[].quantity |
decimal | no | The quantity credited. |
lines[].unitPrice |
decimal | no | The price per unit, in the credit memo currency. |
lines[].totalPrice |
decimal | no | The line total before tax and duties, in the credit memo currency. |
lines[].taxAmount |
decimal | no | The tax on the line, in the credit memo currency. |
lines[].dutiesAndCustomsAmount |
decimal | no | The duties and customs on the line, in the credit memo currency. |
lines[].amountCredited |
decimal | no | The total credited for the line, in the credit memo currency: totalPrice + taxAmount + dutiesAndCustomsAmount. |
lines[].taxCode |
string | no | The tax code applied to the line. |
lines[].taxDate |
date | no | The date the line's tax was determined. Format YYYY-MM-DD. |
lines[].serviceStartDate |
date | no | The first day of the service period the line covers. Format YYYY-MM-DD. |
lines[].serviceEndDate |
date | no | The last day of the service period the line covers, inclusive. Format YYYY-MM-DD. |
applications |
array<object> | no | The application rows, each recording one allocation of the credit memo against an invoice or debit memo. Applying and unapplying both add a row, told apart by actionType and the sign of appliedAmount, so this is an append-only history rather than the current allocation. An empty array when the credit memo has never been applied. |
applications[].id |
string | yes | The unique identifier for the application row. |
applications[].appliedAmount |
decimal | no | The signed amount moved by this row, in the row's currency: positive when applying, negative when unapplying. Sum the rows to reconcile against the header appliedAmount. |
applications[].appliedDate |
date | yes | The date the allocation was recorded. Format YYYY-MM-DD. |
applications[].actionType |
string | no | What this row did. Possible values: 'applied', 'unapplied'. |
applications[].type |
string | no | The kind of document the credit memo was allocated against. Possible values: 'invoice', 'debitMemo'. Absent when the stored target kind is not one this version recognizes. |
applications[].targetId |
string | no | The target document: an invoice when type is 'invoice', a debit memo when type is 'debitMemo'. Absent when the target no longer exists or its kind is unrecognized. See id on GET accounting/invoices/:id and GET accounting/debit-memos/:id. |
applications[].targetNumber |
string | no | The number of the target document. |
applications[].currency |
string | yes | The currency of this row's appliedAmount. Matches the credit memo currency. Format ISO 4217, for example 'USD'. |
externalIdentifiers |
array<object> | no | The credit memo's identifiers in other systems, one per configured field name. An empty array or absent when the credit memo has none. |
externalIdentifiers[].fieldName |
string | yes | The configured field name of the identifier, for example 'netsuiteCreditMemoId'. |
externalIdentifiers[].value |
string | yes | The identifier in the other system. |
externalIdentifiers[].externalUrl |
string | no | A link to the record in the other system. Absent when none is set. |
{
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"creditMemoNumber": "<creditMemoNumber>",
"creditMemoDate": "2026-01-15",
"creditMemoStatus": "<creditMemoStatus>",
"creditMemoType": "<creditMemoType>",
"manualCreditMemoType": "<manualCreditMemoType>",
"currency": "<currency>",
"description": "<description>",
"externalCreditMemoId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customerName": "<customerName>",
"customerNumber": "<customerNumber>",
"entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityName": "<entityName>",
"invoiceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"invoiceNumber": "<invoiceNumber>",
"subtotal": "19.99",
"totalTax": "19.99",
"totalDutiesAndCustoms": "19.99",
"totalAmountCredited": "19.99",
"appliedAmount": "19.99",
"unappliedAmount": "19.99",
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"lines": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"creditMemoLineNumber": "<creditMemoLineNumber>",
"description": "<description>",
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"productCode": "<productCode>",
"productDescription": "<productDescription>",
"quantity": "19.99",
"unitPrice": "19.99",
"totalPrice": "19.99",
"taxAmount": "19.99",
"dutiesAndCustomsAmount": "19.99",
"amountCredited": "19.99",
"taxCode": "<taxCode>",
"taxDate": "2026-01-15",
"serviceStartDate": "2026-01-15",
"serviceEndDate": "2026-01-15"
}
],
"applications": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"appliedAmount": "19.99",
"appliedDate": "2026-01-15",
"actionType": "<actionType>",
"type": "<type>",
"targetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"targetNumber": "<targetNumber>",
"currency": "<currency>"
}
],
"externalIdentifiers": [
{
"fieldName": "<fieldName>",
"value": "<value>",
"externalUrl": "<externalUrl>"
}
]
},
"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