List invoices

GET /api/v2/billing/invoices

Return invoices for the account.

Use status=unpaid when building pay-now flows and follow nextCursor for additional pages.

Invoice amounts live under totals; payment availability lives under server-owned paymentMethods gates.

Do not infer payability, bulk-payment eligibility, or consolidated-renewal status from line-item counts.

Billing & Orders Invoices

Authentication

Required API scope: read:billing

Authenticate with an API key in the Authorization: Bearer <token> header.

Context

Query Parameters

limit integer · min: 1 · max: 100 · default: 20

Page size from 1 to 100. Defaults to 20. Values outside this range are rejected with 400 invalid_request.

cursor string

Opaque cursor from nextCursor for the next page.

status string · enum

Filter invoices by normalized status. Use unpaid for pay-now flows, overdue for unpaid invoices past their due date, or collections for invoices handed to collections.

draft
unpaid
overdue
paid
partially_paid
cancelled
refunded
collections
searchQuery string

Find invoices whose invoice number or reference contains this value. Letters, digits, _, and - only; other characters are rejected with 400 invalid_request.

date string · Example: 2026-04-01

Filter by invoice issue date, YYYY-MM-DD. Combine with dateOp to choose the comparison; without it, matching is on the exact date.

dateOp string · enum

Comparison operator for date.

lt
gt
lte
gte
eq
duedate string · Example: 2026-05-01

Filter by invoice due date, YYYY-MM-DD. Combine with duedateOp to choose the comparison. Ignored when status=overdue, which applies its own due-date filter.

duedateOp string · enum

Comparison operator for duedate. Ignored when status=overdue.

lt
gt
lte
gte
eq

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 Cursor-paginated list.
data array<object>
data[].id string required · Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3
data[].orderId string · Example: ord_01hxa3b4c5d6e7f8g9h0j1k2m3

Public order ID when the invoice is attached to an order. Domain renewal invoices with an uncancelled order must cancel this order first.

data[].number string required · Example: 202600001

Customer-facing invoice number.

data[].status string · enum required · Example: unpaid
draft
unpaid
partially_paid
paid
cancelled
refunded
data[].dates object required
data[].dates.issuedAt string · Example: 2026-04-27T12:00:00.000Z
data[].dates.dueAt string · Example: 2026-05-11T23:59:59.000Z
data[].dates.paidAt string · Example: 2026-04-27T12:10:00.000Z
data[].totals object required
data[].totals.currencyCode string required · Example: SEK
data[].totals.subtotal number required · Example: 127.2
data[].totals.taxAmount number required · Example: 31.8
data[].totals.taxRateDecimal number · Example: 0.25
data[].totals.creditApplied number required · Example: 0
data[].totals.total number required · Example: 159
data[].totals.amountPaid number required · Example: 0
data[].totals.amountRefunded number required · Example: 0

Total refunded amount recorded against the invoice. Zero when no refund has been recorded.

data[].totals.outstanding number required · Example: 159
data[].lineItemCount integer · Example: 1
data[].lineItems array<object>
data[].overpaymentCredit object

Present only when complete fresh payment and credit records confirm two settled full payments, one card and one Bankgiro, and their entire excess was automatically credited and remains available. This is explanatory evidence, not authorization to refund or add credit. Absence does not prove that an apparent overpayment is resolved.

data[].overpaymentCredit.decision string · enum required
card_bankgiro_overpayment_already_credited
data[].overpaymentCredit.currencyCode string · enum required
SEK
data[].overpaymentCredit.invoiceAmount number required · Example: 211.25
data[].overpaymentCredit.excessAmount number required · Example: 211.25
data[].overpaymentCredit.creditedAt string required · Example: 2026-07-09
data[].overpaymentCredit.currentCreditBalance number · min: 0 required · Example: 211.25
data[].payments array<object>
data[].payments[].kind string · nullable · enum · Example: payment

Optional row kind. account_credit_added marks an overpayment that was added to the customer's account credit instead of counted as an additional invoice payment.

payment
account_credit_added
data[].payments[].method string · nullable · enum required · Example: card

