Atualizar status manualmente
Atualiza manualmente o status de entrega de um pedido para registrar eventos fora do fluxo automático da transportadora.
Conceito relacionado
Entenda o conceito no guia: Envio (Delivery).
Header obrigatório. Toda chamada exige o header x-abbiamo-seller-group-key.
Preencha-o no canto superior direito desta página ou veja como obter a sua chave.
Rate limit: 300 requisições por minuto por chave. Acima disso a API retorna HTTP 429.
Quando usar
Use esta chamada para registrar manualmente um evento que aconteceu fora do fluxo automático da transportadora — por exemplo, uma entrega confirmada presencialmente ou uma falha registrada por um operador.
- A alteração é processada de forma assíncrona: a resposta
200confirma que o evento foi aceito. - No sistema, o status aparece como atualizado manualmente, identificando o token de API que originou a mudança.
event_at
Regras do event_at:
- Deve estar no formato RFC 3339 (ISO 8601 com timezone). Ex.:
2026-06-16T18:37:12.000Zou2026-06-16T15:37:12.000-03:00 - Não pode ser anterior à data de criação da entrega (erro
EVENT_AT_BEFORE_DELIVERY_CREATED_AT) - Não pode ser igual ao
event_atde um evento anterior da mesma entrega — eventos sequenciais precisam de timestamps distintos - Deve refletir quando o evento realmente ocorreu, não o momento da chamada
Entrega existente vs. criar entrega
A chamada cobre os dois cenários automaticamente:
- Pedido com entrega ativa — o status da entrega atual é atualizado.
carrierdeve ser igual ao da entrega existente; caso contrário a API responde HTTP 400 (CARRIER_MISMATCH). - Pedido sem entrega — uma entrega é criada já com o status informado usando o
carrierenviado.
Exemplo — sucesso direto em frota própria
Pedido que ainda não foi despachado: envie status=SUCCESSFUL + carrier=PRIVATE-FLEET e a entrega nasce concluída.
PUT /seller-group/v1/orders/{order_id}/status
x-abbiamo-seller-group-key: <sua-chave>
Content-Type: application/json
{
"status": "SUCCESSFUL",
"sub_status": "DELIVERED",
"carrier": "PRIVATE-FLEET",
"event_at": "2026-06-16T18:37:12.000Z",
"observation": "Entrega confirmada pelo operador"
}Resposta de sucesso:
{ "success": true }O pedido passa para status_name: SUCCESSFUL, last_delivery_type: PRIVATE-FLEET.
Valores válidos
status / sub_status
Por enquanto este endpoint aceita apenas status: "SUCCESSFUL" com sub_status: "DELIVERED".
status | sub_status | Descrição |
|---|---|---|
SUCCESSFUL | DELIVERED | Entrega realizada com sucesso |
carrier
| Valor | Descrição |
|---|---|
PRIVATE-FLEET | Frota própria |
Authorization
sellerGroupKey In: header
Path Parameters
Identificador único do pedido
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/seller-group/v1/orders/string/status" \ -H "Content-Type: application/json" \ -d '{ "status": "SUCCESSFUL", "sub_status": "DELIVERED", "event_at": "2026-06-16T18:37:12.000Z", "observation": "Entregue na portaria" }'{
"success": true
}{
"code": "INVALID_STATUS",
"message": "Status XPTO is not allowed for manual update"
}{
"message": "Unauthorized"
}{
"code": "INVOICE_NOT_FOUND_OR_NOT_IN_SELLER_GROUP",
"message": "Invoice not found or not belongs to seller group",
"status": 404
}