1. Pagamentos
Api Expert
  • Documentos
    • Rakim Expert
    • Homologação
      • Processo de Homologação
    • Autenticação na API
    • Pagamentos
      • Introdução
      • Fingerprint
      • Criando um Pagamento
        • sales
      • Criando Pagamento com Split
        • sales/splits
      • Capturando um Pagamento Pré-Autorizado
        • capture
      • Cancelando um Pagamento
        • cancel
      • Consultando informações do Pagamento
        • consulta
      • Ativando um Split Tardio
        • Split tardio
      • Como Criar um Cofre de Cartão
        • vault
      • Inativar cofre de cartão
        • inativar vault
      • Listar os Cartões do Cofre
        • Lista vault
      • Consultando as Taxas da Transação
        • Consultar taxas
      • Listar Pagamentos
        • Listar pagamentos
      • Cartões de Teste
      • Códigos de Retorno
      • Casos de Uso
    • PIX
      • Introdução
      • Criar Cobrança Pix
        • Cobranca pix
      • Consultar Cobrança Pix
        • Cobranca pix
      • Devolução de Pagamento Pix
        • Devolução pix
    • Link de Pagamento
      • Introdução
      • Criar Link de Pagamento
        • Criar Link de Pagamento
      • Upload do Logo para Link de Pagamento
        • Upload logo
    • Recorrência
      • Introdução
      • Criar Recorrência
        • Criar Recorrência
      • Criar Link de Recorrência
        • Criar link
    • Estabelecimentos
      • Introdução
      • Criar Estabelecimento
        • Criar Estabelecimento
      • Upload de documentos
        • Upload de Documentos
      • Buscar Estabelecimento
        • Busca estabelecimento
      • Listar CNAE's
        • Listar CNAE's
      • Listar Bancos
        • Listar Bancos
      • Casos de Uso
    • Liquidações
      • Saque
        • Solicitar Saque
      • Saldo
        • Consultar Saldo
      • Extrato
        • Busca extrato
      • Extrato Analítico
        • Busca extrato
      • Extrato Futuro
        • Busca extrato
    • Antecipações
      • Introdução
      • Atualizar Antecipação Automática
        • Atualização Antecipação
      • Listar Antecipações Disponíveis
        • Listar Antecipações
      • Solicitar Antecipação
        • Solicitar Antecipação
    • Webhook's
      • Cadastrar Webhook
        • Cadastrar Webhook
      • Reenvio de Webhook de Pagamento
        • Reenvio de Webhook de Pagamento
      • Reenvio de Webhook de Estabelecimento
        • Reenvio de Webhook de Estabelecimento
      • Exemplo de Webhook
    • Status
      • Status de Pagamento
  1. Pagamentos

Fingerprint

💡
Este é o conteúdo de destaque
O FINGERPRINT é um script que deve ser implementado no seu Checkout para dar maior segurança no processo de pagamento.
Esta implementação é Obrigatória para aqueles que utilizam seu próprio Checkout.
Copie e cole o código abaixo no seu Checkout :
FingerPrint
function hash(str) {
  return crypto.subtle.digest(
    'SHA-256',
    new TextEncoder().encode(str)
  ).then(buf =>
    Array.from(new Uint8Array(buf))
      .map(b => b.toString(16).padStart(2, '0'))
      .join('')
  );
}

<Container>
Content
</Container>

// Canvas fingerprint
function getCanvasFP() {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  ctx.textBaseline = 'top';
  ctx.font = "14px 'Arial'";
  ctx.fillText('fingerprint_test_🧠', 2, 2);
  return canvas.toDataURL();
}

// WebGL fingerprint
function getWebGLFP() {
  const canvas = document.createElement('canvas');
  const gl =
    canvas.getContext('webgl') ||
    canvas.getContext('experimental-webgl');
  if (!gl) return 'no-webgl';

  const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
  return [
    gl.getParameter(gl.VENDOR),
    gl.getParameter(gl.RENDERER),
    debugInfo
      ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL)
      : ''
  ].join('|');
}

// Audio fingerprint
async function getAudioFP() {
  const ctx = new (window.AudioContext || window.webkitAudioContext)();
  const osc = ctx.createOscillator();
  const analyser = ctx.createAnalyser();
  const gain = ctx.createGain();

  osc.type = 'triangle';
  osc.frequency.value = 10000;
  gain.gain.value = 0;

  osc.connect(analyser);
  analyser.connect(gain);
  gain.connect(ctx.destination);

  osc.start(0);
  const data = new Float32Array(analyser.frequencyBinCount);
  analyser.getFloatFrequencyData(data);
  osc.stop();

  return data.slice(0, 30).join(',');
}

const components = {
  userAgent: navigator.userAgent,
  language: navigator.language,
  languages: navigator.languages?.join(','),
  platform: navigator.platform,
  timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
  screen: ${screen.width}x${screen.height}x${screen.colorDepth},
  hardwareConcurrency: navigator.hardwareConcurrency,
  deviceMemory: navigator.deviceMemory,
  canvas: getCanvasFP(),
  webgl: getWebGLFP(),
  audio: await getAudioFP()
};

const rawFingerprint = Object.values(components).join('||');
const fingerprint = await hash(rawFingerprint);

console.log('🧩 Fingerprint:', fingerprint);
console.log('🔍 Components:', components);
})();
Modificado em 2026-03-13 17:57:12
Página anterior
Introdução
Próxima página
Criando um Pagamento
Built with