Skip to content
SarvexDocs
Esc
↑↓navigate↵open⌘Jpreview

A checkout session was created

RECEIVEserving.checkout.session_initiated
Message
event_idstringrequired

Fresh per emission — the session-projection worker's idempotency/dedup key, independent of the bus envelope's own message_id.

checkout_session_idstringrequired
store_idstringrequired
merchant_idstringrequired
surfacestringrequired

The checkout surface. There is exactly one — UCP checkout.

Allowed:ucp_checkout
agent_platformstring | null

Best-effort agent platform identification from the UCP-Agent header; absent when the header wasn't present.

cartcart_summaryrequired
Show properties
currencystringrequired
total_minorintegerrequired
item_countintegerrequired
stagestringrequired
Allowed:initiated
Headers
message_idstringrequired

Unique per message; consumers de-duplicate on this.

ordering_keystringrequired

The store_id. Guarantees per-store ordering; the catalog/serving tenant boundary (a store belongs to one merchant — see architecture §2a).

occurred_atstring<date-time>required
sequenceinteger<int64>

Monotonic per-connector sequence carried from the origin signal (ingest events only).

trace_idstring

Correlates a chain of events from one originating cause.

schema_versionstringrequired
Try it
Server
Payload

Live sending isn't possible for pubsub from a browser tab — copy the sample above and run it against your broker.

Message
{
  "event_id": "string",
  "checkout_session_id": "string",
  "store_id": "string",
  "merchant_id": "string",
  "surface": "ucp_checkout",
  "agent_platform": "string",
  "cart": {
    "currency": "AUD",
    "total_minor": 0,
    "item_count": 0
  },
  "stage": "initiated"
}