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.
Comentários
0 comentário
Artigo fechado para comentários.