Retrieve an invoice
Returns a single invoice with a freshly signed pdf_url (1-hour TTL). Download promptly; the url itself expires per S3’s own presigned-URL rules - an expired link returns S3’s own 403 Forbidden (an XML body, not the VEXiON JSON error envelope, since the request goes straight to S3 and never reaches this API). There is no dedicated VEXiON error code for this; re-fetch the invoice via this endpoint for a fresh pdf_url.
Credit notes point at the original via corrects_invoice_id; corrected originals carry corrected_by_invoice_id. Walk the pair to reconstruct the correction chain for accounting exports.
Scope: organization:read. Added 2026-07-27 (owner-approved versioned API change). This endpoint used to require no scope at all: any valid key for the organization, whatever scopes it carried, could read this organization’s invoice history, including amounts, VAT, payment method and refunds - a key minted only for, say, notifications:send could still read it. That gap is now closed. Existing keys minted before 2026-07-27 were backfilled with organization:read so no working integration broke when enforcement landed.
Authorizations
Your secret API key as a Bearer token: Authorization: Bearer vxn_sk_.... Keys are created and scoped in the dashboard - see Authentication.
Path Parameters
Invoice identifier (inv_ prefix).
^inv_[A-Za-z0-9]+$Response
Invoice.
An issued subscription invoice. Amounts are in MAJOR units of currency (this resource mirrors the human invoice document - unlike loyalty mechanics, which use minor units). PDF download via short-TTL signed URL.
Invoice identifier (inv_ prefix).
^inv_[A-Za-z0-9]+$"inv_01HXYZINV001"
Always "invoice".
"invoice"Invoice lifecycle. requires_billing_details = issuance blocked until the merchant completes billing identity. credit_note = a correcting document pointing at the original via corrects_invoice_id.
paid, open, pending, requires_billing_details, failed, refunded, credit_note "paid"
Convenience flag aligned with status.
true
Gross total in MAJOR units (45.0 = €45.00) - the Invoice resource is the ONE documented exception to the minor-units convention: it mirrors the human invoice document (see doc conventions R4).
45
ISO 4217 invoice currency: EUR, or CZK for a business billed on the fixed Czech crown price list. Independent of the business currency of your loyalty cards.
"EUR"
Unix seconds of invoice issuance (when the numbered document was generated).
1780460353
Unix seconds.
1780460353
Invoice number as issued. Null while the invoice has not been issued yet (requires_billing_details, failed).
"2026000147"
Amount actually charged to the payment method, MAJOR units (same documented exception as amount above). NOTE: an invoice fully covered by account credit is paid with amount_paid: 0 - check status, not this number, for settlement.
45
VAT portion, MAJOR units (same documented exception as amount above).
8.42
VAT rate percentage applied.
23
True for intra-EU reverse-charge invoices (VAT 0, customer self-accounts).
false
Customer-facing currency for non-EUR adaptive pricing. Null when invoiced directly in EUR.
Amount in presentment_currency. Null when not applicable.
Neutral channel descriptor - independent of any payment processor.
card, bank_transfer "card"
Unix seconds of settlement. Null while unpaid.
1780460355
Signed download URL for the PDF (1-hour TTL - fetch fresh from this endpoint when the link expires; do not store the URL, store the invoice id).
"https://files.vexioncards.one/invoices/2026/VEX-2026000147.pdf?sig=abc&exp=1780464000"
Refunded portion, MAJOR units (same documented exception as amount above). 0 when never refunded.
0
Unix seconds of the refund. Null when never refunded.
Merchant-visible refund reason. Null when never refunded.
On credit notes: the original invoice this document corrects.
On originals: the credit note that corrected this invoice.
Populated for per-location franchise invoices. Null for org-level invoices.