/api/v2/vps/{id}/actions/config Preview or commit configurable-option changes for one VPS without changing its plan.
Get {id} from GET /api/v2/vps data[].id.
First call GET /api/v2/vps/{id}/actions/upgrade and read configurableOptions[].key, limits, constraints, and action gates.
Send canonical option keys under resources, for example { "bandwidthGb": 4096 } to add bandwidth only, { "storageGb": 100 } to increase the primary disk, or { "snapshotSlots": 3 } to buy/increase snapshot capacity when the option is returned.
Bandwidth-only increases use a flat prepaid bandwidth invoice for the current billing period.
Bandwidth-only increases end at the next monthly bandwidth reset; paymentInvoice.servicePeriodEndAt returns that reset boundary.
Positive-price primary-storage, snapshot, and backup increases create a separate prorated invoice through the current paid-through boundary and activate only after payment; the primary disk is expanded directly and verified before its new recurring configuration is committed.
An already-issued renewal invoice is repaired after paid activation so its recurring line matches the new configuration without changing the paid-through boundary.
Included zero-price snapshot/backup changes apply directly without an order or invoice.
Resource decreases are effective-dated: current capacity remains available until scheduledChange.effectiveAt, no current-period refund is issued, and the response has status: scheduled.
Primary storage cannot be reduced; selecting a lower plan preserves an already allocated larger primary disk.
Mixed increase/decrease requests are rejected so the two effective dates remain explicit.
Submit IPv6 changes separately from every other resource change so one request cannot partially commit across the direct and invoiced paths.
Exact no-op requests return status: applied without an invoice.
IP, plan, and billing-cycle changes are not routed through the direct manual-invoice path.
billingCycle is allowed only with dryRun: true; committed billing-cycle changes belong to /actions/billing-cycle.
Cancel an open resource decrease with DELETE /api/v2/vps/{id}/actions/upgrade.
If a response reports invoiceLookupPending: true, do not retry the resource change; wait for the renewal invoice to appear before submitting another change.
write:billing
Authenticate with an API key in the Authorization: Bearer <token> header.
id string required
Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3 Public VPS ID from GET /api/v2/vps 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 resources object required
· Example: {"bandwidthGb":4096} Canonical configurable-option keys from GET /actions/upgrade configurableOptions[].key mapped to primitive values. Common keys include bandwidthGb, storageGb for the primary disk, additionalStorageGb for attachable capacity, backupSlots, snapshotSlots, ipv4Count, and ipv6.
billingCycle string · enum
· Example: monthly Preview-only cycle hint. If present on a commit request, the route returns 400 with recovery steps.
monthly quarterly semiannually annually biennially triennially dryRun boolean
· Example: true When true, return pricing without committing the resource change.
cancelExistingInvoice boolean
· Example: true Use only when a 409 existing_invoice_blocking response suggests resending with this flag. A regular renewal invoice does not block a positive-price primary-storage, snapshot, or backup increase and is not cancelled by this flag.
dryRun boolean · enum required
· Example: true true status string · enum required preview changeKind string · enum required configuration paymentInvoice null required renewalInvoice object required renewalInvoice.amount number required
· Example: 39 renewalInvoice.currencyCode string required
· Example: SEK renewalInvoice.servicePeriodEndAt string · nullable End of the service period covered by the immediate charge. For a bandwidth-only increase this is the next monthly bandwidth reset; for a prorated recurring-resource increase it is the current paid-through boundary. Omitted when the preview is not a current-period charge.
renewalInvoice.paymentMethods object renewalInvoice.paymentMethods.card object required renewalInvoice.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 renewalInvoice.paymentMethods.card.label string required
· Example: Card renewalInvoice.paymentMethods.card.available boolean required
· Example: true renewalInvoice.paymentMethods.card.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.card.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.card.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.card.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.card.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.card.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.card.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.card.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.card.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.card.requirements.availableBalance object renewalInvoice.paymentMethods.card.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.card.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.card.requirements.minimumAmount object renewalInvoice.paymentMethods.card.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.card.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.card.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.card.requirements.maximumAmount object renewalInvoice.paymentMethods.card.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.card.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.card.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.accountCredit object required renewalInvoice.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 renewalInvoice.paymentMethods.accountCredit.label string required
· Example: Card renewalInvoice.paymentMethods.accountCredit.available boolean required
· Example: true renewalInvoice.paymentMethods.accountCredit.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.accountCredit.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.accountCredit.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.accountCredit.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.accountCredit.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.accountCredit.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.accountCredit.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.accountCredit.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.accountCredit.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.accountCredit.requirements.availableBalance object renewalInvoice.paymentMethods.accountCredit.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.accountCredit.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.accountCredit.requirements.minimumAmount object renewalInvoice.paymentMethods.accountCredit.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.accountCredit.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.accountCredit.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.accountCredit.requirements.maximumAmount object renewalInvoice.paymentMethods.accountCredit.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.accountCredit.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.accountCredit.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.swish object required renewalInvoice.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 renewalInvoice.paymentMethods.swish.label string required
· Example: Card renewalInvoice.paymentMethods.swish.available boolean required
· Example: true renewalInvoice.paymentMethods.swish.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.swish.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.swish.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.swish.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.swish.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.swish.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.swish.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.swish.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.swish.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.swish.requirements.availableBalance object renewalInvoice.paymentMethods.swish.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.swish.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.swish.requirements.minimumAmount object renewalInvoice.paymentMethods.swish.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.swish.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.swish.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.swish.requirements.maximumAmount object renewalInvoice.paymentMethods.swish.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.swish.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.swish.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.bankgiro object required renewalInvoice.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 renewalInvoice.paymentMethods.bankgiro.label string required
· Example: Card renewalInvoice.paymentMethods.bankgiro.available boolean required
· Example: true renewalInvoice.paymentMethods.bankgiro.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.bankgiro.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.bankgiro.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.bankgiro.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.bankgiro.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.bankgiro.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.bankgiro.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.bankgiro.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.bankgiro.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.bankgiro.requirements.availableBalance object renewalInvoice.paymentMethods.bankgiro.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.bankgiro.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.bankgiro.requirements.minimumAmount object renewalInvoice.paymentMethods.bankgiro.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.bankgiro.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.bankgiro.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.bankgiro.requirements.maximumAmount object renewalInvoice.paymentMethods.bankgiro.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.bankgiro.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.bankgiro.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.sepa object required renewalInvoice.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 renewalInvoice.paymentMethods.sepa.label string required
· Example: Card renewalInvoice.paymentMethods.sepa.available boolean required
· Example: true renewalInvoice.paymentMethods.sepa.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.sepa.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.sepa.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.sepa.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.sepa.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.sepa.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.sepa.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.sepa.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.sepa.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.sepa.requirements.availableBalance object renewalInvoice.paymentMethods.sepa.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.sepa.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.sepa.requirements.minimumAmount object renewalInvoice.paymentMethods.sepa.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.sepa.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.sepa.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.sepa.requirements.maximumAmount object renewalInvoice.paymentMethods.sepa.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.sepa.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.sepa.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.alipay object required renewalInvoice.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 renewalInvoice.paymentMethods.alipay.label string required
· Example: Card renewalInvoice.paymentMethods.alipay.available boolean required
· Example: true renewalInvoice.paymentMethods.alipay.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.alipay.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.alipay.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.alipay.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.alipay.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.alipay.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.alipay.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.alipay.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.alipay.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.alipay.requirements.availableBalance object renewalInvoice.paymentMethods.alipay.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.alipay.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.alipay.requirements.minimumAmount object renewalInvoice.paymentMethods.alipay.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.alipay.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.alipay.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.alipay.requirements.maximumAmount object renewalInvoice.paymentMethods.alipay.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.alipay.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.alipay.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.crypto object required renewalInvoice.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 renewalInvoice.paymentMethods.crypto.label string required
· Example: Card renewalInvoice.paymentMethods.crypto.available boolean required
· Example: true renewalInvoice.paymentMethods.crypto.visible boolean
· Example: true Present for restricted methods. When false, the method must not be rendered to the customer.
renewalInvoice.paymentMethods.crypto.reason string · nullable required
· Example: null Human-readable blocker when available is false.
renewalInvoice.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 renewalInvoice.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.
renewalInvoice.paymentMethods.crypto.requirements.invoiceCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.crypto.requirements.invoiceCurrencyCodes array<string>
· Example: ["EUR","USD"] renewalInvoice.paymentMethods.crypto.requirements.accountCountryCode string
· Example: SE renewalInvoice.paymentMethods.crypto.requirements.accountCountryExcludedCode string
· Example: SE Billing country that is explicitly excluded for this method.
renewalInvoice.paymentMethods.crypto.requirements.accountType string · enum
· Example: private private organisation renewalInvoice.paymentMethods.crypto.requirements.accountCurrencyCode string
· Example: SEK renewalInvoice.paymentMethods.crypto.requirements.requiresCardVerification boolean
· Example: true Whether a saved card or prior successful card payment is required.
renewalInvoice.paymentMethods.crypto.requirements.availableBalance object renewalInvoice.paymentMethods.crypto.requirements.availableBalance.amount number required
· Example: 100 renewalInvoice.paymentMethods.crypto.requirements.availableBalance.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.crypto.requirements.minimumAmount object renewalInvoice.paymentMethods.crypto.requirements.minimumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.crypto.requirements.minimumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.crypto.requirements.minimumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.paymentMethods.crypto.requirements.maximumAmount object renewalInvoice.paymentMethods.crypto.requirements.maximumAmount.amount number required
· Example: 3 renewalInvoice.paymentMethods.crypto.requirements.maximumAmount.currencyCode string required
· Example: SEK renewalInvoice.paymentMethods.crypto.requirements.maximumAmount.comparison string · enum required
· Example: greater_than greater_than less_than_or_equal renewalInvoice.availablePaymentMethods array<string> renewalInvoice.actions object renewalInvoice.actions.canPayWithAvailableMethod object required renewalInvoice.actions.canPayWithAvailableMethod.allowed boolean required renewalInvoice.actions.canPayWithAvailableMethod.reason string · nullable required Nullable: may be null when not applicable.
warnings array<object> required warnings[].code string · enum required unused_prepaid_bandwidth_credited_after_period warnings[].severity string · enum required info warnings[].reason string required scheduled boolean scheduledChange object scheduledChange.status string · enum required preview scheduled awaiting_payment paid applying applied needs_attention cancelling cancelled scheduledChange.effectiveAt string · nullable required Nullable: may be null when not applicable.
scheduledChange.invoiceIssueAt string · nullable required Nullable: may be null when not applicable.
scheduledChange.target object required scheduledChange.target.productSlug string scheduledChange.target.resources object scheduledChange.target.billing object required scheduledChange.target.billing.amount number · nullable required Nullable: may be null when not applicable.
scheduledChange.target.billing.currencyCode string required scheduledChange.target.billing.billingCycle string · enum required monthly quarterly semiannually annually biennially triennially free scheduledChange.actions object required scheduledChange.actions.canCancel object required scheduledChange.actions.canCancel.allowed boolean required scheduledChange.actions.canCancel.reason string · nullable required Nullable: may be null when not applicable.
actions object required actions.canCommit object required actions.canCommit.allowed boolean required actions.canCommit.reason string · nullable required Nullable: may be null when not applicable.
status string · enum required scheduled awaiting_payment processing applied changeKind string · enum required configuration paymentInvoice null required renewalInvoice null required scheduled boolean scheduledChange object scheduledChange.status string · enum required preview scheduled awaiting_payment paid applying applied needs_attention cancelling cancelled scheduledChange.effectiveAt string · nullable required Nullable: may be null when not applicable.
scheduledChange.invoiceIssueAt string · nullable required Nullable: may be null when not applicable.
scheduledChange.target object required scheduledChange.target.productSlug string scheduledChange.target.resources object scheduledChange.target.billing object required scheduledChange.target.billing.amount number · nullable required Nullable: may be null when not applicable.
scheduledChange.target.billing.currencyCode string required scheduledChange.target.billing.billingCycle string · enum required monthly quarterly semiannually annually biennially triennially free scheduledChange.actions object required scheduledChange.actions.canCancel object required scheduledChange.actions.canCancel.allowed boolean required scheduledChange.actions.canCancel.reason string · nullable required Nullable: may be null when not applicable.
invoiceLookupPending boolean
· Example: true True when the resource change committed and backend renewal invoice finalization is still pending. Do not retry the resource change.
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 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 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 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/vps/{id}/actions/config curl -X POST "https://cloud.hostup.se/api/v2/vps/vps_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/config" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"resources": {
"bandwidthGb": 4096
},
"dryRun": true
}' // Dry-run resource change
{
"dryRun": true,
"status": "preview",
"changeKind": "configuration",
"paymentInvoice": {
"amount": 12.99,
"currencyCode": "EUR",
"servicePeriodEndAt": "2026-05-27T00:00:00.000Z",
"paymentMethods": {
"card": {
"method": "card",
"label": "Card",
"available": true,
"reason": null,
"checkoutMode": "payment",
"requirements": {
"minimumAmount": {
"amount": 0.5,
"currencyCode": "EUR",
"comparison": "greater_than"
}
}
},
"accountCredit": {
"method": "accountCredit",
"label": "Account credit",
"available": false,
"reason": "No account credit is available.",
"checkoutMode": null,
"requirements": {
"accountCurrencyCode": "EUR",
"invoiceCurrencyCode": "EUR",
"availableBalance": {
"amount": 0,
"currencyCode": "EUR"
},
"maximumAmount": {
"amount": 0,
"currencyCode": "EUR",
"comparison": "less_than_or_equal"
}
}
},
"swish": {
"method": "swish",
"label": "Swish",
"available": false,
"reason": "Swish is only available for SEK invoices. This invoice is EUR.",
"checkoutMode": null,
"requirements": {
"accountCountryCode": "SE",
"invoiceCurrencyCode": "SEK"
}
},
"bankgiro": {
"method": "bankgiro",
"label": "Bankgiro",
"available": false,
"reason": "Bankgiro is only available for SEK invoices. This invoice is EUR.",
"checkoutMode": null,
"requirements": {
"accountCountryCode": "SE",
"invoiceCurrencyCode": "SEK"
}
},
"sepa": {
"method": "sepa",
"label": "SEPA bank transfer",
"available": true,
"reason": null,
"checkoutMode": "sepa_bank_transfer_payment",
"requirements": {
"invoiceCurrencyCode": "EUR"
}
},
"alipay": {
"method": "alipay",
"label": "Alipay",
"available": true,
"reason": null,
"checkoutMode": "alipay_payment",
"requirements": {
"invoiceCurrencyCodes": [
"EUR",
"USD"
]
}
}
},
"availablePaymentMethods": [
"card",
"sepa",
"alipay"
],
"actions": {
"canPayWithAvailableMethod": {
"allowed": true,
"reason": null
}
}
},
"renewalInvoice": {
"amount": 55,
"currencyCode": "EUR"
},
"warnings": [
{
"code": "unused_prepaid_bandwidth_credited_after_period",
"severity": "info",
"reason": "Unused prepaid bandwidth is credited after the current service period ends."
}
],
"actions": {
"canCommit": {
"allowed": true,
"reason": null
}
}
}
// Preview a bandwidth decrease for the next renewal
{
"dryRun": true,
"status": "preview",
"changeKind": "configuration",
"scheduled": true,
"paymentInvoice": null,
"renewalInvoice": {
"amount": 39,
"currencyCode": "SEK"
},
"warnings": [],
"scheduledChange": {
"status": "preview",
"effectiveAt": "2026-08-01T22:05:00.000Z",
"invoiceIssueAt": "2026-07-18T22:05:00.000Z",
"target": {
"resources": {
"bandwidthGb": 2048
},
"billing": {
"amount": 39,
"currencyCode": "SEK",
"billingCycle": "monthly"
}
},
"actions": {
"canCancel": {
"allowed": false,
"reason": "No change has been scheduled yet."
}
}
},
"actions": {
"canCommit": {
"allowed": true,
"reason": null
}
}
}
// Committed paid VPS resource increase
{
"status": "awaiting_payment",
"changeKind": "configuration",
"paymentInvoice": {
"id": "inv_01hxa3b4c5d6e7f8g9h0j1k2m3",
"number": null,
"amount": 12.99,
"currencyCode": "EUR",
"dueAt": "2026-04-27T12:34:56.000Z",
"status": "unpaid",
"paymentUrl": "/billing?invoice=10001"
},
"renewalInvoice": null
}
// Committed change with invoice finalization pending
{
"status": "processing",
"changeKind": "configuration",
"paymentInvoice": null,
"renewalInvoice": null,
"invoiceLookupPending": true
}
// Requested values already configured
{
"status": "applied",
"changeKind": "configuration",
"paymentInvoice": null,
"renewalInvoice": null
}
// Resource decrease scheduled for the next paid period
{
"status": "scheduled",
"changeKind": "configuration",
"scheduled": true,
"scheduledChange": {
"status": "scheduled",
"effectiveAt": "2026-08-11T00:00:00.000Z",
"invoiceIssueAt": "2026-07-28T00:00:00.000Z",
"target": {
"resources": {
"bandwidthGb": 2048
},
"billing": {
"amount": 39,
"currencyCode": "SEK",
"billingCycle": "monthly"
}
},
"actions": {
"canCancel": {
"allowed": true,
"reason": null
}
}
},
"paymentInvoice": null,
"renewalInvoice": null
} {
"resources": {
"bandwidthGb": 4096
},
"dryRun": true
}