/api/v2/shared-hosting/{accountId}/actions/upgrade Preview or commit a shared-hosting plan change.
Send a catalog productSlug such as webbhotell-business; use dryRun: true first.
Upgrades are applied immediately and may require payment.
Downgrades are scheduled for the next paid-period boundary: the current package remains active until scheduledChange.effectiveAt, no current-period refund is issued, and the response has scheduled: true.
A downgrade to a storage-limited package is rejected when current disk usage exceeds that package's limit.
Reseller-package transitions require support.
Only one scheduled package change can exist at a time; cancel it with DELETE on this endpoint before choosing another package.
If an unpaid invoice already exists for the service, the commit returns 409 existing_invoice_blocking with the invoice reference and a suggested retry body; pay the invoice or retry with cancelExistingInvoice: true.
In rare cases a committed change can fail to generate the next renewal invoice; the endpoint then returns 502 upstream_renewal_regeneration_failed — the plan change is already committed, so contact support instead of retrying.
write:billing
Authenticate with an API key in the Authorization: Bearer <token> header.
accountId string required
Example: acct_01hxa3b4c5d6e7f8g9h0j1k2m3 Public shared-hosting account ID from GET /api/v2/shared-hosting 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 productSlug string required
· Example: webbhotell-business dryRun boolean
· Example: true cancelExistingInvoice boolean
· Example: false dryRun boolean · enum required true status string · enum required preview changeKind string · enum required upgrade downgrade currentProduct object · nullable required newProduct object · nullable required 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.
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.
scheduled boolean True for a downgrade preview that will take effect next period.
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 Server-verified allocation after the scheduled change is applied. For VPS plan changes, storageGb can exceed the selected plan's included disk because provisioned primary storage cannot be reduced in place.
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.
status string · enum required scheduled awaiting_payment applied changeKind string · enum required upgrade downgrade currentProduct object · nullable required newProduct object · nullable required paymentInvoice object | null required paymentInvoice.id string · nullable required
· Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3 Nullable: may be null when not applicable.
paymentInvoice.number string · nullable required
· Example: 202600001 Nullable: may be null when not applicable.
paymentInvoice.amount number · nullable required
· Example: 99 Invoice amount in the currency given by currencyCode.
paymentInvoice.currencyCode string required
· Example: SEK paymentInvoice.dueAt string · nullable required
· Example: 2026-05-27T00:00:00.000Z Nullable: may be null when not applicable.
paymentInvoice.status string required
· Example: unpaid paymentInvoice.paymentUrl string · nullable required
· Example: /billing?invoice=202600001 Nullable: may be null when not applicable.
renewalInvoice object | null required renewalInvoice.id string · nullable required
· Example: inv_01hxa3b4c5d6e7f8g9h0j1k2m3 Nullable: may be null when not applicable.
renewalInvoice.number string · nullable required
· Example: 202600001 Nullable: may be null when not applicable.
renewalInvoice.amount number · nullable required
· Example: 99 Invoice amount in the currency given by currencyCode.
renewalInvoice.currencyCode string required
· Example: SEK renewalInvoice.dueAt string · nullable required
· Example: 2026-05-27T00:00:00.000Z Nullable: may be null when not applicable.
renewalInvoice.status string required
· Example: unpaid renewalInvoice.paymentUrl string · nullable required
· Example: /billing?invoice=202600001 Nullable: may be null when not applicable.
scheduled boolean True when the downgrade was scheduled instead of applied immediately.
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 Server-verified allocation after the scheduled change is applied. For VPS plan changes, storageGb can exceed the selected plan's included disk because provisioned primary storage cannot be reduced in place.
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.
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 existing_invoice_blocking), a scheduled change already exists (scheduled_change_in_progress), scheduled-change processing is temporarily unavailable (scheduled_change_processing_unavailable), the transition is not supported (unsupported_plan_transition), or current storage use exceeds the target plan (target_plan_capacity_exceeded). 10 fields type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on detail.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when code is invalid_request.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object Retry-After seconds plus X-RateLimit-* headers. 10 fields type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on detail.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when code is invalid_request.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on detail.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when code is invalid_request.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object 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/shared-hosting/{accountId}/actions/upgrade curl -X POST "https://cloud.hostup.se/api/v2/shared-hosting/acct_01hxa3b4c5d6e7f8g9h0j1k2m3/actions/upgrade" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"productSlug": "webbhotell-business",
"dryRun": true
}' // Immediate hosting upgrade
{
"status": "awaiting_payment",
"changeKind": "upgrade",
"currentProduct": {
"slug": "webbhotell-start",
"name": "Start"
},
"newProduct": {
"slug": "webbhotell-business",
"name": "Business"
},
"paymentInvoice": {
"id": "inv_01hxa3b4c5d6e7f8g9h0j1k2m3",
"number": "202600001",
"amount": 100,
"currencyCode": "SEK",
"dueAt": "2026-05-27T00:00:00.000Z",
"status": "unpaid",
"paymentUrl": "/billing?invoice=202600001"
},
"renewalInvoice": null
}
// Hosting downgrade scheduled for the next paid period
{
"status": "scheduled",
"changeKind": "downgrade",
"scheduled": true,
"currentProduct": {
"slug": "webbhotell-business",
"name": "Business"
},
"newProduct": {
"slug": "webbhotell-start",
"name": "Start"
},
"scheduledChange": {
"status": "awaiting_payment",
"effectiveAt": "2026-08-11T00:00:00.000Z",
"invoiceIssueAt": "2026-07-12T00:00:00.000Z",
"target": {
"productSlug": "webbhotell-start",
"billing": {
"amount": 39,
"currencyCode": "SEK",
"billingCycle": "annually"
}
},
"actions": {
"canCancel": {
"allowed": true,
"reason": null
}
}
},
"paymentInvoice": null,
"renewalInvoice": null
} {
"productSlug": "webbhotell-business",
"dryRun": true
}