Credit memo
The Credit memo Partner API uses the same /partners/invoices routes as standard invoices. A credit memo is an invoice record with invoiceType: 'memo'. There is no separate base path such as /partners/credit-memos.
Credit memos reduce amounts owed on open invoices via apply-to-invoice endpoints. Responses include the same derived status field as invoices (see Invoices).
Authentication
Same as all Partner routes: HMAC (x-client-id, x-signature) plus Bearer partner access token.
Create a credit memo
POST /partners/invoices
Set invoiceType: 'memo' in the JSON body. Shape matches invoice create: customer, products/line items, dates, totals, etc.
Partner UUID helpers on create:
appliedToInvoiceUuidβ optional; links the memo to an open invoice at creation (instead of internalappliedToInvoiceId).customerUuid, product UUIDs on lines,tagUuidsβ same as invoice create.
Recurring: Credit memos cannot be recurring. POST /partners/recurring-invoice-templates requires invoiceType: 'invoice' (not memo).
List credit memos
GET /partners/invoices with invoiceType=memo.
Combine with page, limit, isDraft, status, customers, date range, search, etc.
Get, update, delete
| Method | Path |
|---|---|
GET |
/partners/invoices/{uuid} |
PATCH |
/partners/invoices/{uuid} |
DELETE |
/partners/invoices/{uuid} |
{uuid} is the memoβs UUID (in Partner JSON, object id equals that UUID).
Approve and send
| Method | Path |
|---|---|
PATCH |
/partners/invoices/{uuid}/approve |
POST |
/partners/invoices/{uuid}/send |
Same rules as invoices (non-draft, customer, products required for send where enforced).
Apply credit to invoices
All id values in bodies are partner invoice UUIDs (id on invoice/memo objects in API responses).
| Method | Path | Role of {uuid} |
Body |
|---|---|---|---|
PATCH |
/partners/invoices/{uuid}/apply-multiple-credit-to-invoice |
Target invoice (receiving credit) | creditMemos: [{ id, amount }] β each id is a credit memo UUID |
PATCH |
/partners/invoices/{uuid}/apply-credit-to-multiple-invoices |
Credit memo | invoices: [{ id, amount }] β each id is a target invoice UUID |
PATCH |
/partners/invoices/{uuid}/remove-credit |
Context invoice per implementation | memoId: UUID of the credit memo to unapply |
Attachments and public link
Same paths as invoices:
POST /partners/invoices/{uuid}/attachmentsβ JSON{ "attachments": [{ "url", "title?" }] }POST /partners/invoices/{uuid}/attachments/uploadβ multipart fielddocumentsGET /partners/invoices/{uuid}/public-linkβ returnspublicToken,publicUrl
Audit log
GET /partners/invoices/{uuid}/audit-log
Errors and UUIDs
Ambiguous invoice UUID in a workspace (legacy duplicates) can yield 409 until data is migrated. Invalid field updates typically return 400 with a message.
On this page
- Credit memo