Dois estados de pausa
Uma requisição de pagamento pode pausar em dois pontos durante o fluxo do 3DS. Ambos são indicados pelo campostatus na resposta.
pending_ddc — coleta de dados do dispositivo
A coleta de dados do dispositivo (DDC) reúne dados de impressão digital do navegador que alguns processadores (como o Cybersource) usam para avaliar o risco da transação antes de iniciar o desafio 3DS. Se sua resposta tem status: "pending_ddc", resolva-a refazendo a requisição original de purchase ou authorization com o campo threeDsSetup.sessionId preenchido.
pending_ddc não é resolvido por POST /payment/resume. Refaça o endpoint de pagamento original (/purchase ou /authorization) com o session ID.pending_3ds — desafio necessário
Se o emissor exige que o titular se autentique, a resposta tem status: "pending_3ds" e inclui um objeto actionRequired contendo uma challengeUrl. Direcione o cliente para essa URL para completar o desafio (normalmente uma senha de uso único ou biometria do app do banco). Depois que o cliente completa o desafio, chame POST /payment/resume para continuar.
Retomar após um desafio 3DS
ChamePOST /payment/resume com o sessionId da resposta pausada. Nenhuma chave de API é necessária — o próprio sessionId atua como a credencial bearer para esta chamada. A sessão expira após 15 minutos, então o cliente precisa completar o desafio dentro dessa janela.
PaymentResponse final com status: "captured" (para uma compra) ou status: "authorized" (para uma autorização).
Usar o SDK de JS para o 3DS
Se você está coletando os dados do cartão com o SDK de JS do Therius, não precisa tratar a pausapending_3ds manualmente. Chame sdk.handleAction(result.actionRequired) e o SDK gerencia o iframe ou o popup do desafio automaticamente. Ele resolve sua promise com o PaymentResponse final assim que o cliente completa a autenticação.
pending_3ds no seu código de frontend.
Passar dados de 3DS externos
Se você executa a autenticação 3DS fora do Therius — por meio do seu próprio Merchant Plug-In (MPI) — passe o resultado da autenticação diretamente na requisição de pagamento usando os camposthreedsData. O Therius usará esses dados para contornar seu próprio fluxo de 3DS e enviar a transação pré-autenticada ao adquirente.
Preencha esses campos somente se o seu MPI externo concluiu a autenticação. Não envie dados parciais — um objeto
threedsData incompleto pode fazer o adquirente recusar a transação.
