Pincode de coleta — fluxo loja para motorista
Passo a passo do modelo tradicional onde a transportadora é dona do PIN e o operador da loja repassa o código ao motorista.
Quando esse fluxo se aplica?Este é o fluxo tradicional de pincode de coleta, controlado por
pickup_verification.pincode_owner = "carrier"no webhook Delivery request. A transportadora gera o PIN como parte da operação dela; o dashboard da filial apenas ecoa o código para que o operador da loja possa repassar ao motorista.É o comportamento padrão de toda integração de transportadora que suporta pincode de coleta hoje — não exige opt-in. Para o modelo alternativo, em que a Abbiamo é dona do PIN, veja Pincode de coleta — fluxo motorista para loja.
Por que a transportadora gera o PIN nesse modelo?Esse é o jeito clássico: a transportadora gera o código internamente, mostra pro motorista no app dela e valida quando o motorista digita. A Abbiamo só recebe o código pra exibir no dashboard da filial, ajudando o operador da loja a passar pro motorista no balcão.
É o caminho com menos integração nova — qualquer transportadora que já fazia pincode de coleta funciona aqui sem mudar nada. Em contrapartida, cada transportadora segue com sua própria regra (formato do código, quantas tentativas o motorista pode fazer, etc.), e a filial não tem como liberar administrativamente uma coleta no dashboard — esse controle fica todo do lado da transportadora. Quem precisa de regras unificadas ou liberação centralizada deve olhar o fluxo motorista para loja.
Quem valida o quê
| Ator | Responsabilidade |
|---|---|
| Transportadora | Gera o PIN. Ecoa o código de volta pra Abbiamo no primeiro evento de status. Valida o PIN digitado pelo motorista dentro do próprio app. |
| Abbiamo | Recebe o PIN da transportadora e exibe na tela do pedido da filial. Não valida o PIN nesse modelo. |
| Operador da loja | Lê o PIN no dashboard e repassa para o motorista (geralmente verbalmente no balcão). |
| Motorista | Recebe o PIN do operador e digita no app da própria transportadora. |
Passo a passo
- Criação do pedido. A filial cria a entrega pela Orders API. A integração filial × transportadora já está configurada pela Abbiamo com
pickup_verification.pincode = trueepickup_verification.pincode_owner = "carrier". - Despacho. A Abbiamo envia o webhook Delivery request pra transportadora. O bloco
logistic_data.pickup_verificationtrazpincode: trueepincode_owner: "carrier". Nenhumpincode_valueé enviado — a própria transportadora vai gerar o código. - A transportadora gera o PIN. Internamente, nos sistemas dela.
- A transportadora ecoa o PIN. No próximo evento de status enviado depois que o motorista se dirige ao ponto de coleta — tipicamente At pickup point ou Collecting delivery — a transportadora inclui o campo
collect_verification_codeno payload. Eventos de status aceitos para carregar esse campo: - Dashboard exibe o PIN. A Abbiamo persiste o código e mostra no sidepanel do pedido dentro do dashboard da filial.
- Repasse na loja. O motorista chega. O operador lê o PIN no dashboard e repassa pro motorista (verbalmente no balcão é o caso mais comum).
- Motorista digita no app da transportadora. A validação acontece dentro do sistema da transportadora — a Abbiamo não participa nesse momento.
- Coleta confirmada. Quando a transportadora aceita o código, ela envia um evento de status
collectedpra Abbiamo, e a entrega transita praCOLLECTED.
Exemplos de payload
Delivery request da Abbiamo pra transportadora (bloco relevante):
{
"event_type": "DELIVERY_REQUEST",
"logistic_data": {
"pickup_verification": {
"pincode": true,
"pincode_owner": "carrier"
}
}
}Atualização de status da transportadora ecoando o PIN de volta pra Abbiamo (exemplo no at-pickup-point):
{
"delivery_id": "851dc274-e090-4881-8f3c-5b660cecf059",
"event_at": "2026-05-12T15:10:00.000Z",
"collect_verification_code": "123456"
}Quando pickup_verification.pincode = false (ou o bloco está ausente), a transportadora não deve enviar collect_verification_code nos eventos de status — o campo é ignorado e só polui auditoria.
Dica de implementaçãoA transportadora deve persistir a decisão de "envia o código ou não" por
delivery_idno momento em que recebe o webhook Delivery request. Isso evita esquecer de enviar o código num evento posterior, ou enviar em uma entrega que não habilitou pincode.
Erros comuns
- Enviar
collect_verification_codeem toda entrega. Só envie quando o Delivery request marcoupickup_verification.pincode = true. Caso contrário o campo é ignorado. - Validação só do lado da transportadora — a Abbiamo não ajuda se o operador disser o código errado. Se o operador lê errado e o motorista digita incorretamente, o app da transportadora rejeita. A Abbiamo só percebe indiretamente (o evento
collecting-deliverynão chega). - Ecoar só no
collected. Ecoe o PIN noat-pickup-pointoucollecting-delivery— quanto antes melhor. Quando ocollectedchega, o eco no dashboard já perdeu utilidade pro operador.
Referências relacionadas
Updated 2 days ago
