Evento `ORDER_STATUS_CHANGE`
Webhook disparado a cada mudança de status de um pedido (CREATED → DISPATCHED → COLLECTED → SUCCESSFUL etc.).
Evento enviado ao seller a cada mudança de status do pedido. A página de Status & Substatus descreve cada estado e suas transições.
Estrutura base
Todo evento ORDER_STATUS_CHANGE chega com este envelope base. Os cards mais abaixo (CREATED, DISPATCHED, IN_TRANSIT…) mostram só o delta — o que muda ou aparece a mais em cada status.
{
"order_id": "33595136-bf9d-4a07-89ff-8fca22166a0d",
"order_number": "26007537",
"order_type": "DELIVERY",
"external_order_id": "26025007537_25044",
"invoice_number": "46631",
"access_key": "33260500285753002800651010000466311001978900",
"invoice_created_timestamp": "2026-05-28T13:53:29.000Z",
"tracking": "W9GR58BEU10A",
"seller_identifier": "00285753002800",
"seller_document_number": "00285753002800",
"seller_trading_name": "Loja XYZ",
"seller_id": "d40466d4-8cbf-431a-ae71-a11913965d80",
"seller_group_id": "1d967918-f877-49a3-95a0-673cdcab0ab8",
"customer_name": "João Silva",
"customer_phone": "21999999999",
"customer_email": "joao@email.com",
"customer_document_number": "00000000000",
"event_type": "ORDER_STATUS_CHANGE",
"event_at": "2026-05-28T21:14:10.494Z",
"timestamp": 1780002850946,
"event_observation": null,
"delivery_type": "CARRIER",
"status": "CREATED",
"sub_status": null,
"expected_delivery_price": null,
"expected_delivery_date": null,
"final_delivery_price": null,
"delivery_eta": null
}order_type define o caminho: DELIVERY (entrega ao cliente), TAKEOUT (retirada na loja) ou RETURN (logística reversa).
delivery_type identifica quem está executando a entrega: CARRIER, PRIVATE-FLEET, TAKEOUT, ou o slug da transportadora (AGILE-GO, UBER, 99-ENTREGAS, etc.).
Glossário de campos
| Campo | Tipo | Notas |
|---|---|---|
status | string (enum) | sempre presente — ver Status & Substatus |
sub_status | string | null | varia conforme o status |
delivery_type | string | sempre — CARRIER, PRIVATE-FLEET, TAKEOUT, ou o slug da transportadora |
event_observation | string | null | observação textual associada ao evento (motivo de falha, cancelamento, etc.) |
driver_name | string | null | nome do motorista após atribuição (DISPATCHED em diante, quando há motorista) |
carrier_name | string | null | nome da transportadora quando aplicável (CARRIER ou nome do parceiro) |
expected_delivery_price | integer (centavos) | null | preço estimado pela transportadora — populado a partir de PENDING/DISPATCHED |
expected_delivery_date | ISO datetime | null | prazo combinado com a transportadora |
delivery_eta | ISO datetime | null | ETA dinâmica enviada por carriers que suportam (Uber, 99, etc.) |
final_delivery_price | integer (centavos) | null | preço efetivo da entrega — só populado em SUCCESSFUL |
failure_code | integer | só em FAILED — ver Códigos de falha |
failure_message | string | só em FAILED |
failure_driver_message | string | só em FAILED — relato do motorista |
receiver_name | string | só em SUCCESSFUL — nome de quem recebeu a entrega |
attachments | Array<{ url, type? }> | só em SUCCESSFUL.DELIVERED quando há POD. type: "image" ou "signature" |
Exemplos por status
Cada card mostra apenas o delta sobre o envelope base. Os campos que aparecem aqui são os que mudam ou se somam ao envelope.
{
"status": "CREATED",
"sub_status": null
}{
"status": "PENDING",
"sub_status": "WAITING_FOR_CARRIER",
"carrier_name": "AGILE-GO",
"expected_delivery_price": 2500,
"expected_delivery_date": "2026-03-01T02:59:00.000Z",
"delivery_eta": "2026-03-02T14:59:00.000Z"
}{
"status": "DISPATCHED",
"sub_status": "ROUTE_PLANNED",
"driver_name": "João",
"carrier_name": "AGILE-GO"
}{
"status": "IN_TRANSIT",
"sub_status": "COLLECTING",
"driver_name": "João",
"carrier_name": "AGILE-GO"
}{
"status": "COLLECTED",
"sub_status": null,
"driver_name": "João",
"carrier_name": "AGILE-GO"
}{
"status": "START_DELIVERY",
"sub_status": null,
"driver_name": "João",
"carrier_name": "AGILE-GO",
"delivery_eta": "2026-05-28T23:59:00.000Z"
}{
"status": "HANDLING",
"sub_status": "TRANSFER_COMPLETED",
"carrier_name": "AGILE-GO"
}{
"status": "SUCCESSFUL",
"sub_status": "DELIVERED",
"driver_name": "João",
"carrier_name": "AGILE-GO",
"receiver_name": "Maria Silva",
"final_delivery_price": 952,
"expected_delivery_price": 1200,
"delivery_eta": "2026-05-28T23:59:00.000Z",
"attachments": [
{ "url": "https://attachments.abbiamolog.com/...jpeg", "type": "image" },
{ "url": "https://attachments.abbiamolog.com/...jpeg", "type": "signature" }
]
}{
"status": "FAILED",
"sub_status": "COLLECT_FAILED",
"driver_name": "João",
"carrier_name": "AGILE-GO",
"failure_code": 17,
"failure_message": "Outro",
"failure_driver_message": "Loja fechada quando cheguei"
}{
"status": "ORDER_FAILED",
"sub_status": "CARRIER_TIMEOUT"
}{
"status": "CANCELED",
"sub_status": "RETURNED_TO_SELLER",
"event_observation": "Cliente solicitou cancelamento após coleta"
}{
"status": "RETURNING",
"sub_status": null,
"driver_name": "João",
"carrier_name": "AGILE-GO"
}{
"status": "RETURNED",
"sub_status": null,
"carrier_name": "AGILE-GO"
}{
"status": "MANUAL_HANDLE",
"sub_status": null
}