Canonical payment method enum. Display labels and upstream gateway names never appear here; use methodLabel for text.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
paypal
invoice
other
data[].payments[].methodLabel string · nullable required · Example: Card

Human-readable payment method label for display.

data[].payments[].amount number required · Example: 98.75
data[].payments[].currencyCode string required · Example: SEK

ISO-4217 currency for amount.

data[].note string · Example: Thank you for your order.
data[].actions object required
data[].actions.canPay object required
data[].actions.canPay.allowed boolean required · Example: true
data[].actions.canPay.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canPay.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canGeneratePaymentLink object required
data[].actions.canGeneratePaymentLink.allowed boolean required · Example: true
data[].actions.canGeneratePaymentLink.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canGeneratePaymentLink.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canBulkPay object required
data[].actions.canBulkPay.allowed boolean required · Example: true
data[].actions.canBulkPay.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canBulkPay.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canCancel object required
data[].actions.canCancel.allowed boolean required · Example: true
data[].actions.canCancel.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canCancel.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canEmail object required
data[].actions.canEmail.allowed boolean required · Example: true
data[].actions.canEmail.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canEmail.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canDownload object required
data[].actions.canDownload.allowed boolean required · Example: true
data[].actions.canDownload.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canDownload.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].actions.canReissueInCurrency object required

Whether the account can switch to EUR and have this invoice replaced by an EUR invoice for the same period, which makes SEPA bank transfer available (customers outside Sweden with a SEK invoice). Execute with POST /api/v2/billing/invoices/{id}/actions/reissue-in-currency. When blocked, branch on code: invoice_order_backed (a pending order or plan change backs the invoice: cancel that order and order again after changing currency), invoice_domain_renewal (cancel the renewal order and renew again), invoice_partially_settled, invoice_multiple_services, invoice_usage_not_reissuable and renewal_period_ended (contact support), account_country_not_eligible (Swedish accounts pay by bankgiro, Swish or card).

data[].actions.canReissueInCurrency.allowed boolean required · Example: true
data[].actions.canReissueInCurrency.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].actions.canReissueInCurrency.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

data[].paymentMethods object required

Per-method payment availability. Keys include card, accountCredit, swish, bankgiro, sepa, alipay, and crypto. Check these server-owned gates before starting a payment flow.

