List billing payment methods

Return saved card payment methods, card auto-charge settings, billing notification contacts, and account-level invoice payment rules. For a specific invoice, prefer that invoice's paymentMethods block because it includes invoice status, outstanding amount, currency, card minimum, account-credit balance, Swish/Bankgiro country rules, and EUR SEPA eligibility.

Billing & Orders Payments

Authentication

Required API scope: read:billing

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

Context

Headers

Accept Example
Content-Type Example

Responses

200 Payment methods and account-level payment rules.
methods array<object>

Saved card payment methods. For invoice-specific availability, read `invoicePaymentMethodRules` here or `paymentMethods` on a concrete invoice.

methods[].id string required · Example: card_01hxa3b4c5d6e7f8g9h0j1k2m3

Public saved-card ID. Use this as `savedCardId` for card-only invoice payment actions.

methods[].brand string required · Example: visa
methods[].last4 stringnull required · Example: 4242
methods[].expMonth numbernull required · Example: 12
methods[].expYear numbernull required · Example: 2028
methods[].cardholderName stringnull required · Example: null
methods[].isPrimary boolean required · Example: true
methods[].addedAt stringnull required · Example: 2026-04-27T12:00:00.000Z
hasPrimaryMethod boolean · Example: true
billing object
billing.cardAutoCharge object required
billing.cardAutoCharge.enabled boolean required · Example: true

Effective enabled state. False when configured is true but no saved card is available.

billing.cardAutoCharge.method string · enum required · Example: card
card
billing.cardAutoCharge.status string · enum required · Example: active

`active` means automatic saved-card charging is ready. `needs_payment_method` means the preference is on but no saved card exists. `disabled` means the preference is off.

active
needs_payment_method
disabled
billing.cardAutoCharge.configured boolean required · Example: true

Saved preference. If true but no saved card exists, `enabled` is false and `status` is `needs_payment_method`.

billing.cardAutoCharge.hasPaymentMethod boolean required · Example: true

True when the account has a saved card that can be used for auto-charge.

billing.cardAutoCharge.label string required · Example: Card auto-charge
billing.cardAutoCharge.description string required · Example: Automatically charge the saved card when invoices are due.
billing.cardAutoCharge.reason stringnull required · Example: null
billing.cardAutoCharge.actions object required
billing.cardAutoCharge.actions.canToggle object required
billing.cardAutoCharge.actions.canToggle.allowed boolean required · Example: true
billing.cardAutoCharge.actions.canToggle.reason stringnull required · Example: null
billing.cardAutoCharge.actions.canToggle.code stringnull · Example: pending_order

Machine-readable reason code when an action is blocked.

billingContacts array<object>
billingContacts[].id string required · Example: 42

Billing notification contact ID. Get it from `GET /api/v2/billing/payment-methods/contacts` before deleting.

billingContacts[].email string required · Example: [email protected]
billingContacts[].description stringnull required · Example: Accounts payable
invoicePaymentMethodRules object
invoicePaymentMethodRules.card object required
invoicePaymentMethodRules.card.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.card.label string required · Example: Bankgiro
invoicePaymentMethodRules.card.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.card.reason stringnull required · Example: null
invoicePaymentMethodRules.card.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.card.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.card.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.card.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.card.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.card.requirements.availableBalance object
invoicePaymentMethodRules.card.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.card.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.card.requirements.minimumAmount object
invoicePaymentMethodRules.card.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.card.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.card.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.card.requirements.maximumAmount object
invoicePaymentMethodRules.card.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.card.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.card.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.accountCredit object required
invoicePaymentMethodRules.accountCredit.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.accountCredit.label string required · Example: Bankgiro
invoicePaymentMethodRules.accountCredit.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.accountCredit.reason stringnull required · Example: null
invoicePaymentMethodRules.accountCredit.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.accountCredit.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.accountCredit.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.accountCredit.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.accountCredit.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.accountCredit.requirements.availableBalance object
invoicePaymentMethodRules.accountCredit.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.accountCredit.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.accountCredit.requirements.minimumAmount object
invoicePaymentMethodRules.accountCredit.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.accountCredit.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.accountCredit.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.accountCredit.requirements.maximumAmount object
invoicePaymentMethodRules.accountCredit.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.accountCredit.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.accountCredit.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.swish object required
invoicePaymentMethodRules.swish.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.swish.label string required · Example: Bankgiro
invoicePaymentMethodRules.swish.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.swish.reason stringnull required · Example: null
invoicePaymentMethodRules.swish.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.swish.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.swish.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.swish.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.swish.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.swish.requirements.availableBalance object
invoicePaymentMethodRules.swish.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.swish.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.swish.requirements.minimumAmount object
invoicePaymentMethodRules.swish.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.swish.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.swish.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.swish.requirements.maximumAmount object
invoicePaymentMethodRules.swish.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.swish.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.swish.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.bankgiro object required
invoicePaymentMethodRules.bankgiro.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.bankgiro.label string required · Example: Bankgiro
invoicePaymentMethodRules.bankgiro.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.bankgiro.reason stringnull required · Example: null
invoicePaymentMethodRules.bankgiro.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.bankgiro.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.bankgiro.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.bankgiro.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.bankgiro.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.bankgiro.requirements.availableBalance object
invoicePaymentMethodRules.bankgiro.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.bankgiro.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.bankgiro.requirements.minimumAmount object
invoicePaymentMethodRules.bankgiro.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.bankgiro.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.bankgiro.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.bankgiro.requirements.maximumAmount object
invoicePaymentMethodRules.bankgiro.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.bankgiro.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.bankgiro.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.sepa object required
invoicePaymentMethodRules.sepa.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.sepa.label string required · Example: Bankgiro
invoicePaymentMethodRules.sepa.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.sepa.reason stringnull required · Example: null
invoicePaymentMethodRules.sepa.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.sepa.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.sepa.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.sepa.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.sepa.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.sepa.requirements.availableBalance object
invoicePaymentMethodRules.sepa.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.sepa.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.sepa.requirements.minimumAmount object
invoicePaymentMethodRules.sepa.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.sepa.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.sepa.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.sepa.requirements.maximumAmount object
invoicePaymentMethodRules.sepa.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.sepa.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.sepa.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.alipay object required
invoicePaymentMethodRules.alipay.method string · enum required · Example: bankgiro
card
accountCredit
swish
bankgiro
sepa
alipay
invoicePaymentMethodRules.alipay.label string required · Example: Bankgiro
invoicePaymentMethodRules.alipay.availableForAccount boolean required · Example: true

