callbotagent.aiDocs
v1 · Contract draft
ENPL
Open dashboard
Preview

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 }
# }

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.