Idempotency-Key. Esta receita assume que
você já a envia — se não, comece por Idempotência.
A matriz
A regra por trás dela: repita quando o
type for api_error ou rate_limit_error. Não repita
quando for invalid_request_error, authentication_error, permission_error ou not_found_error.
O caso que justifica tudo
502 provider_unavailable é o motivo de a Idempotency-Key existir.
O provedor não respondeu. Pode ser que a cobrança tenha sido criada lá e a resposta se perdido no
caminho — você não tem como saber. Repetir sem chave criaria a segunda cobrança. Com a mesma chave,
você recebe a primeira, com Idempotent-Replayed: true.
Backoff exponencial
Quando desistir
Cinco tentativas é um teto razoável para uma chamada síncrona, com o comprador esperando na tela. Depois disso, mostre uma mensagem honesta e mande o pedido para uma fila de retentativa mais lenta — aIdempotency-Key continua válida por 24 horas, e é ela que torna a retomada segura horas
depois.
O que registrar
Em cada tentativa que falhou, registrecode, type, o status HTTP, a Idempotency-Key e o
horário. Sem a chave e o horário no log não há como sabermos qual requisição foi a sua quando você
abrir um chamado.
Veja também
Idempotência
Como a chave funciona e o que serve de chave.
Erros
O catálogo completo de códigos.
Ficou algo de fora? Escreva para suporte@usevext.com. Se o assunto for uma chamada específica, informe o horário dela; se for uma entrega de webhook, informe o
X-Vext-Delivery — é por ele que localizamos a tentativa, a resposta do seu servidor e o horário.