Rastreio da transportadora
Consulta o acompanhamento do pedido para o cliente, os eventos reais da transportadora e as transportadoras disponíveis.
Depois que o pedido foi enviado, três perguntas aparecem no atendimento: "onde está meu pedido?", "quais pedidos deste cliente estão a caminho?" e "quais transportadoras posso escolher?". As rotas desta página respondem a cada uma:
- Eventos da transportadora de um pedido (
/orders/{id}/tracking-events): a linha do tempo real do pacote (postado, em trânsito, saiu para entrega...), alimentada pela própria transportadora. - Acompanhamento do pedido (
/order-tracking): a visão que o cliente enxerga (etapas, status atual, remessas, previsão e observações públicas), por pedido ou por CNPJ de comprador/seller. - Transportadoras (
/shipment-carriers): a lista das transportadoras ativas da loja, para escolher na criação de uma remessa.
/api/v1/admin/orders/{id}/tracking-eventsAdminEventos de rastreio da transportadora de um pedido
Devolve o último estado conhecido do rastreio do pedido: transportadora, código, os eventos recebidos e os itens. Se o pedido ainda não tem remessa com código, events vem vazio e found continua true. Exige acesso a envios: o privilégio view_shipping ou manage_shipping.
Path parameters
iduuidobrigatório/api/v1/admin/order-trackingAdminRastreio dos pedidos de um seller ou cliente (por CNPJ)
Lista o acompanhamento dos pedidos de um seller ou de um comprador, identificado pelo CNPJ. É a rota para um sistema externo perguntar "como estão os pedidos desta empresa". Cada consulta fica registrada no log de atividades. Exige view_orders ou manage_orders, e o recurso de acompanhamento ativo.
Query parameters
party_typestringobrigatóriosellercustomercustomer, devolve só o pedido que o comprador vê (o pai, nunca os filhos).cnpjstringobrigatórioorder_iduuidorder_numberstringstatusstringdate_fromstringAAAA-MM-DD ou RFC 3339.date_tostringAAAA-MM-DD ou RFC 3339.pageintegerpadrão: 1per_pageintegerpadrão: 20langstringpt-BR, en). Se omitido, usa o cabeçalho Accept-Language./api/v1/admin/order-tracking/{id}AdminRastreio de um pedido
Acompanhamento de um pedido, com as etapas, o status atual, as remessas e a linha do tempo. Por padrão mostra o que o cliente vê; com audience=vendor, o que o seller vê.
Path parameters
iduuidobrigatórioQuery parameters
audiencestringpadrão: customercustomervendorlangstring/api/v1/admin/shipment-carriersAdminTransportadoras disponíveis para criar uma remessa
Lista as transportadoras ativas da loja (cadastro de Logística, Transportadoras). Serve para preencher o campo carrier ao criar uma remessa. Exige view_orders ou manage_orders.
Exemplo de requisição
# Eventos reais da transportadora
curl "$BASE_URL/api/v1/admin/orders/$ORDER_ID/tracking-events" \
-H "Authorization: Bearer $TOKEN"
# Pedidos de um comprador, por CNPJ
curl "$BASE_URL/api/v1/admin/order-tracking?party_type=customer&cnpj=11222333000181&per_page=20" \
-H "Authorization: Bearer $TOKEN"
# Acompanhamento de um pedido (visão do seller)
curl "$BASE_URL/api/v1/admin/order-tracking/$ORDER_ID?audience=vendor" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"found": true,
"order_number": "PEDIDO-20261011-0001-V1",
"carrier": "Correios",
"tracking_code": "BR123456789BR",
"recipient_first_name": "Maria",
"events": [
{
"event_type": "in_transit",
"description": "Objeto em trânsito, por favor aguarde",
"location": "São Paulo, SP",
"occurred_at": "2026-10-12T09:41:00Z"
}
],
"items": [
{ "product_name": "Notebook Vintage Vermelho", "product_image": "/uploads/produto.png", "quantity": 1 }
],
"destination_city": "São Paulo",
"destination_state": "SP"
}{
"order_id": "2b4bd680-b717-4295-a2be-8b5c6771a4d0",
"order_number": "PEDIDO-20261011-0001-V1",
"purchase_order_number": null,
"customer_name": "Maria Souza",
"customer_company": "Souza Comércio Ltda",
"customer_cnpj": "11222333000181",
"created_at": "2026-10-11T20:14:40Z",
"updated_at": "2026-10-11T20:16:39Z",
"current_status": { "code": "shipped", "letter": "S", "label": "Enviado", "color": "#8b5cf6", "stage": "main" },
"steps": [
{ "code": "pending", "letter": "O", "label": "Pendente", "completed_at": "2026-10-11T20:14:40Z", "state": "done" },
{ "code": "processing", "letter": "P", "label": "Processando", "completed_at": "2026-10-11T20:16:33Z", "state": "done" },
{ "code": "shipped", "letter": "S", "label": "Enviado", "completed_at": "2026-10-11T20:16:39Z", "state": "current" },
{ "code": "delivered", "letter": "C", "label": "Entregue", "completed_at": null, "state": "upcoming" }
],
"tracking": {
"carrier": "Correios",
"tracking_code": "BR123456789BR",
"tracking_url": "https://rastreamento.correios.com.br/app/index.php?objeto=BR123456789BR",
"estimated_delivery_at": "2026-10-20T03:00:00Z"
},
"shipments": [
{
"id": "45171534-2fbd-46ca-973a-132149a564da",
"carrier": "Correios",
"tracking_code": "BR123456789BR",
"tracking_url": "https://rastreamento.correios.com.br/app/index.php?objeto=BR123456789BR",
"estimated_delivery_at": "2026-10-20T03:00:00Z",
"public_note": "Saiu do centro de distribuição",
"shipped_at": "2026-10-11T20:16:39Z",
"created_at": "2026-10-11T20:16:39Z",
"updated_at": "2026-10-11T21:02:10Z"
}
],
"timeline": [
{ "type": "order_created", "at": "2026-10-11T20:14:40Z" },
{ "type": "status_changed", "at": "2026-10-11T20:16:33Z", "status": { "code": "processing", "letter": "P", "label": "Processando" }, "origin": "admin" },
{ "type": "shipment_created", "at": "2026-10-11T20:16:39Z", "shipment_id": "45171534-2fbd-46ca-973a-132149a564da" },
{ "type": "tracking_updated", "at": "2026-10-11T21:02:10Z", "public_note": "Saiu do centro de distribuição", "shipment_id": "45171534-2fbd-46ca-973a-132149a564da" }
]
}{
"carriers": [
{
"id": "dcd17e6e-f428-4c84-bdb9-14800393ed51",
"name": "Correios SEDEX",
"code": "correios_sedex",
"tracking_url_template": "https://rastreamento.correios.com.br/app/index.php?objetos={tracking}",
"logo_url": "/carriers/correios.svg",
"is_active": true,
"position": 2
}
],
"total": 1
}Campos da resposta (tracking-events)
foundbooleantrue quando o pedido existe. Um pedido sem remessa devolve true com events vazio.order_numberstringcarrierstringtracking_codestringrecipient_first_namestringeventsarrayevent_type, description, location e occurred_at (RFC 3339).itemsarrayproduct_name, product_image, quantity), sem preços.destination_citystringdestination_statestringCampos da resposta (order-tracking)
itemsarraytotal, page, per_page e party (type, cnpj).order_iduuidpurchase_order_numberstringcustomer_namestringcustomer_companystringcustomer_cnpjstringcurrent_statusobjectcode, letter, label (no idioma pedido), color e stage.stepsarraystate é done, current ou upcoming; completed_at é a primeira vez que o pedido chegou à etapa (nulo se não chegou ou se a etapa foi pulada).trackingobjectcarrier, tracking_code, tracking_url, estimated_delivery_at. Todos podem ser nulos.shipmentsarraypublic_note.timelinearraytype é order_created, status_changed, shipment_created ou tracking_updated. origin (admin, vendor, customer, system) diz quem fez a mudança. O nome da pessoa (actor) só aparece para usuários do painel, nunca para integração por token de app.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais ou token expirado | {"error":"invalid or expired token"} |
| 403 | Sem permissão; ou recurso de acompanhamento desligado | {"error":"insufficient privileges", ...} ou {"error":"module_disabled","module":"order-status-flow"} |
| 404 | Pedido inexistente | {"error":"order_not_found"} (tracking-events) ou {"error":"order not found"} (order-tracking) |
| 422 | Consulta inválida em order-tracking | {"error":"validation_failed","issues":[{"field":"party_type","code":"required"},{"field":"cnpj","code":"invalid"}]} |
| 500 | Falha interna | {"error":"tracking_failed","detail":"..."} |