reseller

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

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

所有 reseller 端点

身份验证

请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 reseller.view 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。

您的组织 ID 应填在此处

此端点将 org_id 作为查询参数。不填则调用涵盖您的整个租户子树;发送该参数则将调用范围缩小到一个组织。

您的组织ID位于控制面板的API密钥屏幕上,就在密钥本身的旁边。这是您在每次调用时使用的相同ID。

免费试用

将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。

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

已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点

详细信息

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`.

参数

名称类型必填内容简介
siteId (path)UuidSite ID (UUIDv7).
org_id (query)UuidWhich 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)stringISO 4217 code the two prices are quoted in. Defaults to `USD`.
interval (query)stringBilling interval the prices are quoted for. Defaults to `monthly`.

响应

名称类型必填内容简介
current_plan_codestring
current_plan_namestring
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.
reasonstringWhy, when `changeable` is false. A stable code: `no_subscription` · `shared_subscription` · `not_billable` · `no_package_type`.
optionsResellerServicePackageOption[]

此端点可能返回的错误

401 · 403 · 404 · 429 · 503