API Reference

Para reduzir o índice de fraudes sem comprometer a taxa de conversão, a indústria de meios de pagamento desenvolveu o 3DS 2.0, um novo protocolo que integra a verificação de transações online diretamente no fluxo de pagamento, permitindo que os bancos avaliem a legitimidade das compras.

Essa solução substitui o 3DS 1.0, que exigia que os consumidores fossem redirecionados para a página do banco. Essa abordagem não apenas criava uma experiência fragmentada que podia afastar os clientes, mas também apresentava desafios para empresas internacionais, já que a adoção do sistema variava consideravelmente entre países e instituições financeiras. Nos últimos anos, para aumentar a segurança dos pagamentos, a Europa implementou uma série de regras mais rigorosas, incluindo o protocolo 3D Secure 2.0, que visa tornar o processo de autenticação mais dinâmico e seguro.

Como o 3DS funciona na prática?

O 3DS 2.0 elimina a necessidade de redirecionar o consumidor para a página do banco. O processo funciona da seguinte maneira: após preencher as informações do cartão e confirmar a compra, o processador de pagamentos coleta até 100 dados distintos sobre a transação. Esses dados podem incluir desde o número do cartão até o endereço IP do usuário. Em seguida, essas informações são enviadas ao banco emissor do cartão por meio de uma tecnologia certificada, assegurando uma integração mais fluida entre sites e aplicativos, sempre com o máximo de segurança.

Fluxograma do 3DS explicado

Abaixo temos um fluxograma com cenário de sucesso, sem desafio:

Detalhamento da Imagem:

  1. No momento em que o cliente confirma a compra, com os dados do cartão já preenchidos na tela, o método Authorization3ds() deve ser acionado para iniciar o processamento.
  2. Será necessário gerar o "code3ds", uma string com 36 caracteres. Esse código é obtido por meio do método getThreeDsCode() e deve ser informado nas chamadas às APIs do Gateway: "/payments/api/sales" e "/payments/api/sales/validate".
  3. As seguintes informações precisam ser capturadas diretamente do navegador do cliente. Esse passo é essencial para validações e é específico para implementações via JavaScript, conforme descrito na documentação.
    httpBrowserLanguage
    httpBrowserJavaEnabled
    httpBrowserJavaScriptEnabled
    httpBrowserColorDepth
    httpBrowserScreenHeight
    httpBrowserScreenWidth
    httpBrowserTimeDifference
    userAgentBrowserValue
  4. Envie para o back-end o "code3ds", os dados do navegador mencionados no passo 3 e "codeAntiFraud". Essas informações são essenciais para a validação e segurança da transação.
  5. Na chamada para a API do Gateway "/payments/api/sales", é necessário incluir o "code3ds", os dados do navegador coletados no passo 3, "urlSite3DS" e "codeAntiFraud" dentro do objeto externalAuthentication dentro de payment.
  6. Ao enviar a requisição para a API "/payments/api/sales", é essencial verificar a resposta para garantir que a transação foi processada com sucesso.

Abaixo temos um fluxograma com cenário de sucesso:

Descrição dos cenários adicionais acima:

  1. Seguir os passos dos itens 1 ao 5;
  2. Verificar se a resposta do “/payments/api/sales” retornou a resposta “threeDs”, e se retornar com o status “challenge”, então deve submeter ao cliente o desafio.
  3. No Front-end (navegador), iniciar o InitChallenge(), após isto, o cliente vai receber um popup para responder o desafio.
  4. Após a resposta do Cliente, ele irá receber um “validateToken”. Na implementação javascript ele é recebido pelo Call-back do validateChallengeCallback. Este “validateToken” deve ser enviado ao Back-end para que seja processado a API "/payments/api/sales/validate" que vai precisar dos seguintes campos: “code3ds” e “validateToken”. Dessa forma o Gateway poderá processar o pagamento;
  5. Verificar na resposta do "/payments/api/sales/validate" que irá retornar os dados do pagamento executado.