Account-level availability only. Check a concrete invoice's `paymentMethods` for final status, amount, and currency gates.

invoicePaymentMethodRules.alipay.reason stringnull required · Example: null
invoicePaymentMethodRules.alipay.checkoutMode stringnull · enum required · Example: null
payment
sepa_bank_transfer_payment
alipay_payment
invoicePaymentMethodRules.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.

invoicePaymentMethodRules.alipay.requirements.invoiceCurrencyCode string · Example: SEK
invoicePaymentMethodRules.alipay.requirements.invoiceCurrencyCodes array<string> · Example: ["EUR","USD"]
invoicePaymentMethodRules.alipay.requirements.accountCountryCode string · Example: SE
invoicePaymentMethodRules.alipay.requirements.accountCurrencyCode string · Example: SEK
invoicePaymentMethodRules.alipay.requirements.availableBalance object
invoicePaymentMethodRules.alipay.requirements.availableBalance.amount number required · Example: 100
invoicePaymentMethodRules.alipay.requirements.availableBalance.currencyCode string required · Example: SEK
invoicePaymentMethodRules.alipay.requirements.minimumAmount object
invoicePaymentMethodRules.alipay.requirements.minimumAmount.amount number required · Example: 3
invoicePaymentMethodRules.alipay.requirements.minimumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.alipay.requirements.minimumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
invoicePaymentMethodRules.alipay.requirements.maximumAmount object
invoicePaymentMethodRules.alipay.requirements.maximumAmount.amount number required · Example: 3
invoicePaymentMethodRules.alipay.requirements.maximumAmount.currencyCode string required · Example: SEK
invoicePaymentMethodRules.alipay.requirements.maximumAmount.comparison string · enum required · Example: greater_than
greater_than
less_than_or_equal
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/payment-methods
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/billing/payment-methods" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "methods": [
    {
      "id": "card_01hxa3b4c5d6e7f8g9h0j1k2m3",
      "brand": "visa",
      "last4": "5566",
      "expMonth": 4,
      "expYear": 2027,
      "cardholderName": "Example Customer",
      "isPrimary": true,
      "addedAt": "2026-04-27T12:34:56.000Z"
    }
  ],
  "hasPrimaryMethod": true,
  "billing": {
    "cardAutoCharge": {
      "enabled": true,
      "method": "card",
      "status": "active",
      "configured": true,
      "hasPaymentMethod": true,
      "label": "Card auto-charge",
      "description": "Automatically charge the saved card when invoices are due.",
      "reason": null,
      "actions": {
        "canToggle": {
          "allowed": true,
          "reason": null
        }
      }
    }
  },
  "billingContacts": [
    {
      "id": "111",
      "email": "[email protected]",
      "description": null
    }
  ],
  "invoicePaymentMethodRules": {
    "card": {
      "method": "card",
      "label": "Card",
      "availableForAccount": true,
      "reason": null,
      "checkoutMode": "payment",
      "requirements": {}
    },
    "accountCredit": {
      "method": "accountCredit",
      "label": "Account credit",
      "availableForAccount": false,
      "reason": "No account credit is available.",
      "checkoutMode": null,
      "requirements": {
        "invoiceCurrencyCode": "SEK",
        "accountCurrencyCode": "SEK",
        "availableBalance": {
          "amount": 0,
          "currencyCode": "SEK"
        }
      }
    },
    "swish": {
      "method": "swish",
      "label": "Swish",
      "availableForAccount": false,
      "reason": "Swish requires a Swedish billing account and a SEK invoice.",
      "checkoutMode": null,
      "requirements": {
        "invoiceCurrencyCode": "SEK",
        "accountCountryCode": "SE"
      }
    },
    "bankgiro": {
      "method": "bankgiro",
      "label": "Bankgiro",
      "availableForAccount": false,
      "reason": "Bankgiro is only available for Swedish billing accounts with SEK invoices.",
      "checkoutMode": null,
      "requirements": {
        "invoiceCurrencyCode": "SEK",
        "accountCountryCode": "SE"
      }
    },
    "sepa": {
      "method": "sepa",
      "label": "SEPA bank transfer",
      "availableForAccount": true,
      "reason": null,
      "checkoutMode": "sepa_bank_transfer_payment",
      "requirements": {
        "invoiceCurrencyCode": "EUR"
      }
    },
    "alipay": {
      "method": "alipay",
      "label": "Alipay",
      "availableForAccount": true,
      "reason": null,
      "checkoutMode": "alipay_payment",
      "requirements": {
        "invoiceCurrencyCodes": [
          "EUR",
          "USD"
        ]
      }
    }
  }
}