NuminaDevelopers
Dashboard
Invoices

Invoices

Create, book and send invoices. Credit notes and offers are created in Numina and can be read here.

Endpoints

The invoice object

  • idstring (uuid)
    Invoice ID
  • invoice_numberinteger· nullable
    Invoice number (assigned when booked)
  • typestring
    Invoice type. Create a credit note with POST /v1/invoices/{id}/credit-notes; offers are created in Numina.
    One ofinvoicecreditNoteoffer
  • credited_invoice_idstring (uuid)· nullable
    On a credit note, the invoice it credits
  • statusstring
    draft: not booked. sent: booked, whether or not it was delivered (see delivery_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 show closed when its balance is zero. An offer is draft, sent, accepted or declined. To find settled invoices, use closed and paid, or outstanding_balance.
    One ofdraftsentclosedpaidcancelledaccepteddeclined
  • Issue date
  • due_datestring· nullable
    Payment due date
  • contact_idstring (uuid)· nullable
    Contact ID
  • contact_namestring· nullable
    Contact name (snapshot at invoice creation)
  • currencystring· nullable
    Currency code
  • subtotalnumber
    Subtotal (excl. VAT)
  • vatnumber
    VAT amount
  • vat_ratenumber· nullable
    VAT rate percentage; null when the invoice contains mixed VAT treatments
  • totalnumber
    Total amount (incl. VAT)
  • outstanding_balancenumber· nullable
    Outstanding balance in DKK (not invoice currency; 0 when settled). Only populated for booked invoices.
  • One ofDKK
  • Invoice currency to DKK: amount × rate = DKK. On a draft, the rate you sent; once booked, the rate Numina used (see currency_rate on POST /v1/invoices).
  • Channel handoff state. 'sent' means provider acceptance, not confirmed delivery to the recipient.
    One ofsentfailedpendingnot_requested
  • email_delivery_statusstring· nullable
  • email_sent_atstring· nullable
  • e_invoice_sent_atstring· nullable
  • is_overdueboolean
    Whether the invoice is past its due date and still owed (see payment_state)
  • payment_statestring· nullable
    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_balance stays 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
  • Set only when payment_state is 'covered_by_unmatched_payments'.
  • itemsarray of objects
    Invoice line items
    +Show 9 child attributes
  • memostring· nullable
    Note displayed on the invoice
  • payment_detailsobject· nullable
    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 attributes
    • bank_namestring· nullable
    • schemestring· nullable
      What clearing_code and account_number are: 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
    • clearing_codestring· nullable
      Registration number, sort code or ACH routing number
    • account_numberstring· nullable
    • ibanstring· nullable
    • swift_bicstring· nullable
  • created_atstring· nullable
    Creation timestamp (ISO 8601, UTC)
Endpoints
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}/send
The invoice object
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"
}