compute

POST /v1/compute/servers/{serverId}/cancel

Retire a server at the provider.

All compute endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the sites.view permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X POST https://api.zinndigital.com/v1/compute/servers/{serverId}/cancel \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

A scheduled retirement, not an immediate deletion, and a client MUST say so. The machine keeps running until the term already paid for runs out; the provider then powers it down 24 hours later and deletes it after a further six days. The response carries renews_at, which is the date that countdown starts from - a "Cancel" button that silently means "in 31 days" is worse than no button at all. The row is deliberately not marked terminated: it is still a working machine the customer is entitled to use, and marking it otherwise would strip every control off a server they are still paying for. Requires sites.view and sites.delete - ending a machine is a different order of trust from paying for one.

Parameters

NameTypeRequiredWhat it is
serverId (path)UuidYesThe server's id, as listComputeServers reports it. Ours (UUIDv7), minted when the order row was written — never the provider's own identifier for the machine.

Response

NameTypeRequiredWhat it is
contract_idstringYesThe provider's contract identifier.
auto_renewbooleanYesWhether Zinn® will charge for this machine again — Subscription.auto_renew for the subscription that pays for it, reached through the paid order line. It is not the…
subscription_idstringYesThe subscription whose switch auto_renew reports, to send the customer to POST /v1/subscriptions/{subscriptionId}/auto-renew. "" when the machine was provisioned outside a…
renews_atstringYesThe provider's date - when the machine lapses at them, as they state it, or "" when they state none. Blank means "not stated" - never "never". It is what the "runs until X,…
charge_atstringYesZinn®'s date - when the customer's card is charged next, ISO-8601, or "" when the machine has no Zinn® subscription. This is Subscription.current_period_end: the rebill…
price_amount_minorobjectYesWhat the customer will be charged at charge_at, in integer minor units of price_currency, taken from the subscription's captured price (a live subscriber keeps the price…
price_currencystringYesThe ISO-4217 code price_amount_minor is denominated in, or "" when there is no subscription. Never rendered apart from the amount, and the amount never without it.
periodstringYesThe renewal cadence as the provider spells it, or "".

Errors this endpoint can return

401 · 403 · 404 · 422 · 429 · 503