public
POST /v1/public/checkout
Check out as a guest — create the account and place the order.
Autenticazione
Questo endpoint è pubblico. Non richiede credenziali né alcuna organizzazione: è ciò che leggono il nostro sito di marketing e i nostri motori di risposta basati su IA.
Questo endpoint non richiede alcun ID organizzazione. La tua chiave identifica già l'organizzazione a cui appartiene e la risposta è limitata ad essa.
Provalo
Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.
curl -X POST https://api.zinndigital.com/v1/public/checkout \
-H "Content-Type: application/json" \
-d '{ "cart_token": <string>, "email": <string>, "billing": <PublicBilling> }'Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API
Dettagli
Converts an anonymous cart into a real tenant: it **creates the organization and the user at this point**, captures the billing details, and places an immutable order. Availability is **re-verified live** against the registrar first, so a name taken while the customer was typing aborts the whole call (`409`) with nothing created. Tax is computed against `billing.country` (§2.8). **It never takes a card, and what it does next depends entirely on the total.** The response is `{order_id, org_id, next}`: - `"payment"` — the order has something to pay and is left `pending_payment`. Taking payment is the authenticated step that follows, because a brand-new organization has no payment mandate on file. - `"done"` — the total is **zero** (a free trial, a zero-priced plan, a 100% discount), so the order is **settled and provisioned inside this call**: a zero `Payment` is recorded, the order becomes `paid`, and the fulfilment workflow starts. No gateway is contacted — a brand-new organization has none to resolve, and there is nothing to charge. Owner ruling 2026-08-09: *a free trial takes no card and starts immediately.* ⛔ Between that ruling and 2026-08-12 this endpoint answered `"done"` and performed **none** of it — the order stayed `pending_payment` with no payment, no fulfilment and no workflow, so the customer was told their trial had started and no site was ever built. Anything that keys off `next` should key off it alone; the order state now follows it. **Idempotent on the cart.** A double-submit — concurrent or an hour later — produces one organization, one user and one order; the repeat returns the same ids. There is no `Idempotency-Key` header to send: the cart token *is* the key. If the email already has an account the call is refused with `409` and nothing is created: the purchase must be completed signed in, so that an unauthenticated request can never attach an order to somebody else's tenant. The cart stays open.
Corpo della richiesta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
cart_token | string | Sì | — |
email | string | Sì | — |
password | string | No | Optional. Omit it and the account is created without a credential, so the customer sets one through the identity provider's own verified flow — which is the safer default, becau… |
name | string | No | — |
locale | string | No | — |
billing | PublicBilling | Sì | The buyer block. Only `country` is required, because tax is country- and currency-aware and an order with no jurisdiction has no determinable tax; the rest can be completed late… |
attribution | object | No | — |
Risposta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
order_id | Uuid | Sì | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
org_id | Uuid | Sì | The organization created by this call — the customer's new tenant. |
next | string<payment, done> | Sì | What the client should do next. `payment` — the order exists and is `pending_payment`; nothing has been charged. `done` — the order totals **zero** and there is nothing to charg… |
Errori che questo endpoint può restituire
404 · 409 · 422 · 429 · 503