CaktoDevelopers
Pagamentos

Detecção de Fraude

Setup obrigatório do script Nethone para análise de fraude em todos os pagamentos.

Detecção de Fraude

A Cakto realiza análise de fraude automaticamente em todos os pagamentos via integração com Nethone. O setup requer 3 passos no frontend.

Se omitir esses passos, o pagamento pode ser processado sem análise de fraude — o comportamento depende da configuração da sua conta.

Passo 1 — Carregar o script

<!-- Adicione ao HTML da página de checkout — NÃO carregue sob demanda -->
<script src="{NETHONE_SCRIPT_URL}" async></script>

NETHONE_SCRIPT_URL é fornecida pela Cakto no onboarding. Armazene em variável de ambiente.

Passo 2 — Inicializar no mount do componente

// Gere UMA vez por sessão, antes de qualquer interação do usuário
const fraudSessionId = crypto.randomUUID()

// Inicia rastreamento silencioso — chame no mount do checkout
window.dftp?.init({ attemptReference: fraudSessionId })

Em React:

import { useEffect, useRef } from 'react'

function CheckoutForm() {
  const fraudSessionId = useRef(crypto.randomUUID())

  useEffect(() => {
    window.dftp?.init({ attemptReference: fraudSessionId.current })
  }, [])

  // ...
}

Passo 3 — Fechar antes do submit

// Primeira linha do handleSubmit — antes de qualquer fetch
await window.dftp?.profileCompleted()

Passo 4 — Incluir no payload do checkout

{
  "antifraud_profiling_attempt_reference": "550e8400-e29b-41d4-a716-446655440000"
}

O fraudSessionId gerado no mount é o mesmo UUID enviado no checkout. Nunca gere um novo UUID no submit — isso invalida o rastreamento.

Tipagem TypeScript

declare global {
  interface Window {
    dftp?: {
      init: (options: { attemptReference: string }) => void
      profileCompleted: () => Promise<void>
    }
  }
}