On this page
agentChannelCheckoutCreate
mutation · in the family Selling
What it does
Open a checkout on this channel as an AI shopping platform would — the items, the buyer, the delivery choice — and get the priced quote back with what is still missing.
THE AGENT CHECKOUT — create: open a UCP checkout session on the AgentChannel — a DRAFT Order on the ecom channel at the channel's selling location, validUntil = now + the channel's checkout TTL, the lines priced through the channel's PriceList plane, THE AGENT CHECKOUT BLOCK stamped — and answer the quote (lines · totals · the fulfillment offer · consent · the discount extension's codes + applied discounts · the status rule + messages). Lines whose variant is not LISTED are dropped with item_unavailable messages; when NONE remain the create refuses VALIDATION/INVALID (nothing is born). The agent_platform principal opens on its OWN channel (platformProfileUrl comes from its session — an explicit arg refuses); staff (write) may name a platformProfileUrl for a test drive or none.
What happens
Creates a draft order (channel ecom, at the channel’s selling location) that expires by the channel’s checkout TTL; nothing is reserved and no money moves.
Who may call it
Capability area: Selling — Ringing sales, serving customers and issuing invoices.
- Owner
- Manager
- Associate Manager
- Sales Associate
- Cashier
- An API key whose scope allows
api:agentChannelCheckoutCreate
Arguments
| Name | Type | Required | Notes |
|---|---|---|---|
agentChannelId | ID ID! | yes | No further notes. |
input | AgentCheckoutInput AgentCheckoutInput! | yes | No further notes. |
platformProfileUrl | String | no | No further notes. |
linkedConsumerId | ID | no | No further notes. |
Returns
AgentCheckout AgentCheckout! — THE AGENT CHECKOUT VIEW: the draft Order as a UCP checkout session at NOW — status ∈ incomplete | requires_escalation | ready_for_complete | complete_in_progress | completed | canceled (the status rule) over its lines, buyer, consent, fulfillment offer, totals, discounts and messages.
Example request
mutation ExampleAgentChannelCheckoutCreate($agentChannelId: ID!, $input: AgentCheckoutInput!, $platformProfileUrl: String) {
agentChannelCheckoutCreate(agentChannelId: $agentChannelId, input: $input, platformProfileUrl: $platformProfileUrl) {
orderId
revision
revisionNum
agentChannelId
organizationId
platformProfileUrl
consumerId
currency
orderStatus
status
validUntil
}
}
Variables:
{
"agentChannelId": "01900000-0000-7000-8000-d23fae740000",
"input": {
"lines": [
{
"variantId": "01900000-0000-7000-8000-8415e73b0000",
"quantity": 1
}
],
"buyer": {
"firstName": "Blue jeans"
}
},
"platformProfileUrl": "https://example.com/hook"
}
Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.
Example response
{
"data": {
"agentChannelCheckoutCreate": {
"orderId": "01900000-0000-7000-8000-f6d8263a0000",
"revision": "01900000-0000-7000-8000-b7960e180000",
"revisionNum": 1,
"agentChannelId": "01900000-0000-7000-8000-d23fae740000",
"organizationId": "01900000-0000-7000-8000-44b781470000",
"platformProfileUrl": "https://example.com/hook",
"consumerId": "01900000-0000-7000-8000-6e8c92ec0000",
"currency": "USD",
"orderStatus": "<order status>",
"status": "<status>",
"validUntil": "<valid until>"
}
},
"extensions": {
"at": {
"callId": "01EXAMPLE-CALL-ID",
"version": {
"requested": {
"name": "genesis",
"number": 0
},
"serviced": {
"name": "genesis",
"number": 0
}
}
}
}
}
Errors this call can answer
VALIDATION/INVALID— Something in the request is not valid. (VALIDATION)AUTHN/REQUIRED— Sign in to do this. (AUTHN)AUTHZ/FORBIDDEN— Your role does not allow this action. (AUTHZ)RATE_LIMIT/THROTTLED— Too many requests in a short time. (RATE_LIMIT)NOT_FOUND/*— That record could not be found. (NOT_FOUND)CONFLICT/*— The record’s state, or a change made in the meantime, does not allow this; the codes are on the CONFLICT page. (CONFLICT)VALIDATION/VERSION_REQUIRED— The request did not say which app version it came from. (VALIDATION)