public
POST /v1/public/cart/{token}/plan
Add a hosting plan, or a free trial of one, to an anonymous cart.
ავტორიზაცია
ეს ენდპოინტი საჯაროა. ის არ მოითხოვს არც რამედას და არც ორგანიზაციას — ეს არის ის, რასაც ჩვენი მარკეტინგული საიტი და AI პასუხების ძრავები კითხულობენ.
ეს ბოლო წერტილი არ იღებს ორგანიზაციის იდენტიფიკატორს. თქვენი გასაღები უკვე აიდენტიფიცირებს იმ ორგანიზაციას, რომელსაც ის ეკუთვნის, და პასუხი შემოფარგლულია მისით.
სცადეთ
შეSubstituted any value inside angle brackets with your own and the key placeholder with a key from your dashboard.
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 კონსოლი ავტომატურად ამატებს თქვენი რეალური ორგანიზაციის ID-სა და საკუთარ გასაღებს და ატარებს მოთხოვნას ცოცხალ API-ს წინააღმდეგ, რათა იხილოთ რეალური პასუხი. გაAღით ეს ენდპოინტი 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.
პარამეტრები
| სახელი | ტიპი | სავალდებულო | რა არის ეს |
|---|---|---|---|
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 in… |
მოთხოვნის სხეული
| სახელი | ტიპი | სავალდებულო | რა არის ეს |
|---|---|---|---|
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 to… |
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… |
region | string | არა | The data centre the visitor chose for the sites this plan will host. Blank means no preference — we place them ourselves. Parity with the signed-in cart's region, which has… |
პასუხი
| სახელი | ტიპი | სავალდებულო | რა არის ეს |
|---|---|---|---|
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