/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 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 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
}