01 · Device intelligence para prevenção de fraude As jornadas que identifica com uma tag

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

Uma tag por cada ecrã que escolher

Um script no seu site lê o navegador e o dispositivo em cerca de uma décima de segundo no computador. Uma chamada assinada a partir do seu backend, com uma tag à sua escolha, recebe a resposta de imediato: uma pontuação de confiança, a cobertura de evidência e 13 indicadores, de bots e automação, falsificação de navegador e emuladores a VPN, proxy e Tor, com o motivo de cada recomendação. Identifique account takeover, registos falsos e fraude em levantamentos com evidência, não com palpites. Nós recomendamos. Quem decide e age é a sua empresa.

Resposta síncrona em qualquer ecrã que identificar · Modo sombra antes de influenciar qualquer decisão · As suas regras, as suas listas, a sua decisão

Como ler esta resposta · exemplo v1.1/login_completed

  1. Porquê esta recomendação

    ALLOWreason_codes · NO_ADVERSE_INDICATOR_MATCH

    Nenhum indicador que a política pondera foi detetado. Exemplo do contrato: a política gerida do FingerTrackID recomenda MONITOR em qualquer pontuação; ALLOW vem de uma faixa de pontuação que a sua empresa definiu nas próprias regras de risco. Decidido sob policy-login-v1.

  2. O que a pontuação é, e o que não é

    trust_score 1000–100 · quanto mais alto, melhor

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

  3. Quanto foi possível observar

    evidence_coverage 100limitation_codes · nenhum

    A parte das verificações previstas que foi executada. A evidência em falta seria indicada aqui: reduz a cobertura e nunca é motivo de risco.

  4. A partir daqui, é consigo

    customer_actiondepois o resultado

    O seu backend decide e age, e depois comunica o que fez e o resultado real. 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 mais alto, 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 detetados 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 determinaram · 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 cada resposta

3

Estados por indicador: detetado, não detetado, 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 recolha

17

Secções de evidência do navegador e do dispositivo por recolha

48

APIs do navegador verificadas face à versão que o navegador declara

125

Milissegundos ou menos: mediana da recolha no computador em Chrome, Firefox e Safari

0

Pedidos de permissão mostrados ao seu utilizador

As suas regras e a sua investigação

54

Informações de contexto calculadas em cada avaliação

67

Regras que a sua empresa pode ponderar na própria pontuação: 13 indicadores e 54 informações de contexto

6

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

6

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

Nunca — e isto não muda consoante o plano

  • Movimento do ponteiro e teclas premidas: o SDK não recolhe nenhum dos dois
  • Píxeis, amostras de áudio, nomes de fabricante e de renderizador da GPU ou nomes de tipos de letra: canvas, WebGL, WebGPU, áudio e tipos de letra só saem do navegador como hashes, uma família de GPU e uma máscara de presença sobre uma lista fixa de tipos de letra
  • 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 recolha, medido nas nossas máquinas de teste com a cache vazia. Nenhum muda consoante o plano ou o volume.

03 · Casos de uso

Prevenção de fraude nos ecrãs onde a decisão importa.

A device intelligence responde a uma pergunta antes de o seu backend deixar a ação avançar: o que está realmente do outro lado deste ecrã? A mesma chamada serve todas as jornadas; a tag que envia apenas a classifica.

login · password_recovery · profile_change

Prevenção de account takeover

Uma conta conhecida num dispositivo que nunca usou, um navegador que mente sobre si próprio, um navegador anti-detect, uma viagem impossível de fazer naquele tempo. Cada caso chega como evidência, para que peça um segundo fator apenas quando importa.

signup · login · checkout

Deteção de bots e automação

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

signup · deposit · promotions

Contas falsas e multi-contas

Contas e pessoas por dispositivo e por IP, quão raro é o perfil do dispositivo na sua base, uma recolha repetida noutro dispositivo. Contexto que as suas regras podem ponderar, nunca um veredicto automático: uma pessoa pode ter várias contas legítimas.

withdrawal · pix_transfer · trade

Fraude em levantamentos, Pix e transferências

Um levantamento na primeira hora após um dispositivo novo, beneficiários partilhados entre contas, vizinhos que marcou como fraude confirmada. É o seu backend que retém ou revê o dinheiro; nós nunca o fazemos.

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 píxeis em bruto.

qualquer jornada

Deteção de VPN, proxy e Tor

Fornecedores de VPN conhecidos, proxies públicos, saídas Tor, gamas de alojamento e Apple iCloud Private Relay, a partir de listas públicas que atualizamos do nosso lado. A anonimização é contexto, não culpa: a sua política decide quanto 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 exatamente o que o analista precisa de ver: se o problema está no acesso ou na evidência.

