reseller

POST /v1/reseller/clients/{orgId}/plan

Put a client on a plan — call this before provisioning their first service.

すべての reseller エンドポイント

すべての開発者向けドキュメント

認証

ベアラー トークンとして API キーを送信します。キーには reseller.provision 権限が付与されている必要があります。権限のないキーは 404 ではなく 403 で拒否されます。

組織 ID を入力する場所

このエンドポイントでは、URL内に組織IDを orgId として直接指定します。パスの中にその値を代入してください。この動作を代替するヘッダーやクエリパラメータはありません。

組織IDは、ダッシュボードのAPIキー画面にキーのすぐ横に表示されています。これは、実行するすべての呼び出しで同じIDになります。

試してみる

アングルブラケット内のすべてをご自身の値に置き換え、キーのプレースホルダーをご利用中のダッシュボードのキーに置き換えてください。

curl -X POST https://api.zinndigital.com/v1/reseller/clients/{orgId}/plan \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "plan_code": <string> }'

ログインしていますか?ダッシュボード内のAPIコンソールでは、実際の組織IDやお客様ご自身のキーが自動入力され、ライブAPIに対してリクエストが実行されるため、実際のレスポンスを確認することができます。 API コンソールでこのエンドポイントを開く

詳細

Grants the client organization the plan your product sells, and returns the subscription_id to pass to createSite. Requires reseller.provision. ⛔⛔ A provisioning module MUST call this before createSite, and omitting it is a silent, total loss of the invoice. A newly created organization has no subscription, and createSite has no plan field — so a site provisioned without one lands with no plan at all. Your wholesale statement is built from your clients' live subscriptions, so there is no line for that service and Zinn® bills you nothing while the hosting runs; the client inherits no entitlements, so no quota is applied to their box; and changeResellerServicePackage has nothing to change, so an upgrade you sell cannot be performed. Nothing anywhere reports this — the site provisions and serves perfectly. Your client is never invoiced by Zinn®. The subscription is granted comped: it exists to carry entitlements and to put a line on your wholesale statement, and our renewal billing skips it. You bill your client; we bill you. A second service for the same client. On the same plan this is a no-op and returns 200 with created: false — the plan's own site allowance covers the extra site, so nothing further is granted and a retried provision cannot disturb the subscription it is re-establishing. On a different plan it is refused 422, because replacing the live plan would leave one of the two services unbilled. Either sell both on the same plan, or set the client up as a separate client record. To move a client to a different plan, use changeResellerServicePackage on the service. 422 for an unknown plan code and for a plan that is not for sale. 409 when the client's existing usage does not fit the plan being granted, with the real numbers.

パラメータ

名前タイプ必須これがその内容です
orgId (path)UuidはいOne of your client organizations.
org_id (query)UuidいいえWhich of YOUR organizations is asking. Required only when you belong to more than one.

リクエスト本文

名前タイプ必須これがその内容です
plan_codestringはいThe plan to put this client on, by code — the value your product's module settings carry. The newest active version of it is always what is granted.
intervalstringいいえBilling interval for the wholesale line. Defaults to monthly.

返信

名前タイプ必須これがその内容です
client_org_idUuidはいUUIDv7 identifier — sortable by creation time (docs/02 §8).
subscription_idstringいいえPass this as subscription_id on createSite. Null when the client is on no plan — provisioning a site in that state is what leaves it unbilled.
plan_codestringいいえ
plan_namestringいいえ
intervalstringいいえ
createdbooleanはいTrue when this call granted the plan, false when the client was already on it. A retried provision needs the difference without inferring it from a timestamp.
wholesale_amount_minorintegerいいえWhat Zinn® charges you per period. null, never 0, when unpriced.
wholesale_currencystringいいえ

このエンドポイントが返すエラー

401 · 403 · 404 · 409 · 422 · 429