Pular para o conteúdo principal
Use esta página enquanto estiver validando o checkout antes de produção.

Checklist de sandbox

  • carregue https://js.pagou.ai/payments/v3.js
  • chame Pagou.setEnvironment("sandbox")
  • use credenciais sandbox públicas e secretas
  • crie transações contra https://api-sandbox.pagou.ai
  • valide webhooks antes de tratar sucesso no navegador como produção-ready

O que testar

Submit básico de cartão

Confirme que:
  • o campo de cartão monta
  • ready habilita o botão de submit
  • elements.submit() chega ao seu back-end
  • seu back-end devolve o payload da transação

Fluxo com 3DS obrigatório

Confirme que:
  • o navegador recebe next_action
  • o tratamento automático abre o modal 3DS quando habilitado
  • o tratamento manual funciona por Pagou.handleNextAction(...)
  • seu checkout permanece pendente até confirmação do back-end

Interrupção do challenge

Confirme o comportamento da sua UI quando:
  • o cliente fecha o modal
  • o challenge expira por timeout
  • o navegador perde a resposta final

Finalização primeiro por webhook

Confirme que sua máquina de estados do pedido se comporta corretamente quando o webhook finaliza o pagamento antes de a UI do checkout terminar de atualizar.

Erros comuns

O back-end remove next_action

Sintoma:
  • a transação chega a three_ds_required
  • o navegador não continua o challenge
Correção:
  • devolva o payload da transação da Pagou intacto
  • preserve id, status e next_action

Tratar sucesso do navegador como liberação

Sintoma:
  • pedidos são marcados como pagos antes do estado final confirmado por webhook
Correção:
  • libere apenas por estados finais confirmados pelo back-end, como captured ou paid

Submissões duplicadas

Sintoma:
  • múltiplas tentativas de pagamento são criadas a partir do mesmo clique
Correção:
  • desabilite o botão de submit enquanto elements.submit() estiver executando
  • mantenha o formulário travado durante o challenge

Fluxo manual esquece de continuar requires_action

Sintoma:
  • o checkout trava após o submit quando o auto modal está desabilitado
Correção:
  • verifique result.status === "requires_action"
  • chame Pagou.handleNextAction(result.transaction.next_action)

Divergência de origin ou ambiente

Sintoma:
  • criação de sessão ou tokenização falha sem clareza
Correção:
  • use o ambiente correto tanto no script quanto no host da API
  • envie a origem real do checkout ao criar o Elements

Estratégia de recuperação

Quando o resultado do checkout for incerto:
  1. mantenha o pedido pendente
  2. use o ID da transação armazenado
  3. consulte GET /v2/transactions/{id}
  4. deixe webhook ou reconciliação determinarem o estado final

Páginas relacionadas