trust_score

Confiança no acesso

72

0100 · quanto mais alto, melhor

Responde a quão fiável é este acesso sob esta versão da política; a tag que envia não a altera. Número inteiro de 0 a 100. Só existe quando assessment_status = COMPLETED; em qualquer outro estado é null, nunca um valor por omissão.

Não é uma probabilidade de fraude, a reputação da pessoa nem um valor por omissão para dados em falta. Mostramos 72/100, nunca "72% fiá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 agrupamento probabilístico.

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

evidence_coverage

Suficiência da evidência

100

0100 · 13 de 13 avaliados

Quanto do conjunto previsto de verificações foi possível executar, de 0 a 100. Cada indicador aplicável que fica como NOT_EVALUATED reduz a cobertura e aparece em limitation_codes.

Não faz parte da pontuação. Uma cobertura baixa não puxa a pontuação para baixo nem para cima: deixa a avaliação inconclusiva.

Porque não as somamos

Uma pontuação única de "suspeita" mistura três perguntas diferentes: este acesso merece confiança? A evidência foi suficiente? É o mesmo dispositivo? Quando a resposta chega separada, o seu analista sabe se deve pedir um segundo fator, esperar pela recolha ou consultar o histórico. Quando chega fundida, 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.

Cada avaliação web devolve os 13 códigos, sempre. O que muda é o estado de cada um, nunca a lista. Cada indicador tem o seu próprio detetor versionado, e a resposta indica a versão que o avaliou. Um detetor em falta, expirado ou com erro nunca se torna false.

signal_catalog web · 13 códigos · exemplo withdrawal_completed

  • Detetado
  • 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 geridas, o Tor por si só nunca justifica BLOCK_RECOMMENDED; as regras que a sua empresa configura seguem os pesos e o corte que ela escolheu. Neste exemplo do contrato v1, policy-withdrawal-v1 pediu a revisão do levantamento, não um bloqueio, e o único reason code diz exatamente isso. A política gerida hoje em produção recomenda MONITOR em qualquer pontuação.

O mesmo indicador, três estados

  • Detetado · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · exemplo withdrawal_completed
  • Não_detetado · 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 detetor em falta, expirado ou com erro nunca se torna false. NOT_APPLICABLE vem apenas da matriz imutável do catálogo por canal, motor e plataforma; a sua tag nunca a altera, e uma política desligada, um timeout ou uma indisponibilidade nunca tomam esse atalho.

Contexto neutro por omissão

PRIVATE_BROWSINGBROWSER_PRIVACY_BRAVEBROWSER_PRIVACY_SAFARIBROWSER_PRIVACY_SAMSUNG_INTERNETNETWORK_PROXYNETWORK_VPNNETWORK_TOR

Podem limitar o que observamos. A cobertura só baixa onde a evidência não é avaliada. Não são fraude. Descrevem o ambiente; não acusam a pessoa. Nas nossas políticas geridas, por si sós nunca justificam BLOCK_RECOMMENDED; as regras que a sua empresa configura seguem os pesos e o corte que ela escolheu. Quando não é possível distinguir o tipo de rede, como por trás do Apple iCloud Private Relay, alojamento, VPN e proxy ficam todos NOT_EVALUATED com NETWORK_TYPE_AMBIGUOUS: nunca marcamos três deteçõ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, gamas de fornecedores de cloud, listas de redes de alojamento, gamas de fornecedores de VPN e uma base de dados de proxies públicos. Os endereços dos seus utilizadores nunca são enviados aos editores das listas. Uma lista que ultrapassa a idade máxima deixa o seu indicador NOT_EVALUATED, nunca NOT_DETECTED.

06 · Informações de contexto

Para além dos 13 indicadores: 54 informações de contexto. Para a investigação e, quando assim escolher, para a sua pontuação.

Em cada avaliação, antes da resposta, calculamos 54 informações de contexto a partir do que foi recolhido e do histórico da sua própria empresa: quem mais usa o dispositivo, a que velocidade a conta se movimenta, a partir de que rede, ao lado de que contas. A política gerida do FingerTrackID mantém-nas fora da pontuação. Nas suas próprias regras de risco, qualquer uma pode ficar desligada, em fantasma ou ativa, com pontos para invulgar e muito invulgar: uma informação ativa que dispara desconta pontos da pontuação de confiança e identifica-se em reason_codes.

