/api/v2/billing/invoices/{id}/actions/apply-credit Apply available account credit to an unpaid invoice.
Get {id} from GET /api/v2/billing/invoices data[].id or invoice detail.
The amount must be greater than zero, cannot exceed available credit, and cannot exceed the remaining invoice balance.
The response is the refreshed invoice detail shape.
write:billing
Authenticate with an API key in the Authorization: Bearer <token> header.
id string required
Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3 Public invoice ID from GET /api/v2/billing/invoices data[].id. Do not invent this value; use the exact ID returned by the referenced API response.
Authorization Bearer <token> Accept application/json Content-Type application/json amount number · max: 1000000 required
· Example: 100 Account-credit amount to apply in the target invoice currency. The refreshed invoice response carries totals.currencyCode.
id string
· Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3 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.
number string
· Example: 202600001 Customer-facing invoice number.
status string · enum
· Example: unpaid draft unpaid partially_paid paid cancelled refunded dates object dates.issuedAt string
· Example: 2026-04-27T12:00:00.000Z dates.dueAt string
· Example: 2026-05-11T23:59:59.000Z dates.paidAt string
· Example: 2026-04-27T12:10:00.000Z totals object totals.currencyCode string required
· Example: SEK totals.subtotal number required
· Example: 127.2 totals.taxAmount number required
· Example: 31.8 totals.taxRateDecimal number
· Example: 0.25 totals.creditApplied number required
· Example: 0 totals.total number required
· Example: 159 totals.amountPaid number required
· Example: 0 totals.amountRefunded number required
· Example: 0 Total refunded amount recorded against the invoice. Zero when no refund has been recorded.
totals.outstanding number required
· Example: 159 lineItemCount integer
· Example: 1 lineItems array<object> 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.
overpaymentCredit.decision string · enum required card_bankgiro_overpayment_already_credited overpaymentCredit.currencyCode string · enum required SEK overpaymentCredit.invoiceAmount number required
· Example: 211.25 overpaymentCredit.excessAmount number required
· Example: 211.25 overpaymentCredit.creditedAt string required
· Example: 2026-07-09 overpaymentCredit.currentCreditBalance number · min: 0 required
· Example: 211.25 payments array<object> 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 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 payments[].methodLabel string · nullable required
· Example: Card Human-readable payment method label for display.
payments[].amount number required
· Example: 98.75 payments[].currencyCode string required
· Example: SEK ISO-4217 currency for amount.
note string
· Example: Thank you for your order. actions object actions.canPay object required actions.canPay.allowed boolean required
· Example: true actions.canPay.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canPay.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canGeneratePaymentLink object required actions.canGeneratePaymentLink.allowed boolean required
· Example: true actions.canGeneratePaymentLink.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canGeneratePaymentLink.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canBulkPay object required actions.canBulkPay.allowed boolean required
· Example: true actions.canBulkPay.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canBulkPay.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canCancel object required actions.canCancel.allowed boolean required
· Example: true actions.canCancel.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canCancel.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canEmail object required actions.canEmail.allowed boolean required
· Example: true actions.canEmail.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canEmail.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canDownload object required actions.canDownload.allowed boolean required
· Example: true actions.canDownload.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canDownload.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
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).
actions.canReissueInCurrency.allowed boolean required
· Example: true actions.canReissueInCurrency.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canReissueInCurrency.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
paymentMethods object Per-method payment availability. Keys include card, accountCredit, swish, bankgiro, sepa, alipay, and crypto. Check these server-owned gates before starting a payment flow.
paymentMethods.card object required 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 paymentMethods.card.label string required
· Example: Card paymentMethods.card.available boolean required
· Example: true paymentMethods.card.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.card.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.card.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.card.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.card.requirements.accountCountryCode string
· Example: SE paymentMethods.card.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.card.requirements.accountType string · enum
· Example: private private organisation paymentMethods.card.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.card.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.card.requirements.availableBalance object paymentMethods.card.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.card.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.card.requirements.minimumAmount object paymentMethods.card.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.card.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.card.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.card.requirements.maximumAmount object paymentMethods.card.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.card.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.card.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.accountCredit object required 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 paymentMethods.accountCredit.label string required
· Example: Card paymentMethods.accountCredit.available boolean required
· Example: true paymentMethods.accountCredit.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.accountCredit.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.accountCredit.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.accountCredit.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.accountCredit.requirements.accountCountryCode string
· Example: SE paymentMethods.accountCredit.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.accountCredit.requirements.accountType string · enum
· Example: private private organisation paymentMethods.accountCredit.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.accountCredit.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.accountCredit.requirements.availableBalance object paymentMethods.accountCredit.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.accountCredit.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.accountCredit.requirements.minimumAmount object paymentMethods.accountCredit.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.accountCredit.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.accountCredit.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.accountCredit.requirements.maximumAmount object paymentMethods.accountCredit.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.accountCredit.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.accountCredit.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.swish object required 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 paymentMethods.swish.label string required
· Example: Card paymentMethods.swish.available boolean required
· Example: true paymentMethods.swish.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.swish.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.swish.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.swish.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.swish.requirements.accountCountryCode string
· Example: SE paymentMethods.swish.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.swish.requirements.accountType string · enum
· Example: private private organisation paymentMethods.swish.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.swish.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.swish.requirements.availableBalance object paymentMethods.swish.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.swish.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.swish.requirements.minimumAmount object paymentMethods.swish.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.swish.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.swish.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.swish.requirements.maximumAmount object paymentMethods.swish.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.swish.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.swish.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.bankgiro object required 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 paymentMethods.bankgiro.label string required
· Example: Card paymentMethods.bankgiro.available boolean required
· Example: true paymentMethods.bankgiro.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.bankgiro.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.bankgiro.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.bankgiro.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.bankgiro.requirements.accountCountryCode string
· Example: SE paymentMethods.bankgiro.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.bankgiro.requirements.accountType string · enum
· Example: private private organisation paymentMethods.bankgiro.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.bankgiro.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.bankgiro.requirements.availableBalance object paymentMethods.bankgiro.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.bankgiro.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.bankgiro.requirements.minimumAmount object paymentMethods.bankgiro.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.bankgiro.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.bankgiro.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.bankgiro.requirements.maximumAmount object paymentMethods.bankgiro.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.bankgiro.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.bankgiro.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.sepa object required 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 paymentMethods.sepa.label string required
· Example: Card paymentMethods.sepa.available boolean required
· Example: true paymentMethods.sepa.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.sepa.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.sepa.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.sepa.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.sepa.requirements.accountCountryCode string
· Example: SE paymentMethods.sepa.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.sepa.requirements.accountType string · enum
· Example: private private organisation paymentMethods.sepa.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.sepa.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.sepa.requirements.availableBalance object paymentMethods.sepa.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.sepa.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.sepa.requirements.minimumAmount object paymentMethods.sepa.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.sepa.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.sepa.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.sepa.requirements.maximumAmount object paymentMethods.sepa.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.sepa.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.sepa.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.alipay object required 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 paymentMethods.alipay.label string required
· Example: Card paymentMethods.alipay.available boolean required
· Example: true paymentMethods.alipay.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.alipay.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.alipay.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.alipay.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.alipay.requirements.accountCountryCode string
· Example: SE paymentMethods.alipay.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.alipay.requirements.accountType string · enum
· Example: private private organisation paymentMethods.alipay.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.alipay.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.alipay.requirements.availableBalance object paymentMethods.alipay.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.alipay.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.alipay.requirements.minimumAmount object paymentMethods.alipay.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.alipay.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.alipay.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.alipay.requirements.maximumAmount object paymentMethods.alipay.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.alipay.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.alipay.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.crypto object required 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 paymentMethods.crypto.label string required
· Example: Card paymentMethods.crypto.available boolean required
· Example: true paymentMethods.crypto.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
paymentMethods.crypto.reason string · nullable required
· Example: null Human-readable blocker when available is false.
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 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.
paymentMethods.crypto.requirements.invoiceCurrencyCode string
· Example: SEK paymentMethods.crypto.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] paymentMethods.crypto.requirements.accountCountryCode string
· Example: SE paymentMethods.crypto.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
paymentMethods.crypto.requirements.accountType string · enum
· Example: private private organisation paymentMethods.crypto.requirements.accountCurrencyCode string
· Example: SEK paymentMethods.crypto.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
paymentMethods.crypto.requirements.availableBalance object paymentMethods.crypto.requirements.availableBalance.amount number required
· Example: 100 paymentMethods.crypto.requirements.availableBalance.currencyCode string required
· Example: SEK paymentMethods.crypto.requirements.minimumAmount object paymentMethods.crypto.requirements.minimumAmount.amount number required
· Example: 3 paymentMethods.crypto.requirements.minimumAmount.currencyCode string required
· Example: SEK paymentMethods.crypto.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentMethods.crypto.requirements.maximumAmount object paymentMethods.crypto.requirements.maximumAmount.amount number required
· Example: 3 paymentMethods.crypto.requirements.maximumAmount.currencyCode string required
· Example: SEK paymentMethods.crypto.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal paymentLinkGeneratorUrl string · nullable
· Example: /api/v2/billing/invoices/inv_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/generate-payment-link isBulkPaymentChild boolean
· Example: false bulkPaymentParentId string · nullable
· Example: null coversInvoiceIds array<string>
· Example: ["inv_01hxa3b4c5d6e7f8g9h0j1k2m3"] renewalInvoicing object Present only when the invoice detail route can evaluate the same renewal invoicing preference logic used by invoice emails.
renewalInvoicing.preference string · enum required
· Example: consolidated consolidated separate 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.
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.
renewalInvoicing.label string required
· Example: Consolidated renewal invoice renewalInvoicing.settingsUrl string required
· Example: /account delivery object Present only when the invoice is delivered as an e-invoice via the Peppol network. Absent for normal invoices.
delivery.channel string · enum required
· Example: peppol peppol 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 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.
delivery.deliveredAt string · nullable required
· Example: null Receipt confirmation from the recipient's access point. Null until confirmed.
cancellation object Present only on a cancelled invoice whose cancellation reason is verified. Returned by the invoice detail endpoint; list items never carry it.
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 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.
cancellation.domainName string required
· Example: example.se The ordered domain name.
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.
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.
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.
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 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 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 code is invoice_not_found. 10 fields 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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 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 code is upstream_failed. Retry later or contact support if the issue persists. 10 fields 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 https://cloud.hostup.se/api/v2/billing/invoices/{id}/actions/apply-credit curl -X POST "https://cloud.hostup.se/api/v2/billing/invoices/inv_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/apply-credit" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"amount": 100
}' {
"id": "inv_01hxa3b4c5d6e7f8g9h0j1k2m3",
"number": "202600001",
"orderId": "ord_01hxa3b4c5d6e7f8g9h0j1k2m3",
"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": 200,
"taxAmount": 50,
"taxRateDecimal": 0.25,
"creditApplied": 250,
"total": 0,
"amountPaid": 0,
"amountRefunded": 0,
"outstanding": 0
},
"lineItemCount": 1,
"lineItems": [
{
"description": "Cloud VPS monthly service",
"displayDescription": "Cloud VPS monthly service",
"kind": "vps",
"productName": "Cloud VPS",
"quantity": 1,
"unitAmount": 200,
"totalAmount": 200,
"currencyCode": "SEK",
"period": {
"startAt": "2026-04-27T12:00:00.000Z",
"endAt": "2026-05-27T12:00:00.000Z"
},
"resource": {
"type": "vps",
"id": "vps_01hxa3b4c5d6e7f8g9h0j1k2m3",
"displayName": "example.com"
},
"configurableOptions": [
{
"key": "os",
"label": "OS",
"value": "Debian 13"
},
{
"key": "blockStorageNvme",
"label": "Block Storage (NVMe)",
"value": "50 GB"
},
{
"key": "bandwidthLimit",
"label": "Bandwidth limit",
"value": "2 TB"
},
{
"key": "cephStoragePreference",
"label": "Ceph storage preference",
"value": "Replication 3"
},
{
"key": "backups",
"label": "Example Label",
"value": "7"
}
]
}
],
"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": 50,
"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
} {
"amount": 100
}