Idempotency-Key. Com ele, um retry — timeout, queda de rede, duplo clique — nunca cria o recurso duas vezes nem move dinheiro duas vezes.
Como funciona
- Envie a mutação com um
Idempotency-Keyúnico por operação de negócio (recomendamos um UUID v4 gerado por você). - A API grava a chave com o hash do payload antes de executar o comando.
- Resultados possíveis:
Regras de ouro
- Gere a chave antes de enviar e guarde-a até obter resposta definitiva. Se o seu processador crashar no meio de um request, o retry com a mesma chave conclui com segurança.
- Nova intenção de negócio = nova chave. Cobrar o cliente de novo é uma nova operação, com nova chave.
- Não altere o payload em retries. Precisa corrigir o valor? Use uma nova chave (é uma nova intenção).
- Trate
IDEMPOTENCY_IN_PROGRESScom espera curta + retry — significa que a primeira chamada está viva, não morta.
Onde a chave é obrigatória
Todas as mutações financeiras e de catálogo aceitamIdempotency-Key; nos comandos de movimentação de dinheiro (payment intents, payouts, refunds) ela é exigida. O Idempotency-Key é escopado à sua conta (tenant): chaves de merchants diferentes nunca colidem.