commerce

GET /v1/order/config/{planCode}

Everything a signed-in customer configures for one plan.

所有 commerce 端点

所有开发者文档

身份验证

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

此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。

免费试用

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

curl -X GET https://api.zinndigital.com/v1/order/config/{planCode} \
  -H "Authorization: Bearer zdk_live_…"

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

详细信息

The in-app twin of getPublicOrderConfig, and it reads the same function: two computations of "what can I configure on this plan" is how the public funnel and the console come to disagree about whether a plan includes a free domain. The one real difference is why this route exists: it includes the product lines the owner ruled sellable only inside the app (email for an external domain, 2026-08-16), which are absent from every anonymous surface. It is a separate authenticated route rather than a query parameter, because a parameter an anonymous caller can set is not a visibility control. Authenticated but not tenant-scoped: the answer is a statement about what the platform sells, not about the caller's estate. Requires billing.view.

参数

名称类型必填内容简介
planCode (path)stringThe catalogue code of the plan being configured.

响应

名称类型必填内容简介
plan_codestring
plan_namestring
plan_idstringThe plan's stable identity — what a URL or an analytics event refers to.
plan_version_idstringThe purchasable identifier: what a hosting_plan cart line pins. Not plan_id — a price change mints a new version rather than mutating the sold one, so this value changes…
plan_versioninteger
product_linestring
product_line_namestringThe line's display name from the engine's one source table, so a client never has to render a raw code to a customer.
currencystringWhat everything on this payload is priced in. It may differ from the currency asked for: a currency with no derived price row yet falls back to USD and says so here rather…
termsOrderTerm[]Cheapest per month first, which is what default_interval names.
default_intervalstringThe cadence to select on first render — derived as the cheapest per month rather than typed beside the price table. A typed default is a comment that happens to run: correct…
trial_daysobjectThe free trial this plan offers, or null for none. A trial takes no card and starts immediately, so the button beneath the configuration has to say "start trial" rather than…
included_domainsintegerHow many domain registrations the plan includes free — the "use the free domain this plan includes" branch. 0 is the common case: render that branch only when the allowance is…
included_domain_tldsstring[]Which extensions the free registration may be spent on. Empty alongside a non-zero included_domains means the plan grants any offered TLD.
domain_term_yearsinteger[]
regionsOrderRegion[]The data centres a site on this plan may be created in. Empty is a real answer — the Footprint-Free line offers no region by owner ruling, because a PBN customer is…
specOrderSpecItem[]The read-only "what is included" panel, ordered for display. Not a filtered allow-list: every resolved entitlement appears, so a capability added to the catalogue tomorrow is…
addonsOrderAddon[]The services offered on this product line and deliverable today — a PBN addon never appears on a mainstream plan, and an addon whose fulfilment handler has been withdrawn…

此端点可能返回的错误

401 · 403 · 404