context-insight.v1 · 54 informações em seis temas · agrupadas como na consola e nas suas regras

  • Conta e dispositivo · 10

    Dispositivo novo e sistema operativo 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 de atividade elevada · quão comum, invulgar ou raro é o perfil do dispositivo na sua empresa · cookie do dispositivo perdido

  • Levantamentos e ordens · 7

    Levantamentos na primeira hora após um dispositivo novo · beneficiários por dispositivo e contas por beneficiário em 30 dias · número e montante de levantamentos por conta · número de ordens por conta e o intervalo mediano entre ordens

  • Rede e localização · 12

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

  • Integridade do navegador e do SDK · 16

    Ferramentas de programador abertas · marcas de automação · marcador de navegador anti-detect · assinatura TLS que não corresponde ao navegador declarado, e a sua estabilidade em 30 dias · renderizador por software e família de GPU · canvas ou áudio que muda entre duas leituras · navegador integrado numa 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 · recolha idêntica repetida noutro dispositivo · cookie do dispositivo usado em locais demasiado distantes

  • 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

  • Ligações entre contas, um salto · 4

    Outras contas que usaram os mesmos dispositivos · contas vizinhas onde foi detetada automação ou falsificação de navegador · contas vizinhas que marcou como fraude confirmada · beneficiários de levantamentos partilhados 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 seu motivo, nunca apresentado como zero.

Algumas informações dependem do que envia. Sem referências de conta ou de pessoa, sem tag ou sem resultados, o item di-lo: conta não enviada, avaliação sem tag, nenhum resultado enviado. Um pedido com tag não leva montante nem beneficiário, por isso os itens de montante e de beneficiário do levantamento também o dizem. 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 não são

  • Não são um dos 13 indicadores, nem nunca um código de limitação. Só chegam a reason_codes através de uma regra que a sua empresa ativou.
  • Nunca entram na pontuação da política gerida do FingerTrackID. Uma informação ativa sem dados não desconta nada: evidência em falta nunca se torna risco.
  • Não são um modelo oculto: cada informação é lida como esperada, invulgar ou muito invulgar numa régua que a sua empresa pode ajustar, a partir de um valor por omissã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 uma regra "N contas por dispositivo = fraude".

Onde o analista as lê

Detalhe do acesso. Um cartão "Contexto do acesso" agrupa as informações por tema, com as respetivas janelas de tempo, o corte do histórico que consideraram, quão invulgar é cada uma na sua régua e o motivo de cada item que ficou sem valor. Uma informação que não cabe no orçamento de tempo da avaliação é concluída em segundo plano e indica-o; nunca atrasa nem faz falhar a resposta.

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

Canvas, WebGL, áudio e tipos de letra são lidos sob a política de recolha gerida de todas as empresas, apenas como valores derivados, e alimentam algumas destas informações, 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 seu motivo.

07 · Inconclusivo é um resultado

Quando não conseguimos avaliar, dizemo-lo, e porquê.

Evidência em falta não produz confiança 100, nem se torna um sinal de fraude. Sem pontuação, a recomendação vem do fallback congelado dentro da versão da política e coberto pelo seu hash, e é uma única resposta para todos os estados sem pontuação, qualquer que seja a tag: MONITOR. Nunca ALLOW.

Casos sem pontuação dos exemplos do contrato

A tag nunca seleciona o fallback. Na política gerida, todo o estado sem pontuação, em qualquer tag, recomenda MONITOR: continuar e registar. O mesmo fazem os três exemplos do contrato abaixo.

  • INCONCLUSIVEtag login · o SDK não carregou

    MONITOR

    Sem recolha: trust_score: null, evidence_coverage: 0, COLLECTOR_NOT_LOADED, base INSUFFICIENT_EVIDENCE. Nada é alguma vez libertado 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, 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, base TECHNICAL_FAILURE. Nunca lida como "sem risco".

Sem pontuação nunca recomendamos ALLOW · fallback_policy_version production-observation-fallback-v2 nos exemplos · o fallback é validado com a política sempre que a política é lida

Quatro estados da avaliação

Concluída 72 base EVALUATION · os reason_codes explicam a pontuação
Inconclusiva null base INSUFFICIENT_EVIDENCE · os limitation_codes dizem o que faltou
Sem pontuação possível null base OUT_OF_POLICY_SCOPE · evento válido, a política não o cobre
Falhada null base TECHNICAL_FAILURE · POLICY_UNAVAILABLE, policy_version null · nunca "sem risco"

Os 14 códigos de limitação do catálogo · o que faltou, nunca porque é 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 recolha e a qualidade; um reason code explica a política. Cada indicador NOT_EVALUATED aponta para o seu; a avaliação agrega-os todos em limitation_codes. Uma limitação de recolha nunca é motivo de risco.

