Biblioteca ENOQ
Biblioteca 3DS
Introdução à Biblioteca 3DS 2.0
Em situações específicas, além do antifraude, é necessário utilizar a Biblioteca 3DS 2.0 para transações como vendas em cartões de débito. Essa implementação é feita através de uma biblioteca JavaScript fornecida por ENOQ Pay, projetada para minimizar fraudes sem comprometer a taxa de conversão.
O que é o 3DS 2.0?
O 3DS 2.0 é uma tecnologia avançada que segue normas rigorosas de segurança, principalmente vindas da Europa. Seu objetivo é facilitar a identificação de fraudes por bancos emissores enquanto mantém a experiência do cliente fluida e segura.
Funcionamento
- Informações do cliente: O cliente preenche os dados do cartão (crédito ou débito) e confirma a compra.
- Coleta de dados: O processador de pagamentos reúne até 100 informações sobre a transação (ex.: número do cartão, endereço IP, entre outros).
- Envio ao banco: Essas informações são enviadas ao banco emissor com tecnologia certificada.
- Validação: Em alguns casos, um "desafio" é solicitado para o cliente confirmar sua identidade, garantindo máxima segurança.
Fluxos Possíveis
Para a autenticação 3DS, há dois cenários principais:
- Sem desafio: O banco emissor não solicita nenhuma ação adicional do cliente.
- Com desafio: O cliente precisa validar a transação, como confirmar um código enviado ao celular.

Exemplo de implementação
Confira um exemplo de implementação do 3DS ENOQ:
https://cdn.sopague.com.br/POC/POCs-3DS-SOPAGUE-EXEMPLOS-v-1-1.zip
No arquivo ZIP, você encontrará duas pastas:
-
POC_3DS_EXPLAIN- Apresenta, de forma didática e passo a passo, a jornada de implementação do 3DS.
- Nesse exemplo, você interagirá com a aplicação pelo navegador e enviará algumas requisições à API utilizando Postman ou Insomnia.
- O objetivo é facilitar a compreensão das etapas, dos dados envolvidos e das responsabilidades de cada componente da integração.
-
POC_3DS_SOPAGUE- Apresenta uma implementação mais próxima de um cenário real de uso.
- O fluxo de integração está automatizado: basta configurar as credenciais do ambiente de homologação, preencher os dados do checkout e, quando solicitado, concluir a autenticação 3DS no aplicativo do banco emissor.
Uso e finalidade demonstrativa
Esses códigos precisam ser usados em uma IDE, como o Visual Studio Code.
Os códigos têm finalidade exclusivamente demonstrativa e educacional. Eles foram desenvolvidos para apresentar a integração de maneira simples e objetiva e não devem ser considerados uma implementação pronta para produção.
A adaptação para a arquitetura do integrador, assim como validações, tratamento de erros, observabilidade, proteção de credenciais, conformidade e demais boas práticas de desenvolvimento e segurança, é de responsabilidade do integrador.
Ambiente de homologação
Recomendamos utilizar exclusivamente credenciais e cartões de teste do ambiente de homologação durante a avaliação dos exemplos.
Coleta de Dados do Navegador
Antes de processar o pagamento, a biblioteca coleta informações do navegador do cliente, que são enviadas ao endpoint /payments/3ds. Os dados necessários incluem:
- Cabeçalho Accept do navegador (
httpAcceptBrowserValue) — string - Conteúdo aceito (
httpAcceptContent) — string - Idioma do navegador (
httpBrowserLanguage) — string - Suporte a Java (
httpBrowserJavaEnabled) — boolean - Suporte a JavaScript (
httpBrowserJavaScriptEnabled) — boolean - Profundidade de cor (
httpBrowserColorDepth) — string - Resolução da tela (
httpBrowserScreenHeightehttpBrowserScreenWidth) — string - Diferença de fuso horário (
httpBrowserTimeDifference) — string - Agente do navegador (
userAgentBrowserValue) — string - Endereço IP do cliente (
ipAddress) — string
É necessário obter alguns dados através do navegador do cliente para enviar para o endpoints de pagamento /payments/3ds, tais como:
const browserData = {
httpAcceptBrowserValue: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
httpAcceptContent: "*/*",
httpBrowserLanguage: navigator.language || navigator.userLanguage,
httpBrowserJavaEnabled: navigator.javaEnabled(),
httpBrowserJavaScriptEnabled: true,
httpBrowserColorDepth: String(screen.colorDepth),
httpBrowserScreenHeight: String(window.innerHeight),
httpBrowserScreenWidth: String(window.innerWidth),
httpBrowserTimeDifference: String(new Date().getTimezoneOffset()),
userAgentBrowserValue: navigator.userAgent,
ipAddress: "177.200.69.102"
};Tipos esperados
Envie httpBrowserJavaEnabled e httpBrowserJavaScriptEnabled como booleanos, sem aspas e sem converter para "Y" ou "N". Os campos de profundidade de cor, resolução e fuso horário devem ser enviados como strings. Substitua o IP do exemplo pelo endereço IP real do cliente, obtido pela aplicação ou pelo backend.
Além disso, a biblioteca 3DS irá gerar um "code3ds" que também deve ser enviado ao backend. Complementar ao serviço de 3DS, também deve ser implementada a biblioteca do antifraude.
Benefícios do 3DS 2.0
- Maior segurança: Reduz o risco de fraudes em transações online.
- Experiência otimizada: Integração fluida entre sites e aplicativos.
- Conformidade internacional: Alinhado às normas de segurança mais rigorosas.
Dicas para Desenvolvedores
- Certifique-se de que o ambiente de integração seja seguro e compatível.
- Realize testes abrangentes em cenários comuns e raros.
- Consulte atualizações da biblioteca para garantir que está usando a versão mais recente.
Para dúvidas ou suporte, entre em contato com a equipe técnica da ENOQ Pay.
