Idempotência
Repita uma criação sem duplicar nada, pelo idempotencyKey das vendas ou pelo cabeçalho Idempotency-Key das outras rotas.
Rede cai, servidor reinicia, a resposta se perde. Para repetir uma criação sem criar duas vezes, mande uma chave de idempotência: um texto seu, único por operação (o número do pedido serve bem).
Existem dois jeitos, conforme a rota:
| Rota | Onde vai a chave | Por quanto tempo vale |
|---|---|---|
Vendas (POST /api/v1/payments) |
No corpo: "idempotencyKey": "pedido-42" (até 255 caracteres) |
Para sempre (única por conta) |
Cobranças, links, subcontas, webhooks (todo POST) |
No cabeçalho: Idempotency-Key: pedido-43 (1 a 255 caracteres) |
24 horas |
Nas vendas
{ "method": "pix", "currency": "BRL", "amountCents": 15000, "idempotencyKey": "pedido-42", "payer": { … } }
- A primeira chamada cria a venda e responde 201.
- Repetir com o mesmo
idempotencyKeydevolve a venda original com 200 e"replayed": true. Nada novo é criado nem cobrado, mesmo que o corpo seja diferente: o que vale é a chave. - A chave é única por conta. Usada numa venda de outra loja da mesma conta, a resposta é 409.
Nas outras rotas
curl -X POST https://api.confidoscm.com/api/v1/charges \
-H "X-API-Key: $CONFIDO_API_KEY" -H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-43" \
-d '{ "amountCents": 25000, "method": "pix", "dueDate": "2026-12-01", "customer": { "name": "Joana", "email": "joana@exemplo.com" } }'
- Repetir com a mesma chave e o mesmo corpo devolve a mesma resposta (mesmo status, mesmo corpo), com o cabeçalho
Idempotent-Replayed: true. - A mesma chave com outro corpo responde 409
idempotency_key_reused. - Se a primeira chamada ainda está rodando, a repetição responde 409
idempotency_request_in_progress: espere um pouco e repita. - Se a primeira chamada falhou, a chave é liberada e a repetição tenta de novo.
- A chave conta o método, o caminho, o corpo e o
Confido-Account.
Quando repetir
| Resposta | Repetir? |
|---|---|
| Sem resposta (tempo esgotado, conexão caiu) | Sim, com a mesma chave |
429, 502, 503, 504 |
Sim, com a mesma chave, esperando alguns segundos (dobre a espera a cada vez) |
500 |
Sim, uma ou duas vezes, com a mesma chave |
400, 401, 403, 404, 409, 422 |
Não: corrija o pedido antes |
Uma venda nova é uma chave nova. Reaproveitar a chave de um pedido anterior devolve a venda daquele pedido. Pelo
mesmo motivo, para tentar de novo uma venda que voltou declined ou failed, use uma chave nova
(pedido-42-tentativa-2).