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.

 

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 passado 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() {

    // Informações básicas da tela

    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,

        

        // Informações do navegador e viewport

        innerWidth: window.innerWidth,

        innerHeight: window.innerHeight,

        outerWidth: window.outerWidth,

        outerHeight: window.outerHeight,

        

        // Informações de timezone e idioma

        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,

        language: navigator.language || navigator.userLanguage,

        languages: navigator.languages,

        

        // Outras informações úteis

        devicePixelRatio: window.devicePixelRatio || 1,

        doNotTrack: navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack,

        hardwareConcurrency: navigator.hardwareConcurrency || 'unknown',

        

        // Timestamp da coleta

        timestamp: new Date().toISOString()

    };

    return screenData;

}

// Função para enviar os dados (exemplo com fetch API)

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.

Em casos de dúvidas você pode consultar a documentação oficial da e-rede onde ela determina quais campos são obrigatórios e quais são opcionais.

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.

https://developer.userede.com.br/e-rede#documentacao-data-only-data-only-mpi-rede

https://developer.userede.com.br/e-rede#documentacao-data-only

 

API Vindi

Parâmetros do dispositivo (device)

color_depth: Campo que representa a estimativa da paleta de cores usada para a exibição de imagens, em bits por pixel. O valor é aquele retornado pela propriedade screen.colorDepth

java_enabled: Campo booleano que representa a capacidade do navegador para executar Java. O valor é aquele retornado pela propriedade navigator.javaEnabled, true ou false

language: Idioma do navegador no formato IETF BCP47, contendo entre 1 e 8 caracteres

screen_height: A altura total da tela do cliente em pixels. O valor é aquele retornado pela propriedade screen.height

screen_width: A largura total da tela do cliente em pixels. O valor é aquele retornado pela propriedade screen.width

time_zone_offset: Diferença de horário, em horas, entre o UTC e a hora local do navegador do titular do cartão

user_agent: Identificador do browser utilizado pelo comprador no momento da compra

ip_address: Suporta informações somente em 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 e não impede a criação da fatura caso não seja fornecido, porém para utilizar o data-only todos os campos são obrigatórios.

O time_zone_offset deve ser um número positivo.

Antes de qualquer ação o cliente deve solicitar 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.

Após a contratação o cliente deve avisar a Vindi por suporte, credenciamento, comercial ou gerente de conta para ativação do Dataonly em sua conta.