List 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

Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.

Context

Query Parameters

limit integer · min: 1 · max: 100

Maximum invoices to return in this page.

cursor string

Opaque cursor from `nextCursor` for the next page.

status string · enum

Filter invoices by normalized status. Use `unpaid` for pay-now flows or `overdue` for invoices past their due date.

draft
unpaid
overdue
paid
partially_paid
cancelled
refunded

Headers

Accept Example
Content-Type Example

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.outstanding number required · Example: 159
data[].lineItemCount integer · Example: 1
data[].lineItems array<object>
data[].payments array<object>
data[].payments[].method stringnull · 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
paypal
invoice
other
data[].payments[].methodLabel stringnull 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 stringnull required · Example: null
data[].actions.canPay.code stringnull · 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 stringnull required · Example: null
data[].actions.canGeneratePaymentLink.code stringnull · 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 stringnull required · Example: null
data[].actions.canBulkPay.code stringnull · 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 stringnull required · Example: null
data[].actions.canCancel.code stringnull · 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 stringnull required · Example: null
data[].actions.canEmail.code stringnull · 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 stringnull required · Example: null
data[].actions.canDownload.code stringnull · 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`, and `alipay`. 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
data[].paymentMethods.card.label string required · Example: Card
data[].paymentMethods.card.available boolean required · Example: true
data[].paymentMethods.card.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.card.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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
data[].paymentMethods.accountCredit.label string required · Example: Card
data[].paymentMethods.accountCredit.available boolean required · Example: true
data[].paymentMethods.accountCredit.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.accountCredit.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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
data[].paymentMethods.swish.label string required · Example: Card
data[].paymentMethods.swish.available boolean required · Example: true
data[].paymentMethods.swish.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.swish.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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
data[].paymentMethods.bankgiro.label string required · Example: Card
data[].paymentMethods.bankgiro.available boolean required · Example: true
data[].paymentMethods.bankgiro.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.bankgiro.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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
data[].paymentMethods.sepa.label string required · Example: Card
data[].paymentMethods.sepa.available boolean required · Example: true
data[].paymentMethods.sepa.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.sepa.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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
data[].paymentMethods.alipay.label string required · Example: Card
data[].paymentMethods.alipay.available boolean required · Example: true
data[].paymentMethods.alipay.reason stringnull required · Example: null

Human-readable blocker when `available` is false.

data[].paymentMethods.alipay.checkoutMode stringnull · 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, 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.accountCurrencyCode string · Example: SEK
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[].paymentLinkGeneratorUrl stringnull required · Example: /api/v2/billing/invoices/inv_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/generate-payment-link
data[].isBulkPaymentChild boolean required · Example: false
data[].bulkPaymentParentId stringnull required · Example: null
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
hasMore boolean · Example: false
nextCursor stringnull · 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,
        "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"
            ]
          }
        }
      },
      "paymentLinkGeneratorUrl": null,
      "isBulkPaymentChild": false,
      "bulkPaymentParentId": null
    }
  ],
  "hasMore": false,
  "nextCursor": null
}