08 · Quem decide é a sua empresa

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

recommended_action diz o que a política sugere. customer_action diz o que a sua empresa fez. Dois campos, porque são dois factos.

Quem recomenda, quem decide, quem age

O FingerTrackID recomenda

  • ALLOW
  • MONITOR
  • STEP_UP
  • REVIEW
  • BLOCK_RECOMMENDED

Nunca só por privacidade · Tor, VPN, proxy, navegação anónima, dispositivo partilhado

O seu fluxo decide

O seu backend decide e age. Devolvemos uma recomendação; hoje a política gerida responde MONITOR, apenas observação. O que acontece ao acesso é decidido e executado do seu lado. Quem conhece a conta, o limite, o histórico e o custo da fricção é a sua empresa. Nós não.

A sua empresa age e comunica

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

customer_action · o campo que nos 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 seja legítima nem que o acesso esteja certificado. Só é emitida com pontuação e com a evidência obrigatória avaliada.

  • MONITOR

    Continuar, mas registar. É o fallback sem pontuação em qualquer tag e, hoje, também a resposta da política gerida em qualquer pontuação. Não significa suspeita confirmada nem exige qualquer ação do utilizador.

  • STEP_UP

    Pedir um segundo fator ou uma confirmação. Não significa que desafiemos alguém: quem mostra o desafio é a sua empresa.

  • REVIEW

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

  • BLOCK_RECOMMENDED

    A política sugere recusar. Não significa um bloqueio executado, fraude confirmada nem um banimento. Quando bloqueia, isso torna-se customer_action: BLOCKED, um evento seu, e alimenta a medição da precisão.

09 · Integração

Três passos, um contrato. O navegador recolhe; o 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 recolhe e devolve um token. Mais nada.

Servido a partir de um subdomínio seu. Antes de enviar o pedido que quer avaliar, seja qual for o ecrã, recolhe sinais do navegador e do ambiente e recebe 202 PROCESSING: confirma a receção, não um resultado. Os sinais de rede são acrescentados pelo edge no seu domínio de recolha, nunca pelo script. Nenhuma pontuação, sinal ou decisão regressa ao 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

O seu backend chama

Uma chamada assinada e síncrona, dentro do seu prazo.

HMAC-SHA-256 sobre dez linhas canónicas — marcador, key_id, método, caminho, timestamp, ids do evento e do pedido, metadados do conteúdo e, na última linha, o SHA-256 dos bytes exatos do corpo. Nunca volte a serializar o JSON antes do hash; o contrato traz o vetor normativo. key_id é o único localizador público. O segredo nunca viaja. Vetor canónico requests.both_refs_deadline_750 do contrato v1.1: a mesma rota e a mesma assinatura do v1, com uma tag em vez 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
}

a tag é um slug em minúsculas de até 64 caracteres (letras, dígitos e underscore, no máximo dez dígitos), nunca dados pessoais; este vetor está nesse limite · subject_ref e account_ref podem ser null, e um account_ref exige um subject_ref · as refs são códigos opacos seus, nunca um número de identificação, email 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 pontuação parcial

Resposta síncrona

Leia-a, decida, devolva o que 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 fez e, quando souber, truth_status com o resultado real (o outcome: legítimo, fraude confirmada ou evidência insuficiente). O contrato sujeita ambas à mesma disciplina da chamada de avaliação: nada conta como aceite antes de um commit durável, e uma repetição idêntica não acrescenta um segundo efeito. Um outcome pode ser corrigido mais tarde — a correção é acrescentada como sucessora, e o registo 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 programação
  • API de ação e resultado
  • Consola

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

npm install @fingertrackid/server assina a chamada por si, e @fingertrackid/mcp permite que o Claude Code, o Cursor ou qualquer agente de programação compatível com MCP faça a integração a partir do contrato publicado. Passo a passo no início rápido, no guia do Web SDK e na referência da API.

10 · Zero trust no navegador

O navegador só recolhe. A decisão e o identificador nunca passam por ele.

Nada do 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 um 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 apenas IDs opacos de sessão e de evento. A pontuação, os sinais e a recomendação nascem e ficam no servidor. O cookie first-party é assinado, HttpOnly, Secure e limitado ao seu tenant e à sua aplicação.

Anatomia da chamada

