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.
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 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"