data[].paymentMethods.card object required
data[].paymentMethods.card.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.card.label string required · Example: Card
data[].paymentMethods.card.available boolean required · Example: true
data[].paymentMethods.card.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.card.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.card.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.card.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.card.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.card.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.card.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.card.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.card.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.card.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.card.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.card.requirements.availableBalance object
data[].paymentMethods.card.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.card.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.card.requirements.minimumAmount object
data[].paymentMethods.card.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.card.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.card.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.card.requirements.maximumAmount object
data[].paymentMethods.card.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.card.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.card.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.accountCredit object required
data[].paymentMethods.accountCredit.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.accountCredit.label string required · Example: Card
data[].paymentMethods.accountCredit.available boolean required · Example: true
data[].paymentMethods.accountCredit.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.accountCredit.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.accountCredit.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.accountCredit.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.accountCredit.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.accountCredit.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.accountCredit.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.accountCredit.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.accountCredit.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.accountCredit.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.accountCredit.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.accountCredit.requirements.availableBalance object
data[].paymentMethods.accountCredit.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.accountCredit.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.accountCredit.requirements.minimumAmount object
data[].paymentMethods.accountCredit.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.accountCredit.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.accountCredit.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.accountCredit.requirements.maximumAmount object
data[].paymentMethods.accountCredit.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.accountCredit.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.accountCredit.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.swish object required
data[].paymentMethods.swish.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.swish.label string required · Example: Card
data[].paymentMethods.swish.available boolean required · Example: true
data[].paymentMethods.swish.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.swish.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.swish.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.swish.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.swish.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.swish.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.swish.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.swish.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.swish.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.swish.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.swish.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.swish.requirements.availableBalance object
data[].paymentMethods.swish.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.swish.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.swish.requirements.minimumAmount object
data[].paymentMethods.swish.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.swish.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.swish.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.swish.requirements.maximumAmount object
data[].paymentMethods.swish.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.swish.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.swish.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.bankgiro object required
data[].paymentMethods.bankgiro.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.bankgiro.label string required · Example: Card
data[].paymentMethods.bankgiro.available boolean required · Example: true
data[].paymentMethods.bankgiro.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.bankgiro.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.bankgiro.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.bankgiro.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.bankgiro.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.bankgiro.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.bankgiro.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.bankgiro.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.bankgiro.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.bankgiro.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.bankgiro.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.bankgiro.requirements.availableBalance object
data[].paymentMethods.bankgiro.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.bankgiro.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.bankgiro.requirements.minimumAmount object
data[].paymentMethods.bankgiro.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.bankgiro.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.bankgiro.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.bankgiro.requirements.maximumAmount object
data[].paymentMethods.bankgiro.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.bankgiro.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.bankgiro.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.sepa object required
data[].paymentMethods.sepa.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.sepa.label string required · Example: Card
data[].paymentMethods.sepa.available boolean required · Example: true
data[].paymentMethods.sepa.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.sepa.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.sepa.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.sepa.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.sepa.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.sepa.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.sepa.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.sepa.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.sepa.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.sepa.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.sepa.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.sepa.requirements.availableBalance object
data[].paymentMethods.sepa.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.sepa.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.sepa.requirements.minimumAmount object
data[].paymentMethods.sepa.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.sepa.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.sepa.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.sepa.requirements.maximumAmount object
data[].paymentMethods.sepa.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.sepa.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.sepa.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.alipay object required
data[].paymentMethods.alipay.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.alipay.label string required · Example: Card
data[].paymentMethods.alipay.available boolean required · Example: true
data[].paymentMethods.alipay.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.alipay.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.alipay.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.alipay.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.alipay.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.alipay.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.alipay.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.alipay.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.alipay.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.alipay.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.alipay.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.alipay.requirements.availableBalance object
data[].paymentMethods.alipay.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.alipay.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.alipay.requirements.minimumAmount object
data[].paymentMethods.alipay.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.alipay.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.alipay.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.alipay.requirements.maximumAmount object
data[].paymentMethods.alipay.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.alipay.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.alipay.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.crypto object required
data[].paymentMethods.crypto.method string · enum required · Example: card

Canonical v2 payment method. Card-backed hosted checkout and wallet flows are represented as card; provider names are not public v2 method values.

card
accountCredit
swish
bankgiro
sepa
alipay
crypto
data[].paymentMethods.crypto.label string required · Example: Card
data[].paymentMethods.crypto.available boolean required · Example: true
data[].paymentMethods.crypto.visible boolean · Example: true

Present for restricted methods. When false, the method must not be rendered to the customer.

data[].paymentMethods.crypto.reason string · nullable required · Example: null

Human-readable blocker when available is false.

data[].paymentMethods.crypto.checkoutMode string · nullable · enum required · Example: payment

Hosted checkout mode used by the existing payment session endpoint, or null for methods handled without hosted checkout.

payment
sepa_bank_transfer_payment
alipay_payment
data[].paymentMethods.crypto.requirements object required

Machine-readable requirements for the payment method. Examples: card minimum amount, Swish/Bankgiro Swedish account requirement, SEPA bank transfer EUR requirement, cryptocurrency account eligibility, account-credit balance limit.

data[].paymentMethods.crypto.requirements.invoiceCurrencyCode string · Example: SEK
data[].paymentMethods.crypto.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
data[].paymentMethods.crypto.requirements.accountCountryCode string · Example: SE
data[].paymentMethods.crypto.requirements.accountCountryExcludedCode string · Example: SE

Billing country that is explicitly excluded for this method.

data[].paymentMethods.crypto.requirements.accountType string · enum · Example: private
private
organisation
data[].paymentMethods.crypto.requirements.accountCurrencyCode string · Example: SEK
data[].paymentMethods.crypto.requirements.requiresCardVerification boolean · Example: true

