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

A checkout session requires buyer escalation

RECEIVEserving.checkout.escalated
Message
event_versionstringrequired

Semver of this event contract. Starts at "1.0"; bump on a breaking payload change.

event_idstringrequired
occurred_atstring<date-time>required
merchant_idstringrequired
store_idstringrequired
surfacestringrequired

Best-effort Google surface, derived from the UCP-Agent header's profile-URL host. "unknown" when the header is absent or doesn't recognizably match a known Google surface.

Allowed:google_ai_modegoogle_geminiunknown
checkout_idstring

Absent on serving.request.telemetry_recorded; the Sarvex checkout session id everywhere else.

checkout_session_idstringrequired
reasonstring

The qualifying error message's content (severity requires_buyer_input or requires_buyer_review).

continue_urlstringrequired

Where the buyer must go to complete the out-of-band action before the agent retries complete.

stagestringrequired
Allowed:escalated
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_version": "1.0",
  "event_id": "string",
  "occurred_at": "2019-08-24T14:15:22Z",
  "merchant_id": "string",
  "store_id": "string",
  "surface": "google_ai_mode",
  "checkout_id": "string",
  "checkout_session_id": "string",
  "reason": "string",
  "continue_url": "string",
  "stage": "escalated"
}