Issue a credit note
Corrects an invoice already issued, by named lines or by a flat amount, instead of editing it: an invoice is never rewritten once sent. A fully credited open invoice moves to credited; a paid invoice stays paid. Send an Idempotency-Key header so a retry can never credit twice.
apiKeyAuthorizationBearer <token>An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.
id*stringIdempotency-Key?stringA value unique to this request, such as a UUID. A retry with the same key within 24 hours returns the first outcome instead of running again.
8 <= length <= 200application/json- body
reason*string1 <= length <= 500lines?array<>Credit these invoice lines, by the sale each one bills
1 <= items <= 500amount?integerA flat amount off the invoice, before tax, instead of named lines
0 < valueCreated
application/json- response
Created
id*stringnumber*stringCounts up from CN-0001 across your account, with no gaps
invoiceId*stringinvoiceNumber*stringcustomerId*stringcurrency*stringThe currency of every amount on the credit note
"USD""EUR""GBP""CAD""AUD""NZD""CHF""SEK""NOK""DKK""PLN""INR""SGD""HKD""AED""ZAR""BRL""MXN"lines*array<>subtotal*integerThe lines added up, before tax
0 <= valuetaxBps*|Copied from the invoice's rate. Null when the invoice carried no tax
tax*integerMinor units of the invoice's currency
0 <= valuetotal*integerWhat this credit note comes to: subtotal plus tax
0 <= valuereason*stringissuedAt*stringdate-timeshared*booleanTrue once POST /credit-notes/{id}/share has made a public link for this credit note, false again once revoked. The token itself is never in this response or the list
issuer*|The account as it billed the invoice this credit note corrects
curl -X POST "https://example.com/v1/invoices/inv_01K6XJ4Q8ZT3M9R5V2B7WDHNCA/credit-notes" \ -H "Idempotency-Key: 2f1c9a52-7d0e-4a8e-9a53-0c1f6f3f2b11" \ -H "Content-Type: application/json" \ -d '{ "reason": "Customer cancelled a seat" }'{ "id": "crn_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "number": "CN-0001", "invoiceId": "inv_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "invoiceNumber": "INV-0001", "customerId": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "currency": "USD", "lines": [ { "saleId": "sal_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "description": "northwind-telecom.com, 2 years", "quantity": 2, "unitPrice": 1439, "total": 1439 } ], "subtotal": 2878, "taxBps": 2000, "tax": 576, "total": 3454, "reason": "Customer cancelled a seat", "issuedAt": "2026-10-07T11:04:31.000Z", "shared": true, "issuer": { "name": "Northwind Telecom", "legalName": null, "addressLines": [], "taxId": null, "billingEmail": null }}Apply a customer's credit to an invoice POST
Draws on the customer's unallocated payment credit, oldest payment first, to pay down this invoice as far as the credit in the invoice's own currency goes. Refused when the invoice is not open, or there is no credit in that currency.
List credit notes against an invoice GET
Newest first, at most 200.