Integrações e APIs: como evitar pedidos duplicados e falhas escondidas

O que pedir numa integração: origem dos dados, webhooks, idempotência, limites da API, tratamento de erros e uma forma segura de reprocessar falhas.

Conectores de aço alinhados com um feixe de luz lima entre eles

O pagamento foi aprovado, mas o pedido não mudou de status. Alguém tenta de novo e aparecem dois registros. Um projeto de integração precisa prever esse tipo de falha ao conectar duas APIs.

Ao avaliar a integração, teste o que acontece quando uma mensagem atrasa, se repete ou falha. Verificar apenas o caso em que tudo responde na hora não é suficiente.

Escolha quem manda em cada dado

Liste os campos que vão circular: cliente, pedido, valor, estoque e situação do pagamento. Para cada um, defina qual sistema mantém o registro principal e quem pode alterar a informação.

Se o comercial muda um endereço no CRM e o financeiro guarda uma cópia antiga, qual lado atualiza o outro? Sem essa decisão, uma sincronização nos dois sentidos pode ficar regravando alterações.

Guarde também os identificadores usados em cada sistema. O número do pedido no site pode ser diferente do código no ERP; a integração precisa reconhecer que ambos apontam para o mesmo pedido.

Avisos podem chegar de novo

Um webhook avisa outro sistema quando um evento acontece. Na documentação da Stripe, eventos podem ser entregues mais de uma vez e sua ordem não é garantida. A orientação inclui registrar eventos processados e verificar a assinatura recebida.

Essa é uma regra da Stripe, não uma promessa sobre qualquer fornecedor. Confira como cada plataforma entrega seus avisos. No seu aceite, peça um teste com repetição e outro com mensagens fora de ordem, observando o resultado de negócio.

O pedido deve continuar identificável mesmo depois de várias tentativas. Quem atende o cliente precisa enxergar o estado atual e saber se existe algo pendente.

Repetir sem cobrar duas vezes

Idempotência é conseguir repetir uma operação sem duplicar seu efeito. A API da Stripe aceita chaves de idempotência para tornar novas tentativas seguras em operações compatíveis.

Peça que o desenvolvedor explique como isso se aplica à ação que interessa: criar pedido, lançar recebimento ou enviar cobrança. A proteção precisa acompanhar o processamento do negócio; um aviso visual dizendo que o botão foi clicado não demonstra que a operação está protegida.

Inclua o teste em que o destino conclui a operação, mas a resposta não chega à origem. A nova tentativa deve reconciliar o resultado antes de criar outro registro.

Limites e falhas precisam aparecer

Uma API pode aplicar um limite de requisições. A MDN descreve o status HTTP 429 e o cabeçalho opcional Retry-After, que informa quanto esperar. Cada fornecedor define suas próprias regras.

Combine quais falhas serão tentadas novamente, qual espera será aplicada e quem será avisado quando a ação continuar pendente. Não deixe uma operação com erro parecer concluída na tela.

Peça uma rotina de conferência

No aceite, percorra um pedido normal, um repetido, uma falha temporária e uma rejeição que exige correção dos dados. Confira os registros em ambos os sistemas usando os identificadores combinados.

Peça uma lista de pendências e um procedimento para reprocessá-las sem duplicação. Os registros devem ajudar a localizar a falha sem expor senhas ou dados pessoais desnecessários. A integração estará pronta para operar quando alguém souber identificar e resolver um pedido parado, além de acompanhar os que deram certo.

Fontes

  1. Receive Stripe events in your webhook endpoint. Stripe. consultado em outubro de 2026.
  2. Idempotent requests. Stripe. consultado em outubro de 2026.
  3. 429 Too Many Requests. MDN Web Docs. consultado em outubro de 2026.

Quer aplicar isso na sua empresa?

Esse assunto faz parte do meu trabalho com Integrações e APIs. Me conte o seu cenário.