reseller

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

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

Sve reseller krajnje tačke

Autentifikacija

Pošaljite API ključ kao bearer token. Ključ mora imati dozvolu reseller.view; ključ bez nje se odbija sa 403, a ne sa 404.

Gde ide ID vaše organizacije

Ova krajnja tačka prihvata org_id kao parametar upita. Izostavite ga i poziv obuhvata celokupno stablo vašeg zakupca; pošaljite ga da biste suzili poziv na jednu organizaciju.

ID vaše organizacije nalazi se na ekranu sa API ključevima u vašoj kontrolnoj tabli, pored samog ključa. To je isti ID u svakom pozivu koji uputite.

Isprobajte

Zamenite bilo šta u uglastim zagradama sopstvenim vrednostima, a ključni placeholder sa ključem sa vaše kontrolne table.

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

Prijavljeni ste? API konzola na vašoj kontrolnoj tabli automatski popunjava ID vaše stvarne organizacije i vaš sopstveni ključ, i izvršava zahtev nad API-jem uživo tako da možete videti stvarni odgovor. Otvorite ovu krajnju tačku u API konzoli

Detalji

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`, `not_billable`, `no_package_type`, or `subscription_not_live`. ⛔ `shared_subscription` is **retired** (2026-09-08) and this surface no longer returns it. It shut the screen whenever one subscription covered several of a client's sites — which is what a multi-site plan is — so a reseller's panel could not offer an upgrade to exactly the clients most likely to want one. A plan covering several sites is now moved for all of them together.

Parametri

NazivVrstaObaveznoŠta je ovo
siteId (path)UuidDaSite ID (UUIDv7).
org_id (query)UuidNeWhich 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)stringNeISO 4217 code the two prices are quoted in. Defaults to `USD`.
interval (query)stringNeBilling interval the prices are quoted for. Defaults to `monthly`.

Odgovor

NazivVrstaObaveznoŠta je ovo
current_plan_codestringNe
current_plan_namestringNe
changeablebooleanDaFalse 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.
reasonstringNeWhy, when `changeable` is false. A stable code: `no_subscription` · `not_billable` · `no_package_type` · `subscription_not_live`. ⛔ `shared_subscription` is retired (2026-09-08)…
optionsResellerServicePackageOption[]Da

Greške koje ovaj krajnji tačka može da vrati

401 · 403 · 404 · 429 · 503