POST /v1/assessmentssegurança ftidHmacV1 a partir do contrato
X-FTID-Signature: v1=<key_id>:<mac-hex>key_id UUIDv7 é o único localizador; tenant, aplicação, ambiente e capacidades só se tornam autoridade depois de um MAC válido em comparação de tempo constante. X-Client-Id, nonce legado e assinaturas múltiplas são recusados.
X-FTID-Timestamp: 1791720000Epoch em segundos. Tolerância de ±300 s. Um timestamp no futuro nunca prolonga a retenção.
X-FTID-Request-Id: <uuidv7>Uma utilização por tentativa, reservada após um MAC válido. Uma repetição 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_msO seu orçamento. Excedido antes da avaliação: Problem assessment-unavailable (503, retryable: true), não uma pontuação parcial.
  • 401uniforme: um key_id inexistente ou revogado e uma assinatura errada produzem todos o mesmo authentication-failed.
  • 403uma credencial autenticada sem a capacidade de avaliação da rota.
  • 503dependência de segredos indisponível: um latch global torna a resposta uniforme sem revelar se o key_id existe. Assine um novo request_id.

11 · Política versionada

Cada decisão tem uma versão. A versão congela tudo o que a determinou.

Alterar a sensibilidade de um indicador cria uma nova versão, com autor, período de vigência, simulação e reversão. O histórico não muda. A falta de uma versão real bloqueia a utilização.

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 etiquetas públicas opacas; os IDs internos da base de dados nunca aparecem na API, no webhook nem na consola.

O que uma versão da política congela

  • catálogo de sinais
  • normalização
  • features
  • resolvedor de dispositivos
  • 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 outras versões em vigor no received_at do evento. Uma política nova sobre um evento antigo é uma simulação separada; nunca reescreve qual a recomendação que orientou a decisão histórica.

12 · Modo sombra

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

O modo sombra consiste em pôr o FingerTrackID a funcionar lado a lado com o que usa hoje, sem que a resposta toque em qualquer decisão. 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 recolhe

    202 PROCESSING · event_context_token

  2. 02

    O seu backend pede a avaliação

    POST /v1/assessments · síncrono

  3. 03

    A sua empresa decide no seu fluxo

    em sombra, sem usar a resposta

  4. 04

    Comunica a ação

    customer_action · POST …/customer-actions

  5. 05

    Comunica o resultado

    truth_status · POST …/outcomes

recommendation_alignment · derivado no servidor a partir do par recomendação × ação; nunca declarado pelo cliente. A coincidência não prova causalidade, nem precisão, 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ó uma etiqueta madura se torna métrica de qualidade.

O que o ciclo alimenta

  • Falsos positivos e falsos negativos como métricas derivadas de etiquetas maduras, não de campos preenchidos à mão.
  • Recalibração de regras e limiares, sempre como uma nova versão da política.
  • Qualidade dos detetores medida no seu modo sombra, antes de a resposta influenciar qualquer ação sua.
  • O que não faz: tornar-se enforcement automático. customer_action e truth_status são factos separados, e cada correção cria uma sucessora.

13 · Privacidade por contrato

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

PII em texto claro não é um requisito do produto. Envia referências opacas de pessoa e de conta; não pedimos número de identificação, email nem número de telemóvel para avaliar um acesso.

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

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

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

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 recolha comportamental, ou seja, movimento do ponteiro e teclas premidas, só aceita o valor desligado: ativá-la exige alterar o contrato, não uma definição. Canvas, WebGL, áudio offline e presença de tipos de letra são lidos sob a política de recolha gerida, que os ativa para todas as empresas, e só saem do navegador como valores derivados: hashes de comprimento fixo, uma família de GPU fechada, uma contagem e uma máscara de presença sobre uma lista fixa de tipos de letra. O contrato não tem campo para píxeis, amostras de áudio, nomes de fabricante ou de renderizador da GPU, nem nomes de tipos de letra. Em conjunto, estes valores derivados podem voltar a reconhecer o mesmo navegador, por isso são tratados como dados do dispositivo e não como dados anónimos. Nunca recolhidos, como regra absoluta: palavra-passe, texto escrito, conteúdo de conversas ou documentos, área de transferência, captura de ecrã, microfone, câmara. Cada evidência tem uma classe de privacidade, e classe não é peso de risco.

Garantias que não dependem de boa vontade

  • PII não entra em logs. Os dados em bruto não aparecem livremente na consola: cada acesso a eles fica registado. Um identificador ou valor pessoal nunca vai num URL.
  • A correlação entre tenants está desligada. Cada tabela de domínio tem tenant_id com isolamento forçado na base de dados. Não há reputação nem etiqueta partilhada entre clientes.
  • Cookie first-party servido a partir do seu domínio: assinado, HttpOnly, Secure, limitado ao seu tenant e à sua aplicação. O valor nunca viaja para base de dados, fila ou log; se faltar ou for rejeitado, a continuidade degrada-se como limitação e a avaliação não para.
  • Cada fusão de dispositivos é reversível e regista a versão do resolvedor que a fez. O IP nunca consolida dispositivos sozinho.
  • Cada tipo de evidência tem finalidade declarada, classe de privacidade, regra de acesso e conservação no nosso inventário de dados. Fundamento jurídico, residência dos dados e DPA são tratados com a sua equipa jurídica na contratação; nada nesta página é aconselhamento jurídico.

