Colete o fingerprint do dispositivo via ThreatMetrix para alimentar a análise antifraude CyberSource.
A análise de fraude coleta informações do dispositivo do comprador (fingerprint) usando a tecnologia ThreatMetrix da CyberSource. Esse fingerprint é usado pelo mecanismo antifraude para avaliar o risco da transação durante a criação da cobrança.
O fluxo é:
sessionId retornado é enviado junto com a cobrança para análiseO ThreatMetrix coleta dados do dispositivo em segundo plano enquanto o usuário preenche o formulário de pagamento. Quanto mais cedo você chamar setup(), mais dados serão coletados e melhor será a avaliação de risco.
const result = await client.fraudAnalysis.setup();
console.log(result.sessionId); // "braspag_abc123...uuid"
// Armazene o sessionId para enviar com a cobrançaO método setup() não requer nenhum parâmetro — os dados do navegador são coletados automaticamente.
FraudSetupResult)| Campo | Tipo | Descrição |
|---|---|---|
sessionId | string | Identificador da sessão de fraude. Envie junto com a cobrança no campo fraud_session_id. |
O ThreatMetrix é carregado automaticamente e coleta informações como:
Essas informações geram um perfil de risco do dispositivo que é cruzado com a base global da CyberSource para identificar dispositivos suspeitos.
Além do fingerprint do ThreatMetrix, o SDK envia para a API os seguintes dados do navegador no momento do setup():
| Dado | Descrição |
|---|---|
ip_address | IP público do comprador (obtido via api.ipify.org). |
type | Tipo do navegador (Chrome, Firefox, Safari, Edge, Opera, Other). |
host_name | Hostname da página onde o SDK está executando. |
cookies_accepted | Se o navegador aceita cookies. |
user_agent | User agent completo do navegador. |
Chame setup() o mais cedo possível na jornada de pagamento — idealmente logo após a inicialização do SDK. O ThreatMetrix precisa de tempo para coletar o fingerprint em segundo plano.
O padrão recomendado é:
// 1. Inicialize o SDK quando a página de checkout carregar
const client = new Client({ publicKey: 'pk_...' });
await client.initialize();
// 2. Inicie a coleta de fraude imediatamente
let fraudSessionId: string | undefined;
if
Cada sessão de fraude tem um TTL de 30 minutos. Se o comprador demorar mais do que isso para finalizar a compra, será necessário criar uma nova sessão.
A sessão é de uso único — após ser consumida na criação de uma cobrança, não pode ser reutilizada.
Envie o sessionId no campo fraud_session_id ao criar a cobrança:
const response = await fetch('https://api.payhubr.com/v1/charges', {
method: 'POST',
headers: {
'Authorization': 'Basic ' + btoa('sk_sua_chave:'),
'Content-Type': 'application/json',
},
body: JSON
import { ApiError, NetworkError } from '@soarlabz/security-sdk';
try {
const result = await client.fraudAnalysis.setup();
} catch (error) {
if (error instanceof ApiError) {
console.
Se a análise de fraude falhar, a cobrança ainda pode ser criada sem o fraud_session_id (desde que o merchant não tenha configurado a análise como obrigatória). Porém, a transação não terá a proteção antifraude.
curl -X POST https://api.payhubr.com/v1/charges \
-H "Authorization: Basic base64(sk_sua_chave:)" \
-H "Content-Type: application/json" \
-d '{
"amount": 15000,
"payment_method": "credit_card",
"card_token": "tok_abc123...",
"installments": 1,
"fraud_session_id": "braspag_abc123...uuid",
"customer": {
"name": "Comprador Teste",
"email": "comprador@email.com",
"document": "12345678900"
}
}'