Cancel an order
order_cancelCancel an order this session created, or a paid order from another conversation, while RendReal still allows it.
Irreversible — the order and any artwork work on it are gone. An order is
cancelled whole: there is no per-item cancel, so when the customer names one
product of an order with several items, tell them the cancel ends every item
in it. Call it as soon
as the customer asks to cancel: an unpaid order is cancelled on that call when
Compass reads their customer_words as a request to cancel it. Any other call,
such as for a paid order or on words that ask for something else, takes two
calls: the first fails with OrderCancelConfirmationRequiredError and sends
nothing. Then quote the
order's reference_id back to the customer and wait for a clear yes. Only after
they agree, call again with confirmed=true and the brief cancellation
question plus their exact answer in customer_words. confirmed=true on a
call Compass has not refused yet, or with no new customer words since the
refusal, is refused the same way.
customer_words is an exact quote of only the customer's request to cancel
this order on the first call. On the confirming call, include only the brief
cancellation question and the customer's exact answer, even if they repeat
the same words, such as "yes". Exclude the rest of their message and all
conversation history. Never paraphrase. Never cancel on a hint, and never pick
the order yourself when the session has several — ask.
For an order this session created, pass its order_id. For an order from
another conversation, pass instead the reference_id and email the customer
gives you — the order reference and the email it was paid with, exactly as typed,
never guessed — on both calls. ForeignOrderNotFoundError means the pair matched
no order: ask them to re-check both. Only a paid order from another conversation
can be cancelled here: ForeignOrderNotPaidError means it is unpaid; give the
customer its reason as written. A foreign order_id alone fails with
OrderNotInSessionError and no upstream call. RendReal decides
what is cancellable: an unpaid order, or a paid order in the short window
after payment, before production starts. A refusal (OrderNotCancellableError)
means production has started and no retry will help: tell the customer and
offer customer support. After a confirmed cancel, read refund: for
refunded, tell the customer the payment is refunded to the card they paid
with; for requested, give them refund_note as written; for none, say
nothing about a refund. Promise no timing for a refund,
and never tell the customer they were not charged.
Returns a job — poll until SUCCEEDED. status is the order's live status
after the cancel, read back from RendReal: only CANCELLED there means it
is cancelled. already_cancelled: true means it was cancelled before this
call and nothing was sent. OrderCancelNotConfirmedError means RendReal
accepted the request but the order has not changed state yet — say the
request went through but is unconfirmed, and re-check with order_get on
the customer's next message. OrderCancelOutcomeUnknownError means the
request reached RendReal but its outcome could not be confirmed: say neither that
it is cancelled nor that nothing changed; say you could not confirm it, and
check order_get on their next message; for an order from another conversation,
re-check with order_lookup instead. After a confirmed cancel the cart line the
order came from is orderable again.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"session_id": "<session_id>",
"customer_words": "<customer_words>"
},
"name": "order_cancel"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| order_id | No | ||
| confirmed | No | ||
| session_id | Yes | ||
| reference_id | No | ||
| customer_words | Yes | Exact customer cancellation request on the first call. On the confirming call, include only the brief cancellation question and the customer's exact answer. Exclude unrelated message text and conversation history. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |