Pular para o conteúdo principal

Diagnostique pelo estado e pelo código estável

Conserve X-Request-Id, o ID da operação e o estado. Nunca registe a chave da API, o URL do destinatário, o contacto, a imagem de prova ou o corpo em bruto do webhook. Alguns endpoints devolvem um code estruturado, outros devolvem erros de validação ou um 401/403/404 vazio. Não assuma que todos os erros partilham a mesma estrutura JSON e nunca baseie decisões no texto traduzido das mensagens.

Código ou estadoCausa provávelNova tentativa e ação corretiva
401Credencial em falta, malformada, revogada ou expiradaCorrija a credencial; não repita sem alterações
403Âmbito ou permissão da conta em faltaVerifique o âmbito da operação e o ambiente; atualize as credenciais após alterações de configuração
404ID/ambiente errado ou acesso expirado/inválidoVerifique a leitura canónica autenticada e o ambiente
429Limite de frequência/quotaRespeite Retry-After; espera exponencial com variação aleatória
5xx / falha de transporteFalha temporária do serviço/redeReutilize os IDs e o conteúdo exatos, limite as tentativas e inspecione o estado canónico após um resultado incerto
returns_pausedEscritas de devolução temporariamente indisponíveisRepita mais tarde com os mesmos IDs; as leituras continuam disponíveis
idempotency_key_invalidChave de criação em falta/demasiado longaForneça uma chave estável não vazia, com um máximo de 160 caracteres
idempotency_conflictChave reutilizada para uma operação diferenteRecupere o pedido original ou utilize uma chave para uma operação verdadeiramente nova
event_id_invalidUUID em falta/vazioGere e guarde um UUID por evento
occurred_at_invalidData/hora futura do eventoCorrija o relógio/data e hora; conserve a hora real da ocorrência
return_not_eligibleEstado de saída não permite este tipo de devoluçãoA devolução de cliente exige Delivered; a RTS por entrega falhada exige DeliveryAttempted
return_state_conflictTransição inválida, dependência de prova ou evento em conflitoLeia o estado canónico e os requisitos de prova; corrija antes de repetir
return_conflictDevolução concorrente/restrição de identificadorLeia a devolução atual; não duplique trabalho físico
return_origin_invalid, return_destination_invalidInstantâneo em falta/inválidoForneça campos e coordenadas de endereço confirmado válidos
return_event_invalidDados de evento inválidosCorrija os dados com a referência da API
return_pickup_confirmation_not_allowedAcesso à recolha não permitido no estado atualInspecione o estado de autorização/entrega física antes de emitir uma nova ligação
return_proof_asset_missingA referência não aponta para um ficheiro de devolução enviadoEnvie primeiro o PNG com devolução/prova/tipo correspondentes; utilize a referência devolvida
return_proof_invalid, proof_image_invalidImagem ou campos de prova inválidosCorrija o método, a finalidade, as dimensões, o tamanho e a data/hora
return_proof_conflictUUID de prova reutilizado com conteúdo diferenteRepita a prova idêntica; nunca substitua provas imutáveis
return_destination_requiredA política RTS exige um destinoForneça o destino acordado do remetente/comerciante

Problemas de integração comuns​

A chave copiada começa por [object Object]: copie novamente a credencial da consola. Uma chave não contém ícones, marcação nem texto de apresentação final. Configure o valor completo em bruto.

O estado da entrega não avançou após submeter a prova: inspecione a sincronização da prova. O âmbito delivery:proof é separado de delivery:events. Uma prova falhada bloqueia o evento de conclusão dependente. Corrija a configuração e repita a operação original com os mesmos identificadores.

O meu correio eletrónico corresponde, mas a ligação do destinatário falha: verifique se o contacto canónico da expedição está correto e se o contacto da conta está verificado. Um contacto utilizado apenas para confirmação de endereço não altera a titularidade da expedição. O seguimento público comprova o progresso, não a autorização do destinatário.

Não existe opção de devolução: a entrega tem de estar associada e canonicamente Delivered antes de poder iniciar uma devolução de cliente.

URL de prova de devolução rejeitado: envie um PNG real através da API de ficheiros de devolução. Uma assinatura em texto ou um URL arbitrário do comerciante não satisfaz este contrato.

A assinatura do webhook falha: conserve os bytes em bruto, verifique o segredo correto da subscrição, confirme a atualidade da data/hora e evite voltar a serializar o JSON. Consulte o guia prático de webhooks.