Idempotency-Key em qualquer requisição que muda estado
(POST e DELETE, em todos os recursos da API) e a Chargefy garante que a
operação roda uma única vez.
O header é sempre opcional: sem ele, a requisição é processada normalmente,
sem nenhuma mudança de comportamento. A chave é enviada só pelo header — não
existe parâmetro de corpo para idempotência.
Como funciona
- Na primeira requisição com uma chave, a operação roda normalmente e a resposta é guardada.
- Uma repetição com a mesma chave e o mesmo corpo não executa de novo:
devolve a resposta guardada, com o header
Idempotent-Replayed: true. - A chave é única por organização e por ambiente (
livemode). A mesma chave em test mode e em produção são chaves distintas. - Chaves expiram após 24 horas. Depois disso a mesma chave pode ser reusada.
- Só vale para
POSTeDELETE.GETjá é idempotente e ignora o header.
Gerando a chave
Use um valor único por operação lógica — um UUID v4 é a escolha mais comum. Em uma migração de assinaturas, uma boa chave é o id da assinatura no sistema de origem, para que reimportar a mesma assinatura nunca a duplique.Regras e erros
Até 255 caracteres. Definido por você, único por operação.
| Situação | Resultado |
|---|---|
| Mesma chave, mesmo corpo, operação já concluída | 200 com a resposta original + Idempotent-Replayed: true. |
| Mesma chave, corpo diferente | 400 idempotency_key_reused. Uma chave só pode ser usada com os mesmos parâmetros. |
| Mesma chave, requisição anterior ainda em andamento | 409 idempotency_key_in_progress. Tente novamente em instantes. |
| Chave com mais de 255 caracteres | 400 idempotency_key_invalid. |
Boas práticas
- Reenvie a mesma chave ao fazer retry de uma requisição que pode ter chegado ao servidor.
- Gere uma chave nova para cada operação distinta.
- Combine idempotência com retry por backoff em
429e5xx.