Party não é Account

Party Account Account Account

A ligação vem do seu backend · nunca inferida a partir do fingerprint

Uma pessoa, várias contas legítimas. Uma conta nunca muda de pessoa em silêncio; a sessão só progride 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 residem

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 · Consola

Uma consola para integrar, investigar e fechar o ciclo.

A consola responde primeiro a "estamos a receber, avaliar e explicar com qualidade?", e só depois deixa alguém falar de legitimidade. Cada percentagem indica o seu denominador.

Esquema, não uma captura de ecrã · tons da consola dentro da moldura

Detalhe do acesso. As três medidas como três componentes separados; a recomendação com o seu recommendation_basis, a política em vigor e o que a sua equipa comunicou ter feito; a atualidade da evidência; os 13 indicadores com estado, aplicabilidade, origem, confiança do detetor, atualidade e o motivo de cada não avaliado; limitações e reason codes; sessão, dispositivo e as suas associações; multiplicidade no dispositivo; uma localização aproximada a partir da rede; o contexto do acesso; e um separador de dados técnicos com tudo o que o SDK e o edge recolheram, incluindo a versão real do navegador lida a partir das APIs que expõe, ao lado da versão que declara.

Filtros de investigação. A lista de acessos filtra por fornecedor 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 referência de conta ou de pessoa. Não há filtro por endereço IP: é um dado pessoal. Cada detalhe de acesso traz também as suas informações de contexto ↑.

Investigar a fundo. A partir de qualquer acesso, um grafo de ligações abre os dispositivos e as contas à sua volta, um salto de cada vez, sobre até 92 dias do seu próprio histórico. Cada expansão é uma leitura registada; os endereços IP nunca se tornam nós.

Listas de bloqueio e de permissão. A partir do detalhe do acesso, a sua equipa coloca um dispositivo, uma referência de conta ou um único IP na lista de bloqueio (bloquear ou rever) ou na lista de permissão da sua empresa, com uma nota e o nome de quem o adicionou. Num acesso de produção com pontuação, uma entrada sobrepõe-se à recomendação e identifica-se em reason_codes. Nada é apagado: remover uma entrada regista quem a removeu e quando.

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

Configuração de risco. As regras de risco da sua própria empresa, por aplicação: cada um dos 13 indicadores fica desligado, em fantasma ou ativo, com um peso de 1 a 100 pontos, e a sua empresa define as faixas de pontuação e a ação de cada uma. Uma regra fantasma é calculada e registada, mas nunca altera a resposta. Antes de publicar, o cartão de impacto repete o seu rascunho sobre as avaliações dos últimos 1, 7 ou 30 dias. Cada uma das 54 informações de contexto ↑ pode juntar-se a elas com os seus próprios pontos. O seu administrador ou supervisor de risco publica diretamente; cada publicação é uma nova versão auditada, e tudo para fantasma suspende todas as suas regras de uma só vez. O FingerTrackID nunca ativa uma regra por si: o seu suporte só pode pôr todas as regras de uma aplicação em fantasma, com um motivo que a sua consola mostra. Enquanto nenhuma regra estiver ativa, responde a política gerida, publicada pela equipa do FingerTrackID com aprovação registada.

Dezasseis ecrãs em quatro grupos · principal, deteção, operação, administração

  • 01Início
  • 09Integração e saúde
  • 02Visão geral
  • 10Utilização
  • 03Acessos
  • 11Exportações
  • 04Fila de revisão
  • 12Relatórios
  • 05Configuração de risco
  • 13Utilizadores 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 levantamentos: uma fila operacional construída sobre o mesmo núcleo, que leva a uma pessoa cada levantamento v1 com recomendação REVIEW, com a evidência ao lado. As avaliações com tag nunca entram nela, e fica vazia enquanto a política recomendar MONITOR, como faz hoje a política gerida.

Em inglês, português (Brasil e Portugal), espanhol, francês e alemão. Início de sessão com passkey ou segundo fator; permissões por função; um registo de auditoria de quem viu dados sensíveis e de quem alterou o quê. Os dados em bruto não aparecem livremente: cada acesso a eles fica registado.

15 · Como cobramos

Uma unidade de faturação. Tudo o resto não conta.