Whether a saved card or prior successful card payment is required.

data[].paymentMethods.crypto.requirements.availableBalance object
data[].paymentMethods.crypto.requirements.availableBalance.amount number required · Example: 100
data[].paymentMethods.crypto.requirements.availableBalance.currencyCode string required · Example: SEK
data[].paymentMethods.crypto.requirements.minimumAmount object
data[].paymentMethods.crypto.requirements.minimumAmount.amount number required · Example: 3
data[].paymentMethods.crypto.requirements.minimumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.crypto.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentMethods.crypto.requirements.maximumAmount object
data[].paymentMethods.crypto.requirements.maximumAmount.amount number required · Example: 3
data[].paymentMethods.crypto.requirements.maximumAmount.currencyCode string required · Example: SEK
data[].paymentMethods.crypto.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
data[].paymentLinkGeneratorUrl string · nullable required · Example: /api/v2/billing/invoices/inv_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/generate-payment-link

Nullable: may be null when not applicable.

data[].isBulkPaymentChild boolean required · Example: false
data[].bulkPaymentParentId string · nullable required · Example: null

Nullable: may be null when not applicable.

data[].coversInvoiceIds array<string> · Example: ["inv_01hxa3b4c5d6e7f8g9h0j1k2m3"]
data[].renewalInvoicing object

Present only when the invoice detail route can evaluate the same renewal invoicing preference logic used by invoice emails.

data[].renewalInvoicing.preference string · enum required · Example: consolidated
consolidated
separate
data[].renewalInvoicing.generatedByAutomation boolean required · Example: true

True when the invoice was generated by the renewal automation path that also shows the invoice-email preference note.

data[].renewalInvoicing.isConsolidated boolean required · Example: true

True only when this is an automated renewal invoice and the account preference was consolidated at generation time. Do not infer this from line-item count.

data[].renewalInvoicing.label string required · Example: Consolidated renewal invoice
data[].renewalInvoicing.settingsUrl string required · Example: /account
data[].delivery object

Present only when the invoice is delivered as an e-invoice via the Peppol network. Absent for normal invoices.

data[].delivery.channel string · enum required · Example: peppol
peppol
data[].delivery.status string · enum required · Example: sent

queued = accepted for e-invoice dispatch (waiting for the send window, or a same-day unpaid invoice of a Peppol-registered organisation that the bookkeeping platform has not picked up yet); sent = transmitted into the Peppol network; delivered = the recipient's access point confirmed receipt. Failed or ineligible deliveries never appear here — those invoices present as normal invoices without a delivery field.

queued
sent
delivered
data[].delivery.sentAt string · nullable required · Example: 2026-07-28T08:15:00.000Z

Moment the e-invoice was transmitted into the Peppol network. Null while the delivery is still queued.

data[].delivery.deliveredAt string · nullable required · Example: null

Receipt confirmation from the recipient's access point. Null until confirmed.

data[].cancellation object

Present only on a cancelled invoice whose cancellation reason is verified. Returned by the invoice detail endpoint; list items never carry it.

data[].cancellation.code string · enum required · Example: domain_registered_elsewhere

Stable machine value. domain_registered_elsewhere = an unpaid order for a NEW domain registration was cancelled automatically because the name was registered by someone else before the invoice was paid. A new domain is registered only once its invoice is paid, so the name was never held on this account and nothing was charged.

domain_registered_elsewhere
data[].cancellation.reason string required · Example: example.se was registered by someone else before this invoice was paid, so the order wa...

Human-readable explanation in English. Use code to branch or to pick localized copy.

data[].cancellation.domainName string required · Example: example.se

The ordered domain name.

data[].cancellation.registrarName string · nullable required · Example: Example Registrar AB

The registrar the name is now registered through, as published by the registry. null when not known.

data[].cancellation.registeredAt string · nullable required · Example: 2026-08-31T00:00:00.000Z

When the other registration was created at the registry (day precision, midnight UTC). null when not known.

