Invoices
Create, book and send invoices. Credit notes and offers are created in Numina and can be read here.
Endpoints
- GETList invoices
/v1/invoices - POSTCreate invoice
/v1/invoices - GETGet invoice
/v1/invoices/{id} - DELDelete draft invoice
/v1/invoices/{id} - GETDownload invoice PDF
/v1/invoices/{id}/pdf - POSTBook draft invoice
/v1/invoices/{id}/book - POSTCredit invoice
/v1/invoices/{id}/credit-notes - POSTSend invoice by email
/v1/invoices/{id}/send
The invoice object
- idstring (uuid)Invoice ID
- Invoice number (assigned when booked)
- typestringInvoice type. Create a credit note with POST /v1/invoices/{id}/credit-notes; offers are created in Numina.One of
invoicecreditNoteoffer - On a credit note, the invoice it credits
- statusstring
draft: not booked.sent: booked, whether or not it was delivered (seedelivery_status).closed: fully settled.paid: settled, only on invoices migrated from Billy.cancelled: a booked credit note, which does not mean it was voided; a credit note can also showclosedwhen its balance is zero. An offer isdraft,sent,acceptedordeclined. To find settled invoices, useclosedandpaid, oroutstanding_balance.One ofdraftsentclosedpaidcancelledaccepteddeclined - issue_datestringIssue date
- Payment due date
- Contact ID
- Contact name (snapshot at invoice creation)
- Currency code
- subtotalnumberSubtotal (excl. VAT)
- vatnumberVAT amount
- VAT rate percentage; null when the invoice contains mixed VAT treatments
- totalnumberTotal amount (incl. VAT)
- has_mixed_vatboolean
- Outstanding balance in DKK (not invoice currency; 0 when settled). Only populated for booked invoices.
- One of
DKK - currency_ratenumberInvoice currency to DKK: amount × rate = DKK. On a draft, the rate you sent; once booked, the rate Numina used (see
currency_rateon POST /v1/invoices). - delivery_statusstringChannel handoff state. 'sent' means provider acceptance, not confirmed delivery to the recipient.One of
sentfailedpendingnot_requested - is_overduebooleanWhether the invoice is past its due date and still owed (see
payment_state) - Whether a booked invoice is owed. 'covered_by_unmatched_payments': the customer's balance is covered by payments booked without an invoice match, so the invoice is not owed although
outstanding_balancestays positive; the customer's balance is the truth. 'exchange_difference': the remainder is a currency difference, not unpaid money. Null for drafts, offers, credit notes and cancelled invoices.One ofopenpaidcovered_by_unmatched_paymentsexchange_differencenull - unmatched_payments_notestringSet only when payment_state is 'covered_by_unmatched_payments'.
- itemsarray of objectsInvoice line items
+Show 9 child attributesHide child attributes
- unitstringUnit: unit, hour, day, kilometer, week, or month
- VAT code on this line, null for no VAT
- Sales account this line is booked to
- vat_ratenumberVAT percentage for this line
- idstringLine item ID
- descriptionstringLine item description
- quantitynumberQuantity
- unit_pricenumberUnit price (excl. VAT)
- Note displayed on the invoice
- The bank account the invoice asks the customer to pay into, as copied when it was created. Null when it names none; such an invoice cannot be booked.
+Show 6 child attributesHide child attributes
- What
clearing_codeandaccount_numberare: a Danish registration number, a UK sort code or a US ACH routing number. Null when there is only an IBAN.One ofdk-registration-numbergb-sort-codeachnull - Registration number, sort code or ACH routing number
- Creation timestamp (ISO 8601, UTC)
Endpoints
GET /v1/invoices
POST /v1/invoices
GET /v1/invoices/{id}
DELETE /v1/invoices/{id}
GET /v1/invoices/{id}/pdf
POST /v1/invoices/{id}/book
POST /v1/invoices/{id}/credit-notes
POST /v1/invoices/{id}/sendThe invoice object
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"invoice_number": 1001,
"type": "invoice",
"credited_invoice_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "sent",
"issue_date": "2026-01-15",
"due_date": "2026-02-15",
"contact_id": "550e8400-e29b-41d4-a716-446655440001",
"contact_name": "Acme ApS",
"currency": "DKK",
"subtotal": 10000,
"vat": 2500,
"vat_rate": 25,
"total": 12500,
"has_mixed_vat": false,
"outstanding_balance": 12500,
"outstanding_balance_currency": "DKK",
"currency_rate": 0,
"delivery_status": "sent",
"email_delivery_status": "string",
"email_sent_at": "string",
"e_invoice_sent_at": "string",
"is_overdue": false,
"payment_state": "open",
"unmatched_payments_note": "string",
"items": [
{
"unit": "string",
"vat_account_id": "string",
"vat_code": "string",
"sales_account_number": 0,
"vat_rate": 0,
"id": "550e8400-e29b-41d4-a716-446655440002",
"description": "Consulting services",
"quantity": 10,
"unit_price": 1000
}
],
"memo": "Project Q1 delivery",
"payment_details": {
"bank_name": "Danske Bank",
"scheme": "dk-registration-number",
"clearing_code": "3409",
"account_number": "0012345678",
"iban": "DK5030000012345678",
"swift_bic": "DABADKKK"
},
"created_at": "2026-01-15T10:30:00Z"
}