Get a credit note
Returns 404 if the ID belongs to a document of a different type (e.g. an invoice ID) — each document type is isolated to its own endpoint.
Authentication
JWT issued via POST /api/v1/auth/sign_in. Used by mobile and SPA clients. Revoked tokens are rejected.
Path parameters
Response
Credit note lifecycle state. The full payment-derived
state set can appear here even though credit notes are not
themselves a payment obligation. Practically: consumers
should treat draft and exposed as the meaningful
credit-note lifecycle states; the paid-family states
reflect how the credit note has been applied against the
source invoice.
ISO-4217 currency code.
Credit note number (formatted via number_series, e.g. ‘DOB2026-0001’). Null for drafts.
Tax scheme (UNCL 5153), e.g. “VAT”.
Delivery/carrier mode
Amount settled so far (payments + advance deductions).
Outstanding amount (tax_inclusive − amount_paid).
Origin of the document. null when it was created in Lucanto, in which case totals are Lucanto’s EN 16931 calculation. A non-null value means the document was imported from that system and initially carries the source system’s own figures, preserved verbatim; those may differ by cents from Lucanto’s calculation because systems round VAT at different levels (line vs. category). insight means AI extraction from an uploaded file, not an import from another vendor. This records provenance only, not which calculation is currently in effect — editing line items or document discounts recomputes totals in Lucanto while leaving import_source set. In practice a document only ever carries kros_developer, isdoc, superfaktura or null. kros appears only on rows imported before the writer was renamed, and insight is written by the expense path only. The enum is kept as the union across resources rather than narrowed, so a legacy row cannot fail validation.

