01 · Inteligência de dispositivo para prevenção a fraudes As jornadas que você marca com tag

API de inteligência de dispositivo e risco de fraude para a web Avalie cada acesso. Decida com evidência.

Uma tag por tela que você escolher

Um script no seu site lê o navegador e o dispositivo em cerca de um décimo de segundo no desktop. Uma chamada assinada do seu backend, com uma tag que você nomeia, traz a resposta na hora: nota de confiança, cobertura de evidência e 13 indicadores, de bots e automação, navegador falsificado e emuladores a VPN, proxy e Tor, com o motivo por trás de cada recomendação. Identifique account takeover, cadastros falsos e fraude em saque com evidência, não com palpite. Nós recomendamos. Você decide e age.

Resposta síncrona em qualquer tela que você marcar · Shadow mode antes de influenciar qualquer decisão · Suas regras, suas listas, sua decisão

Como ler esta resposta · exemplo v1.1/login_completed

  1. Por que esta recomendação

    ALLOWreason_codes · NO_ADVERSE_INDICATOR_MATCH

    Nenhum indicador que a política pondera voltou detectado. Exemplo do contrato: a política gerenciada do FingerTrackID recomenda MONITOR em qualquer nota; ALLOW vem de uma faixa de nota que a sua empresa definiu nas próprias regras de risco. Decidido sob policy-login-v1.

  2. O que a nota é, e o que não é

    trust_score 1000–100 · quanto maior, melhor

    Confiança neste acesso sob esta versão de política, não uma probabilidade de fraude. Fora de COMPLETED ela é null, nunca um valor padrão.

  3. Quanto deu para ver

    evidence_coverage 100limitation_codes · nenhum

    A parcela das verificações esperadas que rodou. Evidência ausente seria nomeada aqui: ela reduz a cobertura e nunca é motivo de risco.

  4. Depois, é com você

    customer_actiondepois o resultado

    Seu backend decide e age, depois informa o que fez e o resultado real. Nós nunca bloqueamos nem retemos dinheiro.

POST /v1/assessments → 201

event-assessment.v1.1 · exemplo do contrato

