public

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

Add one purchasable service (an addon) to an anonymous cart.

Gbogbo àwọn public endpoints

Gbogbo àwọn ìwé àṣẹ olùgbékalẹ̀ àgbékalẹ̀

Ìfàṣẹ́pọ̀

Ojú-wọ̀n yìí jẹ́ ti gbogbo ènìyàn. Kò gba àmì ìdánimọ̀ kankan tàbí àgbájọ kankan — ohun tí ojú-wọ̀n ìpolówó wa àti àwọn ẹ̀rọ ìdáhùn AI ǹkà kọ́ ni.

Ojú abánisọ̀rọ̀ yìí kò gba id ajọ kankan. Kọ́kọ́rọ́ rẹ ti mọ ajọ ti o jẹ ti e, a o si fèsì nipa rẹ̀.

Gbiyanju rẹ

Rọ́pọ̀ èyíkéyìí nínú àwọn àmì ìtọ́ka < > pẹ̀lú iye tirẹ̀, àti àmì ìdánimọ̀ bọ́tìnnì náà pẹ̀lú bọ́tìnnì kan láti inú dásibọ̀ọ̀dù rẹ.

curl -X POST https://api.zinndigital.com/v1/public/cart/{token}/extra \
  -H "Content-Type: application/json" \
  -d '{ "code": <string> }'

Ṣé o ti wọlé? Iwọ̀n api ní nú ìgbékalẹ̀ rẹ kún id àjọ gidi rẹ ati bọtini tirẹ, o si nṣiṣẹ ibeere na lòdì si api gidi ki o le rii esi gidi na. Ṣí ojú abáná yìí sílẹ̀ nínú kọnsólù API

Àwọn kúlẹ̀kúlẹ̀

Owner ruling 2026-09-09: the order configuration page upsells addons "suitable for the hosting type", and its running total has to match what checkout charges to the minor unit. That second half is what makes an addon a basket LINE rather than a second purchase path — a total including something the basket cannot hold would be a second place that adds money up. The price is computed by the server from the catalogue in the cart's own currency; anything sent by the client is ignored. Which addons this basket may buy is read from its own plan line, never from the request: this endpoint is anonymous, so a caller-supplied product line would put every PBN-only addon one request away from any basket. A basket with no plan in it can buy only the addons sold on every line. 422 covers all three refusals — withdrawn (no fulfilment handler is registered, so we could take the money and run nothing), not sold on this product line, or already in the basket. One of each service per basket.

Àwọn ìpìlẹ̀

OrúkọIruTí a nílòKini o jẹ
token (path)stringBẹẹniThe 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…

Akoonu ibeere naa

OrúkọIruTí a nílòKini o jẹ
codestringBẹẹniThe catalogue code of the service being added (managed_migration, site_speedup_standard, …), from OrderConfig.addons. One field, and deliberately no product line beside it:…

Idahun

OrúkọIruTí a nílòKini o jẹ
idUuidBẹẹniUUIDv7 identifier — sortable by creation time (docs/02 §8).
tokenstringBẹẹkọThe bearer token. Returned only from createPublicCart — it is absent on every subsequent read, because only its digest is stored.
statusstring<open, converted, expired>Bẹẹni
currencyCurrencyCodeBẹẹniISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8).
product_linestringBẹẹkọ
expires_atstringBẹẹniAfter this the cart is gone — reads 404 whether or not it has been purged.
itemsPublicCartItem[]Bẹẹni
totalsPublicCartTotalsBẹẹniPre-tax totals. Tax appears on the order, once a billing country exists.

Awọn aṣiṣe ti ibudo ipari yii le da pada

404 · 422 · 429