reseller

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

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

Tous les points de terminaison reseller

Authentification

Envoyez une clé API en tant que jeton du porteur. La clé doit posséder l'autorisation reseller.provision ; une clé qui ne l'a pas est refusée avec le code 403, et non 404.

Où insérer l'ID de votre organisation

Cet point de terminaison intègre l'identifiant de votre organisation directement dans l'URL, sous la forme orgId. Insérez-le dans le chemin d'accès, car aucun en-tête ni paramètre de requête ne peut s'y substituer.

L'identifiant de votre organisation se trouve sur l'écran des clés API de votre tableau de bord, à côté de la clé elle-même. Il s'agit du même identifiant pour chaque appel que vous effectuez.

Essayer

Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.

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> }'

Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API

Détails

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.

Paramètres

NomTypeObligatoireQu'est-ce que c'est
orgId (path)UuidOuiOne of your client organizations.
org_id (query)UuidNonWhich of YOUR organizations is asking. Required only when you belong to more than one.

Corps de la requête

NomTypeObligatoireQu'est-ce que c'est
plan_codestringOuiThe 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.
intervalstringNonBilling interval for the wholesale line. Defaults to `monthly`.

Réponse

NomTypeObligatoireQu'est-ce que c'est
client_org_idUuidOuiUUIDv7 identifier — sortable by creation time (docs/02 §8).
subscription_idstringNonPass 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_codestringNon
plan_namestringNon
intervalstringNon
createdbooleanOuiTrue 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_minorintegerNonWhat Zinn® charges you per period. `null`, never `0`, when unpriced.
wholesale_currencystringNon

Erreurs que cet point de terminaison peut renvoyer

401 · 403 · 404 · 409 · 422 · 429