Preview documentation. The interface is being rolled out — examples are indicative, and we will confirm final values at launch.
Results, calls, final order snapshot
Order state is described by three independent dimensions. Do not mix them: one
order can be completed (processing) while having business_outcome: declined.
Base URL: https://api.callbotagent.ai/api/v1/commerce. Sign requests with HMAC
(X-CBA-Key-Id, X-CBA-Timestamp, X-CBA-Signature). Scope results:read for
result and call history read.
Three status dimensions
processing_state — where the record is in the pipeline:
| Value | Meaning |
|---|---|
received → validated → qualified | rejected |
intake, validation, qualification |
scheduled → queued → calling |
scheduling and contact execution |
completed | failed | cancelled |
terminal states |
call_disposition — how the call attempt ended:
| Value | Meaning |
|---|---|
not_started / answered |
no attempt / answered |
no_answer / busy / voicemail |
no answer / busy / voicemail |
provider_failed / unknown |
call provider failure / unknown |
business_outcome — business result of the conversation:
| Value | Meaning |
|---|---|
unknown / confirmed / modified |
unknown / confirmed / modified |
declined / follow_up / invalid_contact |
declined / follow-up / invalid contact |
Result and final order snapshot
GET /orders/{externalOrderId}/result
Returns final_order_snapshot: persisted line items/variants, quantities,
prices, currency, total, confirmation flag, and reason.
curl https://api.callbotagent.ai/api/v1/commerce/orders/RB-5510/result \
-H "X-CBA-Key-Id: cba_test_••••••••" \
-H "X-CBA-Timestamp: 2026-07-10T12:34:56Z" \
-H "X-CBA-Signature: v1=9f8c2a...e41"
# 200 OK → {
# "external_order_id": "RB-5510", "business_outcome": "confirmed",
# "final_order_snapshot": {
# "items": [{ "external_variant_id": "SKU-ROUTER-01-BLK", "quantity": 1, "price": "349.00" }],
# "currency": "PLN", "total": "349.00", "confirmed": true, "reason": null }
# }const res = await fetch(
"https://api.callbotagent.ai/api/v1/commerce/orders/RB-5510/result",
{ headers: {
"X-CBA-Key-Id": "cba_test_••••••••",
"X-CBA-Timestamp": "2026-07-10T12:34:56Z",
"X-CBA-Signature": "v1=9f8c2a...e41",
} },
);
const result = await res.json();
// { business_outcome: "confirmed", final_order_snapshot: { total: "349.00", confirmed: true } }$ch = curl_init("https://api.callbotagent.ai/api/v1/commerce/orders/RB-5510/result");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"X-CBA-Key-Id: cba_test_••••••••",
"X-CBA-Timestamp: 2026-07-10T12:34:56Z",
"X-CBA-Signature: v1=9f8c2a...e41",
],
]);
$result = json_decode(curl_exec($ch), true);
// { business_outcome: "confirmed", final_order_snapshot: { confirmed: true } }GET /orders/{externalOrderId}/calls
Returns a list of contact attempts with call_disposition and RFC 3339 UTC
timestamps:
{
"external_order_id": "RB-5510",
"calls": [
{ "attempt": 1, "call_disposition": "no_answer", "started_at": "2026-07-14T09:03:11Z" },
{ "attempt": 2, "call_disposition": "answered", "started_at": "2026-07-14T14:20:05Z" }
]
}
You can pull the result with this endpoint or receive it via push — see ./webhooks.md. Related order operations: ./orders.md.