Preço por volume de recolhas concluídas, definido na proposta. O modo sombra consome as mesmas unidades e aparece na consola como utilização estimada; o que entra na fatura desse período é definido na proposta.

A unidade

Um snapshot de device intelligence de produção, pedido pela sua integração e concluído.

É a unidade de medida e a unidade candidata de faturação. Cada device_intelligence_snapshot_id produz no máximo uma unidade, independentemente de quantas avaliações, tags, fornecedores ou reprocessamentos usem essa recolha.

  • Pontuação, recomendação, ação e resultado não determinam a faturação. Um resultado arriscado não custa mais; um resultado legítimo não custa menos.
  • Um limite comercial nunca se torna um bloqueio, um limite de pedidos nem uma degradação automática do serviço.
  • Cada snapshot pedido produz um registo de utilização imutável, mesmo quando não é faturável. As exclusões são provadas por esse registo, não reconstruídas a partir de logs.

Evento · cria uma unidade?

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

Proposta por volume, com a utilização do modo sombra em cima da mesa.

Pedir uma proposta

16 · FAQ

As perguntas que um responsável de risco e um CTO fazem.

Q01Como começa a integração?
Em modo sombra. Instala o SDK no seu site, ativa a chamada servidor a servidor e a resposta começa a correr ao lado do seu fluxo real sem tocar em qualquer decisão. Devolve customer_action e o resultado e, na consola, compara, acesso a acesso, a recomendação com o que a sua equipa comunicou ter feito, e acompanha a cobertura de evidência. Quando os números baterem certo, a sua equipa decide se e onde a recomendação começa a influenciar uma decisão, sempre executada pelo seu backend.
Q02Que jornadas avaliam?
Qualquer ecrã que escolher. O seu backend envia uma tag própria com cada avaliação, um slug em minúsculas como login, withdrawal ou pix_transfer: sem registo prévio, sem lista fechada e sem limite. A consola filtra, agrupa e exporta por tag, e os modelos (registo, login, recuperação de palavra-passe, segundo fator, alteração de perfil, depósito, levantamento, transferência Pix, negociação, checkout) são um guia de integração. A tag nunca seleciona a política, os detetores, o fallback nem o prazo: todas as avaliações com tag correm sob a mesma política e os mesmos 13 indicadores. Nunca pode conter dados pessoais. O pedido não leva montante, moeda nem beneficiário.
Q03Porque não bloqueiam?
Porque um evento não é fraude, uma pontuação não é uma decisão e bloquear não prova nada. Quem conhece a conta, o limite, o histórico e o custo da fricção é a sua empresa. Nós entregamos evidência, cobertura e uma recomendação explicada. BLOCK_RECOMMENDED é a recomendação mais forte que existe, e continua a ser uma recomendação. Quando bloqueia, regista customer_action: BLOCKED, e isso torna-se um dado para medir se a recomendação estava certa.
Q04VPN, Tor ou um separador privado baixam a pontuação?
Nas nossas políticas geridas, nenhum deles produz BLOCK_RECOMMENDED por si só; as regras que a sua empresa configura seguem os pesos e o corte que ela escolheu. O modo privado e as proteções do navegador são contexto neutro: podem reduzir a cobertura e aparecer no detalhe, sem reason code adverso. Tor, proxy, VPN e alojamento são contexto de anonimização: uma política pode pesá-los em conjunto com o resto do que foi visto, nunca pela tag. Na política gerida, hoje só a automação e a falsificação de navegador mexem na pontuação, e a recomendação é MONITOR. No exemplo do contrato v1 de levantamento nesta página, o Tor detetado levou a REVIEW, e o reason code di-lo. Nunca é fraude em si.
Q05E se o SDK não carregar, ou se o utilizador bloquear scripts?
A jornada continua. O 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 pontuação inventada. Nunca ALLOW por falta de evidência.
Q06Qual é a latência? Existe SLA?
O prazo é seu. O valor por omissão do contrato é 5000 ms, e deadline_ms define-o entre 250 e 5000 (mantenha o seu timeout HTTP acima de cerca de 6 s para o valor por omissão); se for excedido, 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. A latência e o SLA entram na proposta, medidos no seu modo sombra antes de qualquer decisão depender da resposta.
Q07Como sei que a resposta não foi falsificada?
Nunca passa pelo navegador. O seu backend assina cada chamada com HMAC-SHA-256 sobre dez linhas canónicas, a última das quais é o SHA-256 dos bytes exatos do corpo; key_id UUIDv7 é o único localizador público; request_id fica reservado contra replay; uma falha de autenticação devolve um 401 uniforme sem revelar se a chave existe. O segredo nunca viaja. O vetor de teste normativo do protocolo faz parte do contrato; com ele reproduz a assinatura byte a byte.
Q08Tenho de enviar número de identificação, email ou número de telemóvel?
Não. A avaliação usa referências opacas de pessoa e de conta que só o seu sistema resolve. PII em texto claro não é um requisito do produto. O comportamento do ponteiro e das teclas está desligado no contrato. As verificações de canvas, WebGL, áudio e tipos de letra correm sob a política de recolha gerida 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 tipos de letra, nunca como píxeis, som, nomes de GPU ou nomes de tipos de letra. Palavra-passe, texto escrito, área de transferência, captura de ecrã, microfone e câmara são proibidos. Cada tipo de evidência tem finalidade declarada, classe de privacidade e conservação; o fundamento jurídico é revisto com a sua equipa jurídica antes de a produção ser ativada, e nada nesta página substitui essa revisão.
Q09Quanto custa e o que tem a minha equipa de fazer?
Preço por volume de recolhas concluídas, numa proposta. A unidade candidata de faturação é um snapshot concluído em produção; nada fora da 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 à API para devolver a ação tomada e o resultado real (o outcome). O SDK é web e funciona em qualquer navegador moderno; não há nenhuma app para instalar.
Q10O que é device intelligence e em que difere de device fingerprinting?
O device fingerprinting lê características estáveis de um navegador para o voltar a reconhecer. A device intelligence parte daí e vai mais longe: verifica se essas características são coerentes entre si e com a rede, se há automação, um emulador ou um navegador anti-detect em ação, e como este dispositivo se comporta nas suas contas. O FingerTrackID devolve-a como uma pontuação de confiança, uma correspondência de dispositivo com confiança própria, a cobertura de evidência e 13 indicadores, cada um com a versão do detetor que o leu.
Q11Podemos definir as nossas próprias regras, pontuações e listas?
Sim. Na consola, a sua empresa atribui pontos a qualquer um dos 13 indicadores e das 54 informações de contexto, escolhe as faixas de pontuação e a recomendação de cada faixa, e pode pôr qualquer regra primeiro em fantasma, calculada e registada sem alterar a resposta. As listas de bloqueio e de permissão aceitam um dispositivo, uma referência de conta ou um único IP, uma entrada de cada vez, com uma nota e o nome de quem a adicionou. Cada publicação é uma nova versão auditada. O FingerTrackID nunca ativa uma regra nem adiciona uma entrada a uma lista por si.
Q12Um agente de programação com IA pode 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 recolha, tudo só de leitura, e a documentação publica llms.txt e um bloco de regras pronto para o seu AGENTS.md. O segredo fica no seu ambiente; o agente nunca precisa de o ver.
Q13Quanto pesa o SDK, e torna a página mais lenta?
O SDK recolhe uma vez, em paralelo, num único pedido ao seu próprio subdomínio de recolha. No computador, a recolha completa demorou entre cerca de 80 e 125 ms na mediana em Chrome, Firefox e Safari, com 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 a medição de frames ou um Worker, esperam em paralelo. Nunca mostra um pedido de permissão e nunca bloqueia a sua interface.