data[].cancellation.cancelledAt string · nullable required · Example: 2026-09-01T02:50:23.717Z

When the order and invoice were cancelled. It follows registeredAt because the cancellation is a consequence of that registration.

hasMore boolean · Example: false
nextCursor string · nullable · Example: null

400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 Forbidden. The caller lacks a required scope or does not own the resource.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
404 Not found. The resource does not exist or is not owned by the caller.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
429 Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/billing/invoices
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/billing/invoices" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "data": [
    {
      "id": "inv_01hxa3b4c5d6e7f8g9h0j1k2m3",
      "number": "202600001",
      "status": "paid",
      "dates": {
        "issuedAt": "2026-04-27T12:00:00.000Z",
        "dueAt": "2026-05-11T23:59:59.000Z",
        "paidAt": "2026-04-27T12:34:56.000Z"
      },
      "totals": {
        "currencyCode": "SEK",
        "subtotal": 199,
        "taxAmount": 49.75,
        "taxRateDecimal": 0.25,
        "creditApplied": 0,
        "total": 248.75,
        "amountPaid": 248.75,
        "amountRefunded": 0,
        "outstanding": 0
      },
      "actions": {
        "canPay": {
          "allowed": false,
          "reason": "Invoice is already paid."
        },
        "canGeneratePaymentLink": {
          "allowed": false,
          "reason": "Invoice is already paid."
        },
        "canBulkPay": {
          "allowed": false,
          "reason": "Invoice is already paid."
        },
        "canCancel": {
          "allowed": false,
          "reason": "Only unpaid invoices can be cancelled."
        },
        "canEmail": {
          "allowed": true,
          "reason": null
        },
        "canDownload": {
          "allowed": true,
          "reason": null
        }
      },
      "paymentMethods": {
        "card": {
          "method": "card",
          "label": "Card",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": "payment",
          "requirements": {
            "minimumAmount": {
              "amount": 3,
              "currencyCode": "SEK",
              "comparison": "greater_than"
            }
          }
        },
        "accountCredit": {
          "method": "accountCredit",
          "label": "Account credit",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": null,
          "requirements": {
            "invoiceCurrencyCode": "SEK",
            "accountCurrencyCode": "SEK",
            "availableBalance": {
              "amount": 0,
              "currencyCode": "SEK"
            },
            "maximumAmount": {
              "amount": 0,
              "currencyCode": "SEK",
              "comparison": "less_than_or_equal"
            }
          }
        },
        "swish": {
          "method": "swish",
          "label": "Swish",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": null,
          "requirements": {
            "invoiceCurrencyCode": "SEK",
            "accountCountryCode": "SE"
          }
        },
        "bankgiro": {
          "method": "bankgiro",
          "label": "Bankgiro",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": null,
          "requirements": {
            "invoiceCurrencyCode": "SEK",
            "accountCountryCode": "SE"
          }
        },
        "sepa": {
          "method": "sepa",
          "label": "SEPA bank transfer",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": "sepa_bank_transfer_payment",
          "requirements": {
            "invoiceCurrencyCode": "EUR"
          }
        },
        "alipay": {
          "method": "alipay",
          "label": "Alipay",
          "available": false,
          "reason": "Invoice is already paid.",
          "checkoutMode": "alipay_payment",
          "requirements": {
            "invoiceCurrencyCodes": [
              "EUR",
              "USD"
            ]
          }
        },
        "crypto": {
          "method": "crypto",
          "label": "Cryptocurrency",
          "available": false,
          "reason": "Cryptocurrency payments are not available for Swedish billing accounts.",
          "checkoutMode": null,
          "requirements": {
            "invoiceCurrencyCodes": [
              "SEK",
              "EUR",
              "USD"
            ],
            "accountCountryExcludedCode": "SE",
            "accountType": "private",
            "requiresCardVerification": true
          },
          "visible": false
        }
      },
      "paymentLinkGeneratorUrl": null,
      "isBulkPaymentChild": false,
      "bulkPaymentParentId": null
    }
  ],
  "hasMore": false,
  "nextCursor": null
}