Homologação
A homologação é a etapa final de validação da sua integração com a Abbiamo antes de entrar em produção. Consiste em uma reunião guiada onde os 5 fluxos operacionais da integração são simulados em ambiente de testes para garantir que tudo está funcionando corretamente.
Pré-requisitos (antes da reunião)
Seção intitulada “Pré-requisitos (antes da reunião)”Dois pontos são obrigatórios antes de agendar a reunião de homologação. Se algum deles não estiver cumprido, a reunião será reagendada.
1. Webhooks cadastrados
Seção intitulada “1. Webhooks cadastrados”Você deve ter cadastrado os dois webhooks abaixo via API antes da reunião. Sem eles, não é possível receber pedidos nem cancelamentos.
| Webhook | Descrição | Documentação |
|---|---|---|
delivery_request | Recebe o pedido quando a Abbiamo solicita a coleta | ver payload |
cancellation_request | Recebe o cancelamento quando o embarcador cancela o pedido | ver payload |
2. Evidência de teste realizado no dia
Seção intitulada “2. Evidência de teste realizado no dia”Você deve enviar ao menos uma evidência de que testou sua integração no dia da reunião — print, log, registro de chamada de endpoint ou similar.
Preparação do ambiente de testes
Seção intitulada “Preparação do ambiente de testes”Com os pré-requisitos confirmados, verifique se seu ambiente de testes está operacional e com pedidos disponíveis para simular os fluxos. Serão usados 5 pedidos — um por fluxo.
Os 5 fluxos validados
Seção intitulada “Os 5 fluxos validados”A referência oficial dos fluxos está em: Carrier Homologation
Fluxo 1 — Padrão (Standard)
Seção intitulada “Fluxo 1 — Padrão (Standard)”O fluxo esperado na grande maioria das entregas. Um pedido é enviado e percorre todos os status obrigatórios.
Status obrigatórios (na ordem operacional):
| Status | Endpoint |
|---|---|
| Transportadora confirmou | /confirmed |
| Em rota | /start-delivery |
| Sucesso na entrega | /successful |
| Falha na entrega | /failed |
| Falha na solicitação | /order-failed |
| Devolvido | /returned |
Fluxo 2 — Nova Requisição (New Request)
Seção intitulada “Fluxo 2 — Nova Requisição (New Request)”Utilizado quando a Abbiamo precisa cancelar a entrega e fazer uma nova solicitação para o mesmo pedido.
Quem cancela: a Abbiamo, pelo dashboard.
Sua integração deve ser capaz de receber o cancelamento e aceitar um novo delivery_request para o mesmo pedido sem erros.
Fluxo 3 — Cancelamento (Cancellation)
Seção intitulada “Fluxo 3 — Cancelamento (Cancellation)”Utilizado quando a transportadora perde ou extravia o pedido.
Quem cancela: a própria transportadora.
A sequência obrigatória é:
/failed → /canceledFluxo 4 — Devolução (Return)
Seção intitulada “Fluxo 4 — Devolução (Return)”Fluxo de retorno do item ao remetente após falha na entrega.
/failed → /returning-delivery → /returnedFluxo 5 — Segunda Tentativa (Second Attempt)
Seção intitulada “Fluxo 5 — Segunda Tentativa (Second Attempt)”Nova tentativa de entrega após falha na primeira.
/failed → /start-delivery → /successfulValidações técnicas
Seção intitulada “Validações técnicas”Durante a execução dos fluxos, os seguintes pontos são verificados:
1. Campo event_at com precisão de milissegundos
Seção intitulada “1. Campo event_at com precisão de milissegundos”Todas as atualizações de status devem incluir event_at com hora, minuto, segundo e milissegundos.
| ✅ Correto | ❌ Incorreto |
|---|---|
2024-01-15T14:30:45.123Z | 2024-01-15T14:30:45Z |
Se dois eventos chegarem dentro do mesmo segundo sem precisão de milissegundos, a ordenação fica ambígua e ocorre erro.
2. Cada endpoint chamado apenas uma vez por evento
Seção intitulada “2. Cada endpoint chamado apenas uma vez por evento”Cada endpoint de atualização de status deve ser chamado uma única vez por evento. Chamadas duplicadas (2× ou mais no mesmo endpoint para o mesmo pedido) indicam problema de retry sem idempotência na implementação.
3. Fluxo de status em ordem operacional
Seção intitulada “3. Fluxo de status em ordem operacional”Os status devem ser enviados na sequência lógica da operação. Enviar /successful antes de /start-delivery, por exemplo, gera inconsistência no rastreio do cliente final.
Checklist
Seção intitulada “Checklist”Antes da reunião
Seção intitulada “Antes da reunião”- Webhook
delivery_requestcadastrado e testado - Webhook
cancellation_requestcadastrado e testado - Evidência de teste realizado no dia enviada para a Abbiamo
- Ambiente de testes com pedidos disponíveis
Durante a reunião
Seção intitulada “Durante a reunião”- Fluxo 1 (Padrão):
/confirmedchamado dentro de 30 min após envio - Fluxo 1 (Padrão): todos os status obrigatórios atualizados na ordem correta
- Fluxo 2 (Nova Requisição): Abbiamo cancelou pelo dashboard; novo
delivery_requestaceito sem erros - Fluxo 3 (Cancelamento): transportadora enviou
/failed+/canceled - Fluxo 4 (Devolução): sequência
/failed → /returning-delivery → /returnedvalidada - Fluxo 5 (Segunda Tentativa): sequência
/failed → /start-delivery → /successfulvalidada -
event_atcom milissegundos em todas as atualizações - Nenhum endpoint chamado mais de uma vez por evento