public

POST /v1/public/cart/{token}/plan

Add a hosting plan, or a free trial of one, to an anonymous cart.

Tous les points de terminaison public

Authentification

Cet point de terminaison est public. Il ne nécessite aucun identifiant ni aucune organisation : c'est ce que notre propre site marketing et nos moteurs de réponse IA lisent.

Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.

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/public/cart/{token}/plan \
  -H "Content-Type: application/json" \
  -d '{ "plan_version_id": <string>, "interval": <string<monthly, annual>> }'

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

Owner ruling D-W15-2: hosting, free trials and domains go through ONE public checkout, so a visitor never has to sign up in the app before they can buy. The price is computed by the server from the pinned plan VERSION in the cart's own currency; anything sent by the client is ignored. A basket holds one plan at a time, because a subscription governs the org rather than a line. `trial: true` prices the line at **zero** and is refused (`422`) on a plan that does not offer a trial — eligibility is read from the catalogue, never taken on trust.

Paramètres

NomTypeObligatoireQu'est-ce que c'est
token (path)stringOuiThe anonymous cart's opaque bearer token (`zgc_…`), as returned by `createPublicCart`. **It is a credential** — anyone holding it can read and modify the cart — and it travels i…

Corps de la requête

NomTypeObligatoireQu'est-ce que c'est
plan_version_idstringOuiThe immutable plan VERSION being bought. Pinning the version rather than the plan is what stops a catalogue edit repricing a basket somebody is part-way through.
intervalstring<monthly, annual>Oui
domainPublicCartPlanDomainNonWhich domain this hosting is for. **Optional** — "I will decide later" is a real and common answer, and refusing it would put a wall in front of the purchase this field exists t…
trialbooleanNonStart a free trial of this plan instead of buying it. The line prices at zero and the order completes with no payment step (owner ruling 2026-08-09 — a trial takes no card and s…

Réponse

NomTypeObligatoireQu'est-ce que c'est
idUuidOuiUUIDv7 identifier — sortable by creation time (docs/02 §8).
tokenstringNonThe bearer token. Returned **only** from `createPublicCart` — it is absent on every subsequent read, because only its digest is stored.
statusstring<open, converted, expired>Oui
currencyCurrencyCodeOuiISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
product_linestringNon
expires_atstringOuiAfter this the cart is gone — reads 404 whether or not it has been purged.
itemsPublicCartItem[]Oui
totalsPublicCartTotalsOuiPre-tax totals. Tax appears on the order, once a billing country exists.

Erreurs que cet point de terminaison peut renvoyer

404 · 422 · 429