DataOnly com E-Rede

O Data Only é um campo opcional que pode ser utilizado para contribuir para o banco de dados da bandeira e emissor, melhorando a performance da autenticação. As transações do tipo Data Only fazem parte do protocolo 3DS, mas excluem a etapa de pedido de autenticação por desafio. Assim, o fluxo de transação do Data Only sempre será sem atrito (frictionless) e sem liability shift (o risco em caso de chargeback permanece com a loja).

O Data Only pode ser usado para compartilhar os dados de uma transação com o emissor, sem que exista o desafio. Nesse caso, se o campo do Data Only foi parametrizado no script, a bandeira vai receber os dados parametrizados e vai compartilhar essas informações com o emissor. Com o tempo, o emissor terá mais dados de transações daquele cartão e da pessoa titular do cartão e terá mais elementos para realizar a autenticação.

Para utilização do produto, é necessário realizar a contratação no portal userede.com.br, para que seja realizada a ativação do Comércio no MPI. Portanto, habilite o serviço através do menu:

Vender online > E-commerce > 3DS/Data Only > Contratar


Benefícios do Data Only

  • Zerar qualquer tipo de fricção com o comprador, pois não há apresentação do desafio;
  • Melhorar a conversão por enriquecimento da base de dados do emissor;
  • Multa de bandeiras.

Quais bandeiras aceitam Data Only?

O Data Only é válido para as bandeiras Mastercard e Visa.

  • Para Data Only Mastercard, o ECI será sempre 4;
  • Para Data Only Visa, o ECI será sempre 7.

Comparativo 3DS Padrão vs 3DS Data Only

Característica3DS Padrão3DS Data Only
Experiência sem atrito (frictionless)Com ou sem atrito (desafio)Sempre sem atrito (não há desafio)
Latência na transaçãoMaiorMenor ou nenhuma
Responsabilidade em caso de chargebackBandeira ou emissor, se autenticada*Loja
Influência na aprovação do emissorSimSim
Ciclo de autenticaçãoSimNão

De quem é a responsabilidade em caso de chargeback?

Em transações Data Only, a loja é responsável em caso de chargeback.


Coleta de Dados do Navegador para Análise de Fraude (3DS2)

Esses dados são coletados do navegador do titular do cartão e enviados ao emissor como parte da autenticação 3D Secure (3DS2), com o objetivo de auxiliar na avaliação de risco e prevenção a fraudes.

Os dados devem ser captados e passados para nossa API na transação.

1. Profundidade de Cor da Tela

Representa a profundidade de cor estimada da tela, em bits por pixel.
Exemplo em JavaScript:

const color_depth = window.screen.colorDepth || 1;

2. Suporte a Java

Indica se o navegador suporta execução de applets Java.
Exemplo em JavaScript:

const java_enabled = navigator.javaEnabled();

3. Idioma do Navegador

Idioma preferido do navegador, no formato IETF BCP 47 (ex: en, pt-BR, es-ES).
Exemplo em JavaScript:

const language = navigator.language;

4. Altura da Tela

Altura total da tela do dispositivo do usuário, em pixels.
Exemplo em JavaScript:

const screen_height = screen.height || 500;

5. Largura da Tela

Largura total da tela do dispositivo do usuário, em pixels.
Exemplo em JavaScript:

const screen_width = screen.width || 500;

6. Diferença de Horário em Relação ao UTC

Diferença, em horas, entre o horário local do navegador e o UTC.
Exemplo em JavaScript:

const time_zone_offset = new Date().getTimezoneOffset() / 60;

Exemplo de Script Completo

function getScreenData() {
    const screenData = {
        screenWidth: window.screen.width,
        screenHeight: window.screen.height,
        availWidth: window.screen.availWidth,
        availHeight: window.screen.availHeight,
        colorDepth: window.screen.colorDepth,
        pixelDepth: window.screen.pixelDepth,
        innerWidth: window.innerWidth,
        innerHeight: window.innerHeight,
        outerWidth: window.outerWidth,
        outerHeight: window.outerHeight,
        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        language: navigator.language || navigator.userLanguage,
        languages: navigator.languages,
        devicePixelRatio: window.devicePixelRatio || 1,
        doNotTrack: navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack,
        hardwareConcurrency: navigator.hardwareConcurrency || 'unknown',
        timestamp: new Date().toISOString()
    };
    return screenData;
}

function sendScreenData(endpoint) {
    const data = getScreenData();
    fetch(endpoint, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
    })
    .then(response => {
        if (!response.ok) throw new Error('Erro na requisição');
        return response.json();
    })
    .then(data => console.log('Dados enviados com sucesso:', data))
    .catch(error => console.error('Erro ao enviar dados:', error));
}
// Exemplo de uso:
// sendScreenData('https://seuservidor.com/api/datarequest');

Observação: O script acima é somente um exemplo de como você pode buscar esses dados por JavaScript.


API Vindi

Parâmetros do Dispositivo (device)

  • color_depth: Estimativa da paleta de cores usada para a exibição de imagens, em bits por pixel.
  • java_enabled: Booleano que representa a capacidade do navegador para executar Java.
  • language: Idioma do navegador no formato IETF BCP47.
  • screen_height: Altura total da tela do cliente em pixels.
  • screen_width: Largura total da tela do cliente em pixels.
  • time_zone_offset: Diferença de horário, em horas, entre o UTC e a hora local.
  • user_agent: Identificador do browser utilizado pelo comprador.
  • ip_address: Suporta apenas iPv4. Exemplo: 10.0.0.1

Exemplo de Requisição para Criação de Fatura na API Vindi

curl --location 'https://app.vindi.com.br/api/v1/bills' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YOUR_API_KEY' \
--data '{
  "customer_id": 1,
  "payment_method_code": "credit_card",
  "bill_items": [
    {
      "product_id": 1,
      "amount": 199.0
    }
  ],
  "device": {
    "color_depth": 24,
    "java_enabled": false,
    "language": "pt-BR",
    "screen_height": 1080,
    "screen_width": 1920,
    "time_zone_offset": 3,
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "ip_address": "10.0.0.1"
  }
}'

Observações

  • O envio das informações do dispositivo (device) é opcional, mas obrigatório para utilizar o Data Only.
  • time_zone_offset deve ser um número positivo.
  • Para utilizar o produto, o cliente deve contratar o serviço no portal userede.com.br:
    Menu: vender online > e-commerce > 3DS/Data Only > Contratar.
  • Após a contratação, é necessário informar a Vindi para ativação do Data Only.