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
readyhabilita o botão de submitelements.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
- devolva o payload da transação da Pagou intacto
- preserve
id,statusenext_action
Tratar sucesso do navegador como liberação
Sintoma:- pedidos são marcados como pagos antes do estado final confirmado por webhook
- libere apenas por estados finais confirmados pelo back-end, como
capturedoupaid
Submissões duplicadas
Sintoma:- múltiplas tentativas de pagamento são criadas a partir do mesmo clique
- 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
- 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
- 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:- mantenha o pedido pendente
- use o ID da transação armazenado
- consulte
GET /v2/transactions/{id} - deixe webhook ou reconciliação determinarem o estado final

