Pular para o conteúdo
xFlow Payments

Solução

Retentativa automática

Na xFlow, a retentativa automática acontece na geração da cobrança Pix: se a adquirente escolhida não responde, a xFlow tenta de novo e, se precisar, gera a cobrança na próxima adquirente da cadeia. É o fallback de adquirente, sem mudar nada na sua integração.

Atualizado em · Equipe xFlow Payments · 4 min de leitura

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

  1. Seu sistema chama POST /api/v1/charges.
  2. A regra de roteamento da sua conta escolhe a primeira adquirente da cadeia.
  3. A xFlow pede a cobrança Pix a essa adquirente.
  4. Se ela não responde, a xFlow tenta de novo.
  5. Se continuar sem resposta, a xFlow passa para a próxima adquirente da cadeia e pede a cobrança a ela.
  6. Quando uma adquirente gera a cobrança, a API devolve 201 com pix.copyPaste e pix.qrCodeBase64.
  7. 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.

bash
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_id para localizar a chamada.
  • Webhooks. O evento transaction.pending avisa que a cobrança foi criada, e o transaction.paid avisa 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.

Continue lendo