Credit notes

A credit note is an official accounting document that reduces the amount a customer owes on an invoice after that invoice has been finalized: the inverse of an invoice, formally acknowledging that the customer should pay less or receive money back.


Why this matters

When an invoice is FINAL, it cannot be changed anymore. Any correction, whether a billing mistake, a service credit, or a goodwill gesture, happens through a credit note: a new document linked to the original invoice, crediting it in full or in part. The original invoice remains FINAL; the credit note is created in DRAFT, carries a ‘CR’ prefix in its invoice number, and follows the normal invoice lifecycle.

Creating a credit note

Via API

Create a credit note with POST /v1/invoices/{id}/credit on the invoice that needs to be credited. Do not specify any invoice lines to credit the entire invoice:

POST
/v:version/invoices/:resourceId/credit
1curl -X POST https://api.solvimon.com/v1/invoices/invo_MwGkq2Bvc7ujJ6YY2Rg5/credit \
2 -H "X-API-KEY: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "note": "Crediting the entire invoice"
6}'

The response is the credit note, linked to the original invoice:

Response
1{
2 "object_type": "INVOICE",
3 "id": "invo_NxHlr3Cwd8vkK7XX3Sh6",
4 "customer_id": "cust_AbD3DqausjOYiMNDZY11F",
5 "status": "DRAFT",
6 "type": "CREDIT",
7 "created_at": "2026-07-02T09:15:00Z",
8 "updated_at": "2026-07-02T09:15:00Z",
9 "billing_currency": "EUR",
10 "invoice_amount_including_tax": {
11 "quantity": "-250.00",
12 "currency": "EUR"
13 },
14 "payment_status": "UNPAID",
15 "paid": false,
16 "linked_invoices_ids": [
17 "invo_MwGkq2Bvc7ujJ6YY2Rg5"
18 ]
19}

To credit an invoice partially, specify the periods, line groups, and per-line credit amounts in the periods field instead of leaving the request body empty:

POST
/v:version/invoices/:resourceId/credit
1curl -X POST https://api.solvimon.com/v1/invoices/invo_MwGkq2Bvc7ujJ6YY2Rg5/credit \
2 -H "X-API-KEY: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "note": "Crediting one incorrect line",
6 "periods": [
7 {
8 "period_order": 0,
9 "amount": {
10 "quantity": "50.00",
11 "currency": "EUR"
12 },
13 "groups": [
14 {
15 "group_order": 0,
16 "amount": {
17 "quantity": "50.00",
18 "currency": "EUR"
19 },
20 "lines": [
21 {
22 "line_order": 2,
23 "amount": {
24 "quantity": "50.00",
25 "currency": "EUR"
26 }
27 }
28 ]
29 }
30 ]
31 }
32 ]
33}'

The response includes the credit note’s invoice number, once it moves to Final.

Via Desk

  • Go to the invoice you’d like to credit

  • In the menu, select ‘Credit entire invoice’

  • Add an optional note and create the credit note

  • You are navigated to the credit note, where the PDF can be downloaded. The original invoice is linked to the credit note as shown below

  • The credit note is also linked in the main invoice

Customer details on the credit note

By default Solvimon refreshes the customer and billing details on a draft invoice with the current values, which means a credit note can end up with details that differ from the invoice it is crediting.

For example:

  • The original FINAL invoice was issued to Daalsesingel 51.
  • The customer’s address is later changed to Daalsesingel 52.
  • By default, the credit note would show the new address (52), not the address on the original invoice.

The credit_details_source option on the credit action lets you choose which behaviour you want:

ValueBehaviour
CURRENTDefault. Refresh the customer and billing entity when creating the credit note, so it reflects the most up-to-date information. Matches the previous behaviour.
ORIGINALCopy the customer and billing entity exactly from the original invoice, without refreshing. Use this when the credit note must mirror the invoice it credits, even if the customer’s details have since changed.
POST
/v:version/invoices/:resourceId/credit
1curl -X POST https://api.solvimon.com/v1/invoices/invo_MwGkq2Bvc7ujJ6YY2Rg5/credit \
2 -H "X-API-KEY: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "note": "Crediting due to incorrect billing address",
6 "credit_details_source": "ORIGINAL"
7}'

credit_details_source defaults to CURRENT, so existing integrations keep their current behaviour. Only set ORIGINAL when you explicitly want the credit note to copy the original invoice’s details.

Credit and reissue in one call

For the common correction scenario where a finalized invoice had the wrong details and you want to credit it and reissue a fixed version in one step, use POST /v1/invoices/{id}/credit_and_copy. It creates the credit note and a corrected copy of the invoice in a single call, and accepts the same credit_details_source option.


See also: Correcting invoices, Referenced refunds and Invoice lifecycle.