Retentativa de pagamento, na xFlow Payments, é o que acontece quando a adquirente escolhida não responde ao pedido de uma cobrança Pix: a xFlow tenta de novo e, se precisar, gera a cobrança na próxima adquirente da cadeia. Para o seu sistema, nada muda. Você faz a mesma chamada e recebe uma cobrança pronta, com QR Code e copia e cola. É o que o mercado também chama de fallback de adquirente.
A retentativa trabalha junto com o roteamento de pagamentos: o roteamento escolhe a primeira adquirente, e a retentativa define o que fazer se ela falhar. As duas fazem parte da orquestração de pagamentos da xFlow, que conecta a sua operação a 11 adquirentes por uma API só.
Retentativa de pagamento: dois usos da mesma expressão
A expressão aparece em dois contextos diferentes, e vale separar:
| Retentativa de cobrança recusada | Retentativa da xFlow (fallback de adquirente) | |
|---|---|---|
| Quando acontece | Depois que o pagamento foi recusado | Antes de o pagador receber o QR Code |
| O que é repetido | A cobrança no meio de pagamento do cliente | O pedido de geração da cobrança Pix |
| Uso típico | Assinaturas e recorrência no cartão | Pix por API, com várias adquirentes |
| Na xFlow | Não se aplica: a API trabalha com Pix | Automática, em toda cobrança Pix |
A retentativa da xFlow não cobra o pagador de novo. Ela atua num ponto anterior: fazer a cobrança ser gerada mesmo quando uma adquirente não responde.
Como funciona o fallback de adquirente na xFlow
- Seu sistema chama
POST /api/v1/charges. - A regra de roteamento da sua conta escolhe a primeira adquirente da cadeia.
- A xFlow pede a cobrança Pix a essa adquirente.
- Se ela não responde, a xFlow tenta de novo.
- Se continuar sem resposta, a xFlow passa para a próxima adquirente da cadeia e pede a cobrança a ela.
- Quando uma adquirente gera a cobrança, a API devolve
201compix.copyPasteepix.qrCodeBase64. - Se nenhuma adquirente da cadeia gerar a cobrança, a API responde
502 charge_failed.
O pagador vê um único QR Code: o da cobrança que a API devolveu. Ele não percebe que houve troca de adquirente.
Quando a retentativa entra em ação
A retentativa é acionada quando a adquirente não entrega a cobrança. Na prática, isso acontece em três situações:
- A adquirente está fora do ar. O pedido não recebe resposta.
- A adquirente está lenta demais. A resposta não chega dentro do tempo de espera definido para aquela adquirente na cadeia.
- A adquirente devolve erro. A cobrança não é gerada.
Nos três casos, o tratamento é o mesmo: nova tentativa e, se precisar, a próxima adquirente da cadeia. A ordem da cadeia vem da regra de roteamento da sua conta.
Retentativa e idempotência
A retentativa da xFlow cuida da falha entre a xFlow e a adquirente. Do seu lado, também pode haver falha: uma conexão que cai entre o seu servidor e a API, por exemplo. Para esse caso, use o Idempotency-Key, explicado em detalhe no guia de idempotência em API de pagamento.
curl -X POST https://app.xflowpayments.com/api/v1/charges \
-u "pk_live_...:sk_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-1234" \
-d '{"amountCents":1990,"customer":{"name":"Cliente","email":"cliente@exemplo.com","document":"00000000000"}}'Se o seu sistema repetir a chamada com a mesma chave e o mesmo corpo, a API devolve a mesma cobrança em vez de gerar outro Pix. Com a mesma chave e um corpo diferente, a resposta é 409 idempotency_conflict. Use uma chave única por pedido, como o número do pedido no seu sistema.
O que a retentativa cobre e o que não cobre
| Situação | O que acontece |
|---|---|
| A adquirente não responde ao pedido da cobrança | A xFlow tenta de novo e, se precisar, usa a próxima da cadeia |
| Nenhuma adquirente da cadeia gera a cobrança | A API responde 502 charge_failed; o seu sistema pode tentar de novo com o mesmo Idempotency-Key |
| O pagador não paga | A cobrança fica pending e depois expired; a retentativa não se aplica |
| Estorno | É pedido à adquirente que gerou a cobrança; se ela não oferece estorno pela API, a resposta é 422 refund_not_supported |
| Excesso de requisições do seu lado | A API responde 429 rate_limited; espere o tempo do cabeçalho retry-after |
Como acompanhar a operação
- Logs da API. Em Integrações > Logs da API, cada requisição autenticada aparece com status, duração e código de erro, por 30 dias. Toda resposta traz um
request_idpara localizar a chamada. - Webhooks. O evento
transaction.pendingavisa que a cobrança foi criada, e otransaction.paidavisa que ela foi paga e conferida na adquirente. Veja o guia de webhook Pix. - Página de status. A página de status mostra a situação da API, dos webhooks e do painel.
Retentativa em operações de alto volume
Quanto maior o volume, maior o custo de uma adquirente fora do ar. Sem fallback, cada minuto de indisponibilidade é um minuto sem gerar cobranças. Com a cadeia de contingência, a próxima adquirente assume e a venda continua. O artigo sobre failover de pagamentos mostra como desenhar a sua integração para conviver com quedas de adquirente.
Perguntas frequentes
O que é retentativa de pagamento?
É tentar de novo uma operação de pagamento que não deu certo na primeira vez. Na xFlow, a retentativa acontece na geração da cobrança Pix: se a adquirente não responde, a xFlow tenta de novo e, se precisar, passa a cobrança para a próxima adquirente da cadeia.
O que é fallback de adquirente?
É trocar de adquirente quando a escolhida falha. Na xFlow, cada regra de roteamento tem uma cadeia de adquirentes em ordem, e a cobrança Pix é gerada na próxima da cadeia quando a anterior não responde.
A retentativa pode cobrar o cliente duas vezes?
Não. A retentativa acontece antes de o pagador receber o QR Code. A API devolve uma cobrança, e o pagador paga essa cobrança. Para os retries do seu lado, envie um Idempotency-Key único por pedido.
Preciso fazer alguma coisa na minha integração para ter retentativa?
Não. A retentativa é feita do lado da xFlow, com a mesma chamada de criação de cobrança. O recomendado é sempre enviar o Idempotency-Key e tratar o erro 502 charge_failed, que indica que a cobrança não pôde ser gerada.
A retentativa vale para cartão?
Hoje a API da xFlow trabalha com Pix: cobrança, estorno total e saque. A retentativa descrita aqui vale para a geração da cobrança Pix.