17 · Contacto

Avalie a jornada que escolher, em modo sombra.

Comece em modo sombra: a resposta corre ao lado do seu fluxo real sem tocar em qualquer decisão, compara, devolve os resultados e só então começa a usar a recomendação. Se tem ecrãs onde a decisão importa e quer ver a resposta explicada antes de confiar nela, fale connosco.

Marcar uma demonstração

Introduza um email com domínio.
Introduza o nome da empresa.
O que quer avaliar

Uma jornada é qualquer ecrã que escolher, com o nome que lhe der. Assinale as que já tem em mente; o resto surge na conversa.

Sem newsletter · respondemos por email, uma pessoa de cada vez · ou escreva diretamente para contato@fingertrackid.com

Como começa

  1. Uma conversa de 30 minutos sobre as jornadas que 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: testa em produção, em modo sombra.
  3. Modo sombra com o seu fluxo real: compara e devolve resultados antes de a resposta influenciar qualquer decisão.
  4. Produção nos ecrãs que identificar com tag, com política versionada; cada decisão fica com o seu backend.

O que inclui

  • Consola com cobertura de evidência e, acesso a acesso, a recomendação ao lado da ação que comunicou
  • Contrato event-assessment.v1 executável, com um vetor de teste HMAC
  • Modo sombra em produção desde o primeiro dia: a resposta corre ao lado do seu fluxo e nunca toca numa decisão
  • Canal direto com as pessoas que escrevem a política