public
POST /v1/public/cart/{token}/plan
Add a hosting plan, or a free trial of one, to an anonymous cart.
Аутентификация
Бұл соңғы нүкте жалпыға қолжетімді. Ол ешқандай тіркелгі деректерін және ешқандай ұйымды қажет етпейді — оны біздің өзіміздің маркетингтік сайтымыз бен жасанды интеллект жауап беретін жүйелеріміз оқиды.
Бұл соңғы нүкте ұйым идентификаторын қабылдамайды. Сіздің кілтіңіз оның қай ұйымға тиесілі екенін өзі анықтайды және жауап соған шектеледі.
Әрекет етіп көру
Бұрыштық жақшалардағы кез келген нәрсені өз мәндеріңізбен, ал кілт орналастырушысын басқару тақтасынан алынған кілтпен алмастырыңыз.
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>> }'Жүйеге кіргенсіз бе? Бақылау тақтасындағы API консолі ұйымыңыздың нақты идентификаторы мен жеке кілтіңізді автоматты түрде толтырады да, нақты жауапты көре алуыңыз үшін сұрауды тікелей жұмыс істеп тұрған API арқылы орындайды. Бұл соңғы нүктені API консолінде ашыңыз
Мәліметтер
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.
Параметрлер
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
token (path) | string | Иә | The 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… |
Сұрау денесі
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
plan_version_id | string | Иә | The 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. |
interval | string<monthly, annual> | Иә | — |
domain | PublicCartPlanDomain | Жоқ | Which 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… |
trial | boolean | Жоқ | Start 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… |
Жауап
| Аты | Tүрі | Міндетті | Мазмұны |
|---|---|---|---|
id | Uuid | Иә | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
token | string | Жоқ | The bearer token. Returned **only** from `createPublicCart` — it is absent on every subsequent read, because only its digest is stored. |
status | string<open, converted, expired> | Иә | — |
currency | CurrencyCode | Иә | ISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8). |
product_line | string | Жоқ | — |
expires_at | string | Иә | After this the cart is gone — reads 404 whether or not it has been purged. |
items | PublicCartItem[] | Иә | — |
totals | PublicCartTotals | Иә | Pre-tax totals. Tax appears on the order, once a billing country exists. |
Бұл соңғы нүкте қайтара алатын қателер
404 · 422 · 429