Pular para o conteúdo

Idempotência: como evitar cobrança duplicada e pedidos repetidos

O cliente clicou duas vezes em "pagar" e foi cobrado duas vezes. Idempotência é a técnica que impede isso — e todo sistema com pagamentos precisa dela.

Por Equipe We Codex3 min de leitura

A internet oscila. O botão é clicado duas vezes. O app tenta de novo depois de um erro de rede. O webhook chega repetido. Em todos esses casos, a mesma operação pode ser executada mais de uma vez — e, com dinheiro envolvido, isso é grave.

O que é idempotência

Uma operação é idempotente quando executá-la várias vezes tem o mesmo efeito que executá-la uma vez. Consultar um pedido é naturalmente idempotente. Criar um pagamento não é — a menos que você o torne.

A chave de idempotência

O cliente gera um identificador único para cada intenção ("pagamento do pedido 123, tentativa de agora") e o envia junto. O servidor guarda o resultado associado à chave. Se a mesma chave chegar de novo, devolve o resultado salvo em vez de cobrar outra vez.

http
POST /pagamentos
Idempotency-Key: 7c9e6679-7425-40de-944b-e07fc1f90ae7

Onde aplicar

Complementos no front

Desabilite o botão após o clique e mostre que está processando (Formulários que convertem: validação em tempo real sem irritar o usuário). Retentativas automáticas só para operações idempotentes (Gerenciando o erro 429 Too Many Requests: exponential backoff e retry no cliente).

No banco

Restrições de unicidade e transações garantem que duas requisições simultâneas não passem ao mesmo tempo (Transações no banco: quando duas operações precisam acontecer juntas).

A We Codex constrói fluxos de pagamento confiáveis em e-commerces e sistemas. Fale com a gente.

  • Idempotência
  • Pagamentos
  • APIs
  • Backend
CompartilharWhatsAppLinkedIn

Resolver de vez, com quem faz isso todo dia

Precisa de uma API ou integração que não caia quando o negócio crescer?

Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.