assessment_statusConcluídaavaliação concluída
trust_score1000–100 · quanto maior, melhor
device_match_confidence0.980–1 · força da correspondência
evidence_coverage1000–100 · suficiência
ALLOWrecommendation_basis · EVALUATIONrecomendação, não ação
reason_codes NO_ADVERSE_INDICATOR_MATCH  ·  limitation_codes none
{  "schema_version": "event-assessment.v1.1",  "tag": "login",  "assessment_status": "COMPLETED",  "trust_score": 100,  "device_match_confidence": 0.98,  "evidence_coverage": 100,  "signals": [ … 13 objects ],  "limitation_codes": [],  "reason_codes": ["NO_ADVERSE_INDICATOR_MATCH"],  "recommended_action": "ALLOW",  "recommendation_basis": "EVALUATION",  "policy_version": "policy-login-v1"  // … 21 more fields in the full response: ids, snapshot, versions, timestamps}
Resposta completa · 54 linhas · 13 sinais, os não detectados recolhidos
1{2  "schema_version": "event-assessment.v1.1",3  "assessment_id": "01996f2a-0000-7000-8000-000000000101",4  "assessment_version": 1,5  "supersedes_assessment_id": null,6  "business_event_id": "01996f2a-0000-7000-8000-000000000102",7  "external_event_id": "login_20260904_000001",8  "tag": "login",9  "assessment_status": "COMPLETED",10  "retryable": false,11  "trust_score": 100,12  "device_intelligence_snapshot_id": "01996f2a-0000-7000-8000-000000000103",13  "device_intelligence_snapshot_version": 1,14  "device_id": "dev_0123456789abcdefghij",15  "device_match_confidence": 0.98,16  "evidence_coverage": 100,17  "data_freshness": {18    "evidence_cutoff_at": "2026-09-04T12:00:00Z",19    "oldest_required_observed_at": "2026-09-04T11:59:59Z",20    "maximum_required_age_ms": 300000,21    "all_required_fresh": true22  },23  "signals": [24    { "signal_code": "ANTI_FINGERPRINTING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },25    { "signal_code": "BOT_AUTOMATION", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },26    { "signal_code": "BROWSER_SPOOFING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },27    { "signal_code": "EMULATED_ENVIRONMENT", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },28    { "signal_code": "PRIVATE_BROWSING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },29    { "signal_code": "BROWSER_PRIVACY_BRAVE", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },30    { "signal_code": "BROWSER_PRIVACY_SAFARI", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },31    { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },32    { "signal_code": "NETWORK_PROXY", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },33    { "signal_code": "NETWORK_VPN", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },34    { "signal_code": "NETWORK_HOSTING", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },35    { "signal_code": "NETWORK_TOR", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … },36    { "signal_code": "DEVICE_MULTI_USER", "signal_state": "NOT_DETECTED", "source": "DERIVED", "detector_version": "detector-web-v1", … }37  ],38  "limitation_codes": [],39  "reason_codes": ["NO_ADVERSE_INDICATOR_MATCH"],40  "recommended_action": "ALLOW",41  "recommendation_basis": "EVALUATION",42  "policy_version": "policy-login-v1",43  "fallback_policy_version": "production-observation-fallback-v2",44  "ruleset_version": "ruleset-web-v1",45  "signal_catalog_version": "signals-web-v1",46  "feature_schema_version": "features-v1",47  "resolver_version": "resolver-v1",48  "sdk_version": "web-sdk-1.0.0",49  "provider_versions": ["network-provider-2026-09-04"],50  "evidence_cutoff_at": "2026-09-04T12:00:00Z",51  "evaluated_at": "2026-09-04T12:00:01Z",52  "expires_at": "2026-09-04T12:05:00Z",53  "correlation_id": "corr-assessment-login-0001"54}

Versões que a definiram · policy-login-v1 · production-observation-fallback-v2 · ruleset-web-v1 · signals-web-v1 · features-v1 · resolver-v1 · web-sdk-1.0.0 · network-provider-2026-09-04

13 sinais na resposta completa · matriz de indicadores ↓

O produto em números

A resposta

13

Indicadores web em toda resposta

3

Estados por indicador: detectado, não detectado, não avaliado

14

Motivos nomeados para “não avaliado”, nunca um falso silencioso

5

Recomendações possíveis

3

Medidas separadas: confiança, correspondência de dispositivo, cobertura de evidência

1

Chamada assinada por evento avaliado

A coleta

17

Seções de evidência do navegador e do dispositivo por coleta

48

APIs do navegador conferidas com a versão que o navegador declara

125

Milissegundos ou menos: mediana da coleta no desktop em Chrome, Firefox e Safari

0

Pedidos de permissão exibidos ao seu usuário

Suas regras e sua investigação

54

Itens de contexto calculados dentro de cada avaliação

67

Regras que sua empresa pode pesar na própria nota: 13 indicadores e 54 itens de contexto

6

Listas de referência públicas por trás dos indicadores de rede

6

Idiomas do console: inglês, português (Brasil e Portugal), espanhol, francês, alemão

Nunca — e isso não muda conforme o plano

  • Movimento do ponteiro e digitação: o SDK não coleta nenhum dos dois
  • Pixels, amostras de áudio, nomes de fabricante e renderizador de GPU ou nomes de fontes: canvas, WebGL, WebGPU, áudio e fontes só saem do navegador como hashes, uma família de GPU e uma máscara de presença sobre uma lista fixa de fontes
  • WebRTC, portas locais, bateria, sensores de movimento: nunca lidos
  • Nenhum pedido de permissão, nenhuma decisão tomada no navegador, nenhuma ação tomada por nós na sua conta

— Cada valor é uma contagem de um contrato, catálogo ou lista versionados, exceto o tempo de coleta, medido nas nossas máquinas de teste com cache frio. Nenhum deles muda conforme o plano ou o volume.

03 · Casos de uso

Prevenção a fraudes nas telas em que a decisão importa.

A inteligência de dispositivo responde a uma pergunta antes de o seu backend liberar a ação: o que existe de verdade do outro lado desta tela? A mesma chamada atende todas as jornadas; a tag que você envia só a classifica.

login · password_recovery · profile_change

Prevenção a account takeover (tomada de conta)

Uma conta conhecida num dispositivo que ela nunca usou, um navegador que mente sobre si mesmo, um navegador anti-detect, uma viagem impossível de fazer no tempo. Cada um volta como evidência, para você pedir um segundo fator só quando importa.

signup · login · checkout

Detecção de bots e automação

Navegadores headless, frameworks de automação, agentes de IA identificados por assinatura e tráfego vindo de datacenters. BOT_AUTOMATION e NETWORK_HOSTING dizem o que foi visto; a cobertura diz quanto deu para ver.

signup · deposit · promotions

Contas falsas e múltiplas contas

Contas e pessoas por dispositivo e por IP, quão raro é o perfil do dispositivo na sua base, uma mesma coleta repetida em outro dispositivo. Contexto que suas regras podem pesar, nunca um veredito automático: uma pessoa pode ter várias contas legítimas.

withdrawal · pix_transfer · trade

Fraude em saque, Pix e transferência

Um saque na primeira hora depois de um dispositivo novo, beneficiários compartilhados entre contas, vizinhos que você marcou como fraude confirmada. Quem retém ou revisa o dinheiro é o seu backend; nós nunca.

qualquer jornada

Emuladores e navegadores falsificados

Emuladores Android e virtualização, uma GPU impossível para o sistema declarado, uma versão de navegador que as próprias APIs contradizem. Sinais de device fingerprinting lidos como hashes e famílias, nunca como pixels brutos.

qualquer jornada

Detecção de VPN, proxy e Tor

Provedores de VPN conhecidos, proxies públicos, saídas Tor, faixas de hospedagem e Apple iCloud Private Relay, a partir de listas públicas atualizadas do nosso lado. Anonimização é contexto, não culpa: sua política decide quanto ela pesa.

04 · As medidas

Medidas separadas. Nenhuma média disfarçada de certeza.

Juntar confiança, cobertura e correspondência de dispositivo num único número esconde justamente o que o analista precisa ver: se o problema é o acesso ou a evidência.

trust_score

Confiança no acesso

72

0100 · quanto maior, melhor

Responde quão confiável é este acesso sob esta versão de política; a tag que você envia não a altera. Inteiro de 0 a 100. Só existe quando assessment_status = COMPLETED; em qualquer outro estado é null, nunca um valor padrão.

Não é uma probabilidade de fraude, a reputação da pessoa nem um valor padrão para dado ausente. Mostramos 72/100, nunca “72% confiável”.

device_match_confidence

Correspondência de dispositivo

0.94

01 · teto 0,98

Força da evidência de que este acesso vem do mesmo dispositivo já visto, de 0 a 1. Vem com device_id, um identificador público opaco do cluster probabilístico.

Não é a identidade da pessoa, nem prova de hardware. Party e Account são coisas diferentes.

evidence_coverage

Suficiência de evidência

100

0100 · 13 de 13 avaliados

Quanto do conjunto esperado de verificações pôde rodar, de 0 a 100. Todo indicador aplicável que fica como NOT_EVALUATED reduz a cobertura e aparece em limitation_codes.

Não faz parte da nota. Cobertura baixa não puxa a nota para baixo nem para cima: ela deixa a avaliação inconclusiva.

Por que não somamos

Uma única nota de “suspeita” mistura três perguntas diferentes: este acesso merece confiança? A evidência foi suficiente? É o mesmo dispositivo? Quando a resposta vem separada, seu analista sabe se pede um segundo fator, espera a coleta ou olha o histórico. Quando vem fundida, ele só sabe que “deu 42”.

05 · 13 indicadores

Treze indicadores. Cada um diz se viu, se não viu ou se não conseguiu avaliar.

Toda avaliação web devolve os 13 códigos, sempre. O que muda é o estado de cada um, nunca a lista. Cada indicador tem o próprio detector versionado, e a resposta nomeia a versão que o avaliou. Um detector ausente, vencido ou com falha nunca vira false.

signal_catalog web · 13 códigos · exemplo withdrawal_completed

  • Detectado
  • Not_detected
  • — Não_avaliado

Integridade do ambiente

Privacidade do navegador · contexto neutro

Rede · contexto neutro

Dispositivo

reason_codes · NETWORK_TOR_DETECTED REVIEW

Nas nossas políticas gerenciadas, Tor sozinho nunca justifica BLOCK_RECOMMENDED; as regras que sua empresa configura seguem os pesos e o corte que ela escolheu. Neste exemplo do contrato v1, policy-withdrawal-v1 pediu revisão do saque, não um bloqueio, e o único reason code diz exatamente isso. A política gerenciada em produção hoje recomenda MONITOR em qualquer nota.

O mesmo indicador, três estados

  • Detectado · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · exemplo withdrawal_completed
  • Não_detectado · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · exemplo login_completed
  • — Não_avaliado · NETWORK_TOR not_evaluated_reason_code PROVIDER_UNAVAILABLE · limitation_codes ["PROVIDER_UNAVAILABLE"] · evidence_coverage 69 · exemplo provider_unavailable

Um detector ausente, vencido ou com falha nunca vira false. NOT_APPLICABLE só vem da matriz imutável do catálogo por canal, engine e plataforma; sua tag nunca a altera, e uma política desligada, um timeout ou uma indisponibilidade nunca usam esse atalho.

Contexto neutro por padrão

PRIVATE_BROWSINGBROWSER_PRIVACY_BRAVEBROWSER_PRIVACY_SAFARIBROWSER_PRIVACY_SAMSUNG_INTERNETNETWORK_PROXYNETWORK_VPNNETWORK_TOR

Eles podem limitar o que observamos. A cobertura só cai onde a evidência não é avaliada. Não são fraude. Descrevem o ambiente; não acusam a pessoa. Nas nossas políticas gerenciadas, sozinhos eles nunca justificam BLOCK_RECOMMENDED; as regras que sua empresa configura seguem os pesos e o corte que ela escolheu. Quando não dá para distinguir o tipo de rede, como atrás do iCloud Private Relay da Apple, hospedagem, VPN e proxy ficam todos NOT_EVALUATED com NETWORK_TYPE_AMBIGUOUS: nunca marcamos três detecções a partir de um único booleano.

A evidência de rede vem de listas de referência públicas que atualizamos na nossa própria infraestrutura: endereços de saída Tor, faixas de provedores de nuvem, listas de redes de hospedagem, faixas de provedores de VPN e uma base de proxies públicos. Os endereços dos seus usuários nunca são enviados a quem publica as listas. Uma lista que passou da idade máxima deixa o indicador NOT_EVALUATED, nunca NOT_DETECTED.

06 · Itens de contexto

Além dos 13 indicadores: 54 itens de contexto. Para a investigação, e para a sua nota quando você quiser.

Dentro de cada avaliação, antes da resposta, calculamos 54 itens de contexto a partir do que foi coletado e do histórico da própria empresa: quem mais usa o dispositivo, com que velocidade a conta está se movendo, de qual rede, ao lado de quais contas. A política gerenciada do FingerTrackID os deixa fora da nota. Nas suas próprias regras de risco, qualquer um deles pode ficar desligado, em fantasma ou ativo, com pontos para incomum e muito incomum: um item ativo que dispara desconta pontos da nota de confiança e se nomeia em reason_codes.

context-insight.v1 · 54 itens em seis temas · como agrupados no console e nas suas regras

  • Conta e dispositivo · 10

    Dispositivo novo e sistema operacional novo para a conta · contas e pessoas distintas no dispositivo em 30 dias · contas da mesma pessoa nele · dispositivos por conta e por pessoa em 24 horas · dispositivo com alta atividade · quão comum, incomum ou raro é o perfil do dispositivo na sua empresa · cookie do dispositivo perdido

  • Saques e pedidos · 7

    Saques na primeira hora depois de um dispositivo novo · beneficiários por dispositivo e contas por beneficiário em 30 dias · quantidade e valor de saques por conta · quantidade de pedidos por conta e o intervalo mediano entre pedidos

  • Rede e localização · 12

    País novo e provedor de internet (ASN) novo para a conta · países, provedores e IPs distintos por conta · contas e pessoas por IP · viagem impossível · fuso horário do navegador que não bate com o país do IP · país de saída da VPN · provedor numa lista pública de abuso · Apple iCloud Private Relay

  • Integridade do navegador e do SDK · 16

    Ferramentas de desenvolvedor abertas · marcas de automação · marcador de navegador anti-detect · assinatura TLS que não bate com o navegador declarado, e sua estabilidade em 30 dias · renderizador por software e família de GPU · canvas ou áudio que muda entre duas leituras · navegador in-app · possível modo convidado · agente de IA identificado por assinatura · categoria de bot · SDK diferente do pacote aprovado · uma sessão do SDK em vários dispositivos · coleta idêntica repetida em outro dispositivo · cookie do dispositivo usado em lugares distantes demais

  • Velocidade · 5

    Acessos por dispositivo e por conta em 5 minutos, 1 hora e 24 horas; por IP em 5 minutos e 1 hora · avaliações com a mesma tag por conta e por dispositivo em 1 minuto, 5 minutos e 1 hora

  • Vínculos entre contas, a um salto · 4

    Outras contas que usaram os mesmos dispositivos · contas vizinhas em que foi detectada automação ou falsificação de navegador · contas vizinhas que você marcou como fraude confirmada · beneficiários de saque compartilhados com outras contas

Três estados · um motivo, nunca um zero

  • Observado · a condição está presente, ou a contagem ou medida difere do seu valor neutro.
  • Não observado · avaliado, e ausente ou neutro.
  • Não avaliado · sempre com o motivo, nunca exibido como zero.

Alguns itens dependem do que você envia. Sem refs de conta ou de pessoa, sem tag ou sem resultados, o item diz isso: conta não enviada, avaliação sem tag, nenhum resultado enviado. Uma requisição com tag não leva valor nem beneficiário, então os itens de valor e beneficiário do saque também dizem isso. Um primeiro acesso, uma rede anonimizada ou um IP fora da janela de uma hora de uma verificação também são motivos.

O que eles não são

  • Não são um dos 13 indicadores, e nunca um código de limitação. Só chegam a reason_codes por uma regra que sua empresa deixou ativa.
  • Nunca entram na nota da política gerenciada do FingerTrackID. Um item ativo sem dado não desconta nada: evidência ausente nunca vira risco.
  • Não são um modelo oculto: cada item é lido como esperado, incomum ou muito incomum numa régua que sua empresa pode ajustar, a partir de um padrão publicado.
  • Não são uma acusação: muitas contas ou pessoas num dispositivo não são evidência de fraude, e não existe regra “N contas por dispositivo = fraude”.

Onde o analista os lê

Detalhe do acesso. Um cartão “Contexto do acesso” agrupa os itens por tema, com as janelas de tempo, o corte do histórico considerado, quão incomum cada um é na sua régua e o motivo de cada item que ficou sem valor. Um item que não cabe no orçamento de tempo da avaliação é concluído em segundo plano e diz isso; ele nunca atrasa nem derruba a resposta.

Catálogo de indicadores. Uma página explica o que cada um dos 13 indicadores procura, o que o deixa não avaliado e se ele pode mexer na nota, e lista os itens de contexto com os motivos pelos quais podem ficar sem valor.

Canvas, WebGL, áudio e fontes são lidos sob a política de coleta gerenciada de todas as empresas, só como valores derivados, e alimentam alguns desses itens, como a família de GPU, um renderizador por software ou uma renderização que muda entre duas leituras. Onde o navegador não permite uma verificação, o item fica não avaliado, com o motivo.

07 · Inconclusivo é um resultado

Quando não conseguimos avaliar, dizemos isso, e por quê.

Evidência ausente não produz confiança 100 e não vira sinal de fraude. Sem nota, a recomendação vem do fallback congelado dentro da versão de política e coberto pelo hash dela, e é uma única resposta para todo estado sem nota, qualquer que seja a tag: MONITOR. Nunca ALLOW.

Casos sem nota dos exemplos do contrato

A tag nunca seleciona o fallback. Na política gerenciada, todo estado sem nota, em qualquer tag, recomenda MONITOR: siga em frente e registre. Os três exemplos do contrato abaixo também.

  • INCONCLUSIVEtag login · o SDK não carregou

    MONITOR

    Sem coleta: trust_score: null, evidence_coverage: 0, COLLECTOR_NOT_LOADED, basis INSUFFICIENT_EVIDENCE. Nada é liberado como ALLOW.

  • INCONCLUSIVEevidência de rede indisponível

    MONITOR

    Quatro indicadores de rede NOT_EVALUATED, evidence_coverage: 69, PROVIDER_UNAVAILABLE. Seja qual for a operação, ela fica no seu sistema, sob a sua decisão; nunca retemos dinheiro.

  • FAILEDtag pix_transfer · política indisponível

    MONITOR

    Falha técnica: POLICY_UNAVAILABLE, policy_version: null, basis TECHNICAL_FAILURE. Nunca lida como “sem risco”.

Sem nota, nunca recomendamos ALLOW · fallback_policy_version production-observation-fallback-v2 nos exemplos · o fallback é validado junto com a política toda vez que a política é lida

Quatro estados da avaliação

Concluída 72 basis EVALUATION · os reason_codes explicam a nota
Inconclusiva null basis INSUFFICIENT_EVIDENCE · os limitation_codes dizem o que faltou
Sem nota possível null basis OUT_OF_POLICY_SCOPE · evento válido, a política não o cobre
Falhou null basis TECHNICAL_FAILURE · POLICY_UNAVAILABLE, policy_version null · nunca “sem risco”

Os 14 códigos de limitação do catálogo · o que faltou, nunca por que é arriscado

NO_FIRST_PARTY_COOKIEINSTALLATION_COOKIE_REJECTEDNO_EDGE_SIGNALSSTALE_DEVICE_PROFILEPROVIDER_UNAVAILABLEPROVIDER_BUDGET_EXCEEDEDCOLLECTOR_NOT_LOADEDUNSUPPORTED_RUNTIMEREQUIRED_EVIDENCE_MISSINGDETECTOR_TIMEOUTDETECTOR_ERRORNETWORK_TYPE_AMBIGUOUSCLIENT_CLOCK_SKEWPOLICY_UNAVAILABLE

Um código de limitação explica a coleta e a qualidade; um reason code explica a política. Todo indicador NOT_EVALUATED aponta para o seu; a avaliação agrega todos em limitation_codes. Uma limitação de coleta nunca é motivo de risco.

08 · Você decide

Cinco recomendações. Zero ações tomadas por nós.

recommended_action diz o que a política sugere. customer_action diz o que você fez. Dois campos porque são dois fatos.

Quem recomenda, quem decide, quem age

O FingerTrackID recomenda

  • ALLOW
  • MONITOR
  • STEP_UP
  • REVIEW
  • BLOCK_RECOMMENDED

Nunca só por privacidade · Tor, VPN, proxy, aba anônima, dispositivo compartilhado

Seu fluxo decide

Seu backend decide e age. Nós devolvemos uma recomendação; hoje a política gerenciada responde MONITOR, só observação. O que acontece com o acesso é decidido e executado do seu lado. Você conhece a conta, o limite, o histórico e o custo da fricção. Nós não.

Você age e nos informa

  • ALLOWED
  • CHALLENGED
  • HELD
  • REVIEWED
  • BLOCKED
  • CANCELLED

customer_action · o campo que você devolve

  • Nunca autenticamos uma pessoa.
  • Nunca bloqueamos a sua interface.
  • Nunca movimentamos dinheiro.

O que cada recomendação não significa

  • ALLOW

    A política não encontrou motivo para fricção neste acesso. Não significa que a pessoa é legítima nem que o acesso está certificado. Só é emitida com nota e com a evidência exigida avaliada.

  • MONITOR

    Siga em frente, mas registre. É o fallback sem nota em qualquer tag e, hoje, também a resposta da política gerenciada em qualquer nota. Não significa suspeita confirmada e não exige nenhuma ação do usuário.

  • STEP_UP

    Peça um segundo fator ou uma confirmação. Não significa que desafiamos alguém: quem mostra o desafio é você.

  • REVIEW

    Envie para revisão humana. Não significa que retemos dinheiro: a operação fica no seu sistema, sob a sua decisão.

  • BLOCK_RECOMMENDED

    A política sugere negar. Não significa bloqueio executado, fraude confirmada nem banimento. Quando você bloqueia, isso vira customer_action: BLOCKED, um evento seu, e alimenta a medição de acerto.

09 · Integração

Três passos, um contrato. O navegador coleta; seu backend pergunta; nós respondemos.

Um script no seu site, um endpoint servidor a servidor no seu backend e duas chamadas para devolver a ação e o resultado. Nenhuma decisão no cliente.

SDK no seu site

O SDK coleta e devolve um token. Só isso.

Servido de um subdomínio seu. Antes de você enviar a requisição que quer avaliar, seja qual for a tela, ele coleta sinais do navegador e do ambiente e recebe 202 PROCESSING: confirma o recebimento, não um resultado. Os sinais de rede são adicionados pela borda no seu domínio de coleta, nunca pelo script. Nenhuma nota, sinal ou decisão volta para o navegador.

import { initializeSdk } from '@ftid/sdk-web'

// publicKey is a public locator, not a secret.
// collectionOrigin is YOUR collection domain (https).
const sdk = initializeSdk({
  publicKey: 'pub_app_0123456789abcdef',
  collectionOrigin: 'https://collect.yourcompany.com',
})

// ACCEPTED (202 PROCESSING on the wire): confirms receipt, not a result.
const collection = await sdk.collect()
if (collection.status !== 'ACCEPTED') {
  // Without collection the journey continues; the backend will get
  // INCONCLUSIVE / COLLECTOR_NOT_LOADED: no fake score.
  return continueWithoutToken()
}

// Create the event before sending the request to be assessed.
const event = sdk.createEvent(collection.observation)

// Only a COMPLETED collection yields a token. The token goes in the POST
// that YOUR backend makes; the decision never comes back here.
const ctx = await sdk.getEventContext(event)
const token =
  ctx.status === 'COMPLETED'
    ? ctx.eventContextToken
    : null

Seu backend chama

Uma chamada assinada e síncrona, no seu prazo.

HMAC-SHA-256 sobre dez linhas canônicas — marcador, key_id, método, path, timestamp, ids do evento e da requisição, metadados do conteúdo e, na última linha, o SHA-256 dos bytes exatos do corpo. Nunca reserialize o JSON antes de calcular o hash; o contrato traz o vetor normativo. key_id é o único localizador público. O segredo nunca trafega. Vetor canônico requests.both_refs_deadline_750 do contrato v1.1: a mesma rota e a mesma assinatura do v1, com tag no lugar de journey, action e journey_context.

POST /v1/assessments HTTP/1.1
Host: api.fingertrackid.com
Content-Type: application/json
X-FTID-Signature: v1=<key_id>:<mac-hex>
X-FTID-Timestamp: 1791720000
X-FTID-Request-Id: <uuidv7 of the attempt>
X-FTID-External-Event-Id: evt:tag-0003

{
  "schema_version": "event-assessment-request.v1.1",
  "external_event_id": "evt:tag-0003",
  "idempotency_key": "idem-tag-0003",
  "occurred_at": "2026-10-11T12:00:00.000Z",
  "subject_ref": "subject:synthetic",
  "account_ref": "account:synthetic",
  "event_context_token": "ctx.synthetic-token_0003",
  "tag": "pix_transfer_a1b2c3d4e5f6g7h8i9j0abcdeabcdeabcdeabcdeabcdeabcdez",
  "deadline_ms": 750
}

tag é um slug em minúsculas de até 64 caracteres (letras, dígitos e underscore, no máximo dez dígitos), nunca dado pessoal; este vetor está nesse limite · subject_ref e account_ref podem ser null, e um account_ref exige um subject_ref · refs são códigos opacos seus, nunca CPF, e-mail ou ID sequencial · deadline_ms é um inteiro de 250 a 5000, ou null para 5000; se for excedido, volta um Problem 503 que pode ser repetido, não uma nota parcial

Resposta síncrona

Leia, decida, devolva o que você fez.

status
COMPLETED
trust_score
72
device_match
0.94
coverage
100
reason_codes
NETWORK_TOR_DETECTED
limitations
none
policy
policy-withdrawal-v1
expires_at
+5 min
REVIEW

Depois, duas chamadas de retorno: customer_action com o que você fez e, quando souber, truth_status com o resultado real (o outcome: legítimo, fraude confirmada ou evidência insuficiente). O contrato submete as duas à mesma disciplina da chamada de avaliação: nada conta como aceito antes de um commit durável, e uma repetição idêntica não gera um segundo efeito. Um outcome pode ser corrigido depois — a correção entra como sucessora, e o registro anterior continua legível.

POST /v1/assessments/{assessment_id}/customer-actions
POST /v1/assessments/{assessment_id}/outcomes

↑ voltar ao exemplo completo

  • Web SDK
  • API S2S síncrona
  • SDK de servidor para Node.js
  • Servidor MCP para agentes de código
  • API de ação e outcome
  • Console

Web, em qualquer navegador moderno · nenhum app para instalar · SDK, avaliação e retorno no mesmo contrato versionado

npm install @fingertrackid/server assina a chamada por você, e @fingertrackid/mcp deixa o Claude Code, o Cursor ou qualquer agente de código compatível com MCP montar a integração a partir do contrato publicado. Passo a passo no quickstart, no guia do Web SDK e na referência da API.

10 · Zero trust no navegador

O navegador só coleta. Decisão e identificador nunca passam por ele.

Nada que vem do navegador é tratado como autoridade. A avaliação é servidor a servidor, assinada, e cada tentativa conta uma vez: repeti-la não cria efeito novo.

Quem fala com quem

Browser Your backend FingerTrackID event_context_token (that is all) HMAC · request_id assessment no decision no device_id

O navegador recebe só IDs opacos de sessão e de evento. Nota, sinais e recomendação nascem e ficam no servidor. O cookie first-party é assinado, HttpOnly, Secure e restrito ao seu tenant e à sua aplicação.

Anatomia da chamada

POST /v1/assessmentssecurity ftidHmacV1 do contrato
X-FTID-Signature: v1=<key_id>:<mac-hex>key_id UUIDv7 é o único localizador; tenant, aplicação, ambiente e capabilities só viram autoridade depois de um MAC válido em comparação de tempo constante. X-Client-Id, nonce legado e múltiplas assinaturas são recusados.
X-FTID-Timestamp: 1791720000Epoch em segundos. Tolerância de ±300 s. Um timestamp no futuro nunca estende a retenção.
X-FTID-Request-Id: <uuidv7>Um uso por tentativa, reservado depois de um MAC válido. Uma nova tentativa lógica assina um novo request_id; um MAC inválido não cria reserva.
X-FTID-External-Event-Id: evt:tag-0003Idêntico, byte a byte, ao do corpo e ao da string assinada.
body.idempotency_keyMesma chave, mesma operação: uma repetição idêntica devolve a mesma avaliação persistida, sem recalcular.
body.deadline_msSeu orçamento. Excedido antes da avaliação: Problem assessment-unavailable (503, retryable: true), não uma nota parcial.
  • 401uniforme: um key_id que não existe ou foi revogado, ou uma assinatura errada, produzem o mesmo authentication-failed.
  • 403uma credencial autenticada sem a capability de avaliação da rota.
  • 503dependência de segredo indisponível: um latch global deixa a resposta uniforme sem revelar se o key_id existe. Assine um novo request_id.

11 · Política versionada

Toda decisão tem versão. A versão congela tudo o que a definiu.

Mudar a sensibilidade de um indicador cria uma nova versão, com autor, período de vigência, simulação e rollback. O histórico não muda. Sem versão real, o uso fica bloqueado.

Versão que decidiu · exemplo withdrawal_completed

policy-withdrawal-v1

fallback_policy_version
production-observation-fallback-v2
ruleset_version
ruleset-web-v1
signal_catalog_version
web-detectors-v3
feature_schema_version
configured-assessment-features.v1
resolver_version
first-party-installation-v1
sdk_version
0.1.0
provider_versions
asn-reputation.v1 · cloud-ranges.v1 · icloud-private-relay.v1 · ip2proxy-lite-px2.v1 · tor-exit.v1 · x4b-vpn.v1
evidence_cutoff_at
2026-09-04T12:00:00Z
evaluated_at
2026-09-04T12:00:01Z
expires_at
2026-09-04T12:05:00Z
correlation_id
corr-assessment-withdrawal-0001

correlation_id serve para o suporte sem expor um identificador pessoal. As versões expostas são tags públicas opacas; IDs internos do banco de dados nunca aparecem na API, no webhook nem no console.

O que uma versão de política congela

  • catálogo de sinais
  • normalização
  • features
  • resolvedor de dispositivo
  • regras
  • estratégia de correlação
  • níveis por indicador
  • tetos e limiares

Reproduzível, nunca reescrita

exemplo login_completed

assessment_version1

supersedes_assessment_idnull

exemplo login_completed_revision_2

assessment_version2

supersedes_assessment_id…0000000101

Uma revisão operacional preserva a política e todas as demais versões vigentes no received_at do evento. Uma política nova sobre um evento antigo é uma simulação à parte; ela nunca reescreve qual recomendação orientou a decisão histórica.

12 · Shadow mode

Primeiro em paralelo. Só depois a resposta influencia uma ação.

Shadow mode é rodar o FingerTrackID lado a lado com o que você usa hoje, sem que a resposta toque em nenhuma decisão. Você compara, devolve os resultados reais e só então começa a usar a recomendação. É assim que recomendamos começar.

O ciclo completo

  1. 01

    O SDK coleta

    202 PROCESSING · event_context_token

  2. 02

    Seu backend pede a avaliação

    POST /v1/assessments · síncrono

  3. 03

    Você decide pelo seu fluxo

    em shadow, sem usar a resposta

  4. 04

    Você informa a ação

    customer_action · POST …/customer-actions

  5. 05

    Você informa o resultado

    truth_status · POST …/outcomes

recommendation_alignment · derivado no servidor a partir do par recomendação × ação; nunca declarado pelo cliente. Coincidência não prova causalidade, nem acerto, nem fraude.

Comparação, campo a campo

recommended_actioncustomer_actionrecommendation_alignment
REVIEWREVIEWED ou HELDALIGNED
STEP_UPALLOWEDNOT_ALIGNED
ALLOW ou MONITORALLOWEDALIGNED
BLOCK_RECOMMENDEDBLOCKEDALIGNED
qualquerCANCELLEDNOT_COMPARABLE

Bloquear não prova fraude. Confirmar fraude exige evidência independente: truth_status passa de PENDING para LEGITIMATE, FRAUD_CONFIRMED ou INSUFFICIENT_EVIDENCE, com maturidade PROVISIONAL ou MATURE. Só um rótulo maduro vira métrica de qualidade.

O que o ciclo alimenta

  • Falso positivo e falso negativo como métricas derivadas de rótulos maduros, não de campos digitados.
  • Recalibração de regras e limiares, sempre como uma nova versão de política.
  • Qualidade dos detectores medida no seu shadow mode, antes de a resposta influenciar qualquer ação sua.
  • O que ele não faz: virar bloqueio automático. customer_action e truth_status são fatos separados, e toda correção cria uma sucessora.

13 · Privacidade por contrato

Limitada pelo contrato, não por uma configuração.

Dado pessoal em texto claro não é requisito do produto. Você envia refs opacas de pessoa e de conta; não pedimos CPF, e-mail nem telefone para avaliar um acesso.

packages/contracts/src/sdk-handshake-v1.ts · política de coleta

canvas: z.boolean(),
audio: z.boolean(),
fonts: z.boolean(),
behavioral: z.literal(false),

packages/contracts/src/sdk-signals/rendering-v1.ts · trecho

const Hash128 = z.string().regex(/^[0-9a-f]{32}$/)
canvas_hash: Hash128.optional(),
webgl_gpu_family: z.enum(SDK_RENDERING_GPU_FAMILY_V1).optional(),
audio_hash: Hash128.optional(),
fonts_count: z.number().int().min(0).max(SDK_RENDERING_FONT_COUNT_V1).optional(),

A coleta comportamental, ou seja, movimento do ponteiro e digitação, só aceita o valor desligado: ligá-la exige mudar o contrato, não uma configuração. Canvas, WebGL, áudio offline e presença de fontes são lidos sob a política de coleta gerenciada, que os liga para todas as empresas, e só saem do navegador como valores derivados: hashes de tamanho fixo, uma família de GPU fechada, uma contagem e uma máscara de presença sobre uma lista fixa de fontes. O contrato não tem campo para pixels, amostras de áudio, nomes de fabricante ou renderizador de GPU, nem nomes de fontes. Juntos, esses valores derivados podem reconhecer o mesmo navegador de novo, então são tratados como dado de dispositivo, não como dado anônimo. Nunca coletados, como regra absoluta: senha, texto digitado, conteúdo de chat ou documento, área de transferência, captura de tela, microfone, câmera. Toda evidência tem uma classe de privacidade, e classe não é peso de risco.

Garantias que não dependem de boa vontade

  • Dado pessoal não entra em log. Dado bruto não aparece livremente no console: todo acesso a ele é registrado. Um identificador ou valor pessoal nunca vai numa URL.
  • A correlação entre tenants fica desligada. Toda tabela de domínio carrega tenant_id com isolamento forçado no banco de dados. Não existe reputação nem rótulo compartilhado entre clientes.
  • Cookie first-party servido do seu domínio: assinado, HttpOnly, Secure, restrito ao seu tenant e à sua aplicação. O valor nunca vai para banco de dados, fila ou log; se faltar ou for rejeitado, a continuidade se degrada como limitação e a avaliação não para.
  • Toda fusão de dispositivos é reversível e registra a versão do resolvedor que a fez. IP nunca consolida dispositivos sozinho.
  • Todo tipo de evidência tem finalidade, classe de privacidade, regra de acesso e retenção declaradas no nosso inventário de dados. Base legal, residência de dados e o DPA são tratados com o seu jurídico na contratação; nada nesta página é aconselhamento jurídico.

Party não é Account

Party Account Account Account

O vínculo vem do seu backend · nunca inferido a partir do fingerprint

Uma pessoa, várias contas legítimas. Uma conta nunca muda de pessoa em silêncio; a sessão só avança de anônima para pessoa e depois para uma conta da mesma pessoa. Uma contradição é um conflito, não uma nova associação nem evidência negativa improvisada.

Onde os dados ficam

cloud
Google Cloud, us-central1 region
source of truth
PostgreSQL, single
isolation
RLS forced per tenant, with a negative test
secrets
Secret Manager; never in code or in infrastructure state
logs
no PII; raw data never displayed freely

14 · Console

Um console para integrar, investigar e fechar o ciclo.

O console responde primeiro “estamos recebendo, avaliando e explicando com qualidade?” e só depois deixa alguém falar de legitimidade. Todo percentual nomeia o seu denominador.

Esquemático, não uma captura de tela · tons do console dentro da moldura

Detalhe do acesso. As três medidas como três componentes separados; a recomendação com seu recommendation_basis, a política vigente e o que o seu time informou ter feito; o frescor da evidência; os 13 indicadores com estado, aplicabilidade, fonte, confiança do detector, frescor e o motivo de qualquer não avaliado; limitações e reason codes; sessão, dispositivo e suas associações; multiplicidade no dispositivo; uma localização aproximada pela rede; o contexto do acesso; e uma aba de dados técnicos com tudo o que o SDK e a borda coletaram, incluindo a versão real do navegador lida das APIs que ele expõe, ao lado da versão que ele declara.

Filtros de investigação. A lista de acessos se restringe por provedor de internet (ASN), país da rede, instalação do dispositivo, motivo pelo qual um indicador não foi avaliado e até dois indicadores em estados escolhidos ao mesmo tempo, e encontra um acesso pela sua própria ref de conta ou de pessoa. Não há filtro por endereço IP: é dado pessoal. Cada detalhe de acesso também traz os seus itens de contexto ↑.

Investigação a fundo. A partir de qualquer acesso, um grafo de vínculos abre os dispositivos e as contas ao redor, um salto por vez, em até 92 dias do seu próprio histórico. Cada expansão é uma leitura registrada; endereços IP nunca viram nós.

Listas de bloqueio e de permissão. A partir do detalhe do acesso, seu time coloca um dispositivo, uma ref de conta ou um único IP na lista de bloqueio da empresa (bloquear ou revisar) ou na lista de permissão, com uma observação e o nome de quem adicionou. Num acesso de produção com nota, uma entrada se sobrepõe à recomendação e se nomeia em reason_codes. Nada é apagado: remover uma entrada registra quem removeu e quando.

Assistente de IA. Um painel lateral explica cada tela e responde perguntas sobre a sua própria integração e os seus acessos, dentro da sua empresa e do seu papel.

Configuração de risco. As regras de risco da própria empresa, por aplicação: cada um dos 13 indicadores fica desligado, em fantasma ou ativo, com peso de 1 a 100 pontos, e você define as faixas de nota e a ação de cada uma. Uma regra em fantasma é calculada e registrada, mas nunca muda a resposta. Antes de publicar, o cartão de impacto reaplica o seu rascunho sobre as avaliações dos últimos 1, 7 ou 30 dias. Cada um dos 54 itens de contexto ↑ pode entrar com os próprios pontos. Seu administrador ou supervisor de risco publica direto; toda publicação é uma nova versão auditada, e tudo em fantasma para todas as suas regras de uma vez. O FingerTrackID nunca ativa uma regra por você: o suporte só pode pôr todas as regras de uma aplicação em fantasma, com um motivo que o seu console mostra. Enquanto nenhuma regra está ativa, quem responde é a política gerenciada, publicada pelo time do FingerTrackID com aprovação registrada.

Dezesseis telas em quatro grupos · principal, detecção, operação, administração

  • 01Início
  • 09Integração e saúde
  • 02Visão geral
  • 10Uso
  • 03Acessos
  • 11Exportações
  • 04Fila de revisão
  • 12Relatórios
  • 05Configuração de risco
  • 13Usuários e acessos
  • 06Simulações de política
  • 14Auditoria
  • 07Listas
  • 15Ciclo de vida do cliente
  • 08Catálogo de indicadores
  • 16Conta e segurança

A fila de revisão é o módulo de revisão de saques: uma fila operacional construída sobre o mesmo núcleo, que leva a uma pessoa todo saque v1 com recomendação REVIEW, com a evidência ao lado. Avaliações com tag nunca entram nela, e ela fica vazia enquanto a política recomenda MONITOR, como a política gerenciada faz hoje.

Em inglês, português (Brasil e Portugal), espanhol, francês e alemão. Login com passkey ou segundo fator; permissões por papel; trilha de auditoria de quem viu dado sensível e de quem mudou o quê. Dado bruto não aparece livremente: todo acesso a ele é registrado.

15 · Como cobramos

Uma unidade de cobrança. O resto não conta.

Preço por volume de coletas concluídas, definido na proposta. O shadow mode consome as mesmas unidades e aparece no console como uso estimado; o que entra na fatura desse período é definido na proposta.

A unidade

Um snapshot de inteligência de dispositivo de produção, solicitado pela sua integração e concluído.

É a unidade de medida e a unidade candidata de cobrança. Cada device_intelligence_snapshot_id gera no máximo uma unidade, não importa quantas avaliações, tags, provedores ou reprocessamentos usem essa coleta.

  • Nota, recomendação, ação e outcome não determinam a cobrança. Um resultado arriscado não custa mais; um resultado legítimo não custa menos.
  • Um limite comercial nunca vira bloqueio, rate limit ou degradação automática do serviço.
  • Todo snapshot solicitado gera um registro de uso imutável, mesmo quando não é cobrável. As exclusões são comprovadas por esse registro, não reconstruídas a partir de logs.

Evento · gera unidade?

  • Aplicações fora de produção (desenvolvimento, staging)não
  • Nova tentativa com o mesmo idempotency_keynão
  • Qualquer avaliação, em qualquer tag, que reaproveita um snapshot recentenão
  • Reprocessamento, replay histórico, mudança de políticanão
  • Enriquecimento assíncrono e atualização iniciados por nósnão
  • Chamada ou nova tentativa a provedornão
  • Entrega de webhooknão
  • customer_action e outcomenão
  • Consulta, dashboard, relatório, exportaçãonão
  • 4xx por autenticação, autorização ou contrato inválidonão
  • 5xx, timeout do nosso lado, coleta INCONCLUSIVE ou FAILEDnão
  • Snapshot de produção, solicitado pela integração, concluídosim · 1

Proposta por volume, com o uso em shadow mode na mesa.

Pedir uma proposta

16 · Perguntas frequentes

As perguntas que um head de risco e um CTO fazem.

Q01Como a integração começa?
Em shadow mode. Você instala o SDK no seu site, liga a chamada servidor a servidor, e a resposta passa a rodar ao lado do seu fluxo real sem tocar em nenhuma decisão. Você devolve customer_action e o outcome e, no console, compara, acesso a acesso, a recomendação com o que o seu time informou ter feito, e acompanha a cobertura de evidência. Quando os números fecham, seu time decide se e onde a recomendação passa a influenciar uma decisão, sempre executada pelo seu backend.
Q02Quais jornadas vocês avaliam?
Qualquer tela que você escolher. Seu backend envia uma tag própria com cada avaliação, um slug em minúsculas como login, withdrawal ou pix_transfer: sem cadastro, sem lista fechada e sem limite. O console filtra, agrupa e exporta por tag, e os modelos (cadastro, login, recuperação de senha, segundo fator, alteração de perfil, depósito, saque, transferência Pix, trade, checkout) são um guia de integração. A tag nunca seleciona a política, os detectores, o fallback nem o prazo: toda avaliação com tag roda sob a mesma política e os mesmos 13 indicadores. Ela nunca deve levar dado pessoal. A requisição não leva valor, moeda nem beneficiário.
Q03Por que vocês não bloqueiam?
Porque evento não é fraude, nota não é decisão, e bloquear não prova nada. Quem conhece a conta, o limite, o histórico e o custo da fricção é você. Nós entregamos evidência, cobertura e uma recomendação explicada. BLOCK_RECOMMENDED é a recomendação mais forte que existe, e continua sendo uma recomendação. Quando você bloqueia, registra customer_action: BLOCKED, e isso vira dado para medir se a recomendação acertou.
Q04VPN, Tor ou aba anônima derrubam a nota?
Nas nossas políticas gerenciadas, nenhum deles produz BLOCK_RECOMMENDED sozinho; as regras que sua empresa configura seguem os pesos e o corte que ela escolheu. Modo privado e proteções do navegador são contexto neutro: podem reduzir a cobertura e aparecem no detalhe, sem reason code adverso. Tor, proxy, VPN e hospedagem são contexto de anonimização: uma política pode pesá-los junto com o que mais foi visto, nunca por tag. Na política gerenciada hoje, só automação e falsificação de navegador mexem na nota, e a recomendação é MONITOR. No exemplo do contrato v1 de saque nesta página, Tor detectado levou a REVIEW, e o reason code diz isso. Nunca é fraude em si.
Q05E se o SDK não carregar, ou o usuário bloquear scripts?
A jornada continua. Seu backend chama a API sem event_context_token e recebe INCONCLUSIVE, trust_score: null, evidence_coverage: 0, limitation_codes: ["COLLECTOR_NOT_LOADED"] e a recomendação de fallback, MONITOR. Nunca uma nota inventada. Nunca ALLOW por falta de evidência.
Q06Qual é a latência? Tem SLA?
O prazo é seu. O padrão do contrato é 5000 ms, e deadline_ms o define em qualquer valor de 250 a 5000 (mantenha o timeout HTTP acima de cerca de 6 s para o padrão); se for excedido, você recebe um Problem assessment-unavailable (503, retryable: true, com Retry-After), não uma resposta parcial. Repita a mesma operação lógica com um novo request_id. Latência e SLA entram na proposta, medidos no seu shadow mode antes de qualquer decisão depender da resposta.
Q07Como sei que a resposta não foi forjada?
Ela nunca passa pelo navegador. Seu backend assina cada chamada com HMAC-SHA-256 sobre dez linhas canônicas, a última delas o SHA-256 dos bytes exatos do corpo; key_id UUIDv7 é o único localizador público; request_id é reservado contra replay; uma falha de autenticação devolve um 401 uniforme sem revelar se a chave existe. O segredo nunca trafega. O vetor de teste normativo do protocolo faz parte do contrato; com ele você reproduz a assinatura byte a byte.
Q08Preciso enviar CPF, e-mail ou telefone?
Não. A avaliação usa refs opacas de pessoa e de conta que só o seu sistema resolve. Dado pessoal em texto claro não é requisito do produto. O comportamento de ponteiro e de digitação está desligado no contrato. As verificações de canvas, WebGL, áudio e fontes rodam sob a política de coleta gerenciada de todas as empresas e só saem do navegador como hashes, uma família de GPU e uma máscara de presença sobre uma lista fixa de fontes, nunca como pixels, som, nomes de GPU ou nomes de fontes. Senha, texto digitado, área de transferência, captura de tela, microfone e câmera são proibidos. Todo tipo de evidência tem finalidade, classe de privacidade e retenção declaradas; a base legal é revisada com o seu jurídico antes de a produção ser ligada, e nada nesta página substitui essa revisão.
Q09Quanto custa e o que o meu time precisa fazer?
Preço por volume de coletas concluídas, em proposta. A unidade candidata de cobrança é um snapshot concluído em produção; nada fora de produção conta. Do seu lado: um script no site, um endpoint servidor a servidor no backend para pedir a avaliação e duas chamadas de API para devolver a ação tomada e o resultado real (o outcome). O SDK é web e roda em qualquer navegador moderno; não há app para instalar.
Q10O que é inteligência de dispositivo, e qual a diferença para device fingerprinting?
O device fingerprinting lê características estáveis de um navegador para reconhecê-lo de novo. A inteligência de dispositivo começa aí e vai além: confere se essas características são coerentes entre si e com a rede, se há automação, emulador ou navegador anti-detect em ação, e como esse dispositivo se comporta entre as suas contas. O FingerTrackID devolve isso como uma nota de confiança, uma correspondência de dispositivo com confiança própria, cobertura de evidência e 13 indicadores, cada um com a versão do detector que o leu.
Q11Podemos definir nossas próprias regras, notas e listas?
Sim. No console, sua empresa dá pontos a qualquer um dos 13 indicadores e dos 54 itens de contexto, escolhe as faixas de nota e a recomendação de cada faixa, e pode rodar qualquer regra primeiro em fantasma, calculada e registrada sem mudar a resposta. As listas de bloqueio e de permissão aceitam um dispositivo, uma ref de conta ou um único IP, uma entrada por vez, com uma observação e o nome de quem adicionou. Toda publicação é uma nova versão auditada. O FingerTrackID nunca ativa uma regra nem adiciona uma entrada de lista por você.
Q12Um agente de IA de código consegue fazer a integração?
Sim. O SDK de servidor @fingertrackid/server assina a chamada, o servidor MCP @fingertrackid/mcp dá ao Claude Code, ao Cursor ou a qualquer agente compatível com MCP os contratos, os vetores de assinatura, um módulo de servidor pronto por tag e uma verificação do seu domínio de coleta, tudo somente leitura, e a documentação publica llms.txt e um bloco pronto de regras para o seu AGENTS.md. O segredo fica no seu ambiente; o agente nunca precisa vê-lo.
Q13Qual o peso do SDK, e ele deixa a página mais lenta?
O SDK coleta uma vez, em paralelo, numa única requisição ao seu próprio subdomínio de coleta. No desktop, a coleta completa levou entre cerca de 80 e 125 ms na mediana em Chrome, Firefox e Safari, sob um orçamento rígido de 250 ms; cada verificação ocupa no máximo 2 ms da thread principal, e as que esperam, como o tempo de frame ou um Worker, esperam em paralelo. Ele nunca mostra pedido de permissão e nunca bloqueia a sua interface.

17 · Contato

Avalie a jornada que você escolher, em shadow mode.

Comece em shadow mode: a resposta roda ao lado do seu fluxo real sem tocar em nenhuma decisão, você compara, devolve os resultados e só então começa a usar a recomendação. Se você tem telas em que a decisão importa e quer ver a resposta explicada antes de confiar nela, fale com a gente.

Agendar uma demo

Informe um e-mail com domínio.
Informe o nome da empresa.
O que você quer avaliar

Uma jornada é qualquer tela que você escolher, com o nome que você der. Marque as que você já tem em mente; o resto sai na conversa.

Sem newsletter · respondemos por e-mail, uma pessoa por vez · ou escreva direto para contato@fingertrackid.com

Como começa

  1. Uma conversa de 30 minutos sobre as jornadas que você quer avaliar e o seu fluxo de decisão.
  2. Credencial de servidor para a sua aplicação, contrato executável e vetor HMAC. Não há sandbox: você testa em produção, em shadow mode.
  3. Shadow mode com o seu fluxo real: você compara e devolve resultados antes de a resposta influenciar qualquer decisão.
  4. Produção nas telas que você marcar com tag, com política versionada; toda decisão fica com o seu backend.

O que vem junto

  • Console com cobertura de evidência e, acesso a acesso, a recomendação ao lado da ação que você informou
  • Contrato event-assessment.v1 executável, com vetor de teste HMAC
  • Shadow mode em produção desde o primeiro dia: a resposta roda ao lado do seu fluxo e nunca toca uma decisão
  • Canal direto com as pessoas que escrevem a política