reseller

GET /v1/reseller/services/{siteId}/package

Which packages this client's service could move onto, and what each costs you.

Tutti gli endpoint reseller

Autenticazione

Invia una chiave API come token di tipo bearer. La chiave deve disporre dell'autorizzazione reseller.view; una chiave sprovvista di tale autorizzazione viene rifiutata con 403 anziché 404.

L'ID della tua organizzazione va qui

Questo endpoint accetta org_id come parametro di query. Omettilo e la chiamata coprirà l'intero sottoalbero del tuo tenant; invialo per limitare la chiamata a una singola organizzazione.

L'identificativo della tua organizzazione si trova nella schermata delle chiavi API nella tua dashboard, accanto alla chiave stessa. È lo stesso identificativo in ogni chiamata che effettui.

Provalo

Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.

curl -X GET https://api.zinndigital.com/v1/reseller/services/{siteId}/package \
  -H "Authorization: Bearer zdk_live_…"

Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API

Dettagli

The upgrade/downgrade picker your billing panel renders. Every plan this service could move to, each already scored against what the client is actually using, with the refusals applied — so a downgrade that would strand them over their own disk or database allowance is reported as ineligible here rather than failing when your customer presses the button. Requires `reseller.view`. Two prices per option, and they answer different questions. `wholesale_amount_minor` is what **Zinn® charges you** for a period of that plan, after your programme's discount. `sell_amount_minor` is what **you charge your client** — your own price-list row where you have authored one, otherwise our list price plus your default markup. Both are integer minor units with an ISO currency code, and both are `null` — never `0` — when the catalogue holds no price in the currency asked for: a zero is a number a billing panel will invoice. `blocked_reason` is a **stable code, never prose**: `usage_exceeds` · `account_over_limit` · `platform_mismatch` · `no_price` · `unknown_package_type` · `different_target` · `no_package_type`. Your panel renders it in your own language. `blocked_detail` carries the numbers behind `usage_exceeds` so a screen can say which limit and by how much. `changeable: false` means the **surface** is shut whatever plan is chosen, and `reason` says which: `no_subscription`, `shared_subscription` (one subscription covers several of that client's sites, so moving it here would change what the others are entitled to), `not_billable`, or `no_package_type`.

Parametri

NomeTipoObbligatorioChe cos'è
siteId (path)UuidSite ID (UUIDv7).
org_id (query)UuidNoWhich of your organizations this applies to. Required only when you belong to more than one here — otherwise it is inferred, and an id outside your direct memberships is a 404 r…
currency (query)stringNoISO 4217 code the two prices are quoted in. Defaults to `USD`.
interval (query)stringNoBilling interval the prices are quoted for. Defaults to `monthly`.

Risposta

NomeTipoObbligatorioChe cos'è
current_plan_codestringNo
current_plan_namestringNo
changeablebooleanFalse when the surface is shut whatever plan is picked — see `reason`. Your panel should hide the upgrade control rather than offer one that cannot work.
reasonstringNoWhy, when `changeable` is false. A stable code: `no_subscription` · `shared_subscription` · `not_billable` · `no_package_type`.
optionsResellerServicePackageOption[]

Errori che questo endpoint può restituire

401 · 403 · 404 · 429 · 503