01 · Device intelligence voor fraudepreventie De journeys die u tagt

Device intelligence- en fraudedetectie-API voor het web Beoordeel elke toegang. Beslis op basis van bewijs.

Eén tag per scherm dat u kiest

Eén script op uw site leest de browser en het apparaat in ongeveer een tiende seconde op desktop. Eén ondertekende call vanuit uw backend, met een tag die u zelf benoemt, levert direct het antwoord: een risicoscore (trust score), bewijsdekking en 13 indicatoren, van bots en automatisering, browser-spoofing en emulators tot VPN, proxy en Tor, met de reden achter elke aanbeveling. Herken accountovername (account takeover), nepregistraties en uitbetalingsfraude op basis van bewijs, niet op gevoel. Wij adviseren. U beslist en handelt.

Synchrone response op elk scherm dat u tagt · Shadow mode voordat het een beslissing beïnvloedt · Uw regels, uw lijsten, uw keuze

Zo leest u deze response · voorbeeld v1.1/login_completed

  1. Waarom deze aanbeveling

    ALLOWreason_codes · NO_ADVERSE_INDICATOR_MATCH

    Geen enkele indicator die de policy weegt, kwam terug als gedetecteerd. Contractvoorbeeld: de managed policy van FingerTrackID adviseert MONITOR bij elke score; ALLOW komt uit een scoreband die uw bedrijf in zijn eigen risicoregels heeft ingesteld. Besloten onder policy-login-v1.

  2. Wat de score is, en wat niet

    trust_score 1000–100 · hoger is beter

    Vertrouwen in deze toegang onder deze policyversie, geen fraudekans. Buiten COMPLETED is het null, nooit een standaardwaarde.

  3. Hoeveel er gezien kon worden

    evidence_coverage 100limitation_codes · geen

    Het aandeel van de verwachte controles dat is uitgevoerd. Ontbrekend bewijs zou hier worden benoemd: het verlaagt de dekking en is nooit een risicoreden.

  4. Daarna is het aan u

    customer_actiondaarna de uitkomst

    Uw backend beslist en handelt, en meldt daarna wat hij deed en wat de echte uitkomst was. Wij blokkeren nooit en houden nooit geld vast.

POST /v1/assessments → 201

event-assessment.v1.1 · contractvoorbeeld

assessment_statusVoltooidbeoordeling voltooid
trust_score1000–100 · hoger is beter
device_match_confidence0.980–1 · sterkte van de match
evidence_coverage1000–100 · toereikendheid
ALLOWrecommendation_basis · EVALUATIONaanbeveling, geen actie
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}
Volledige response · 54 regels · 13 signalen, niet-gedetecteerde ingeklapt
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}

Versies die het bepaalden · 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 signalen in de volledige response · indicatormatrix ↓

Het product in cijfers

De response

13

Webindicatoren in elke response

3

Statussen per indicator: gedetecteerd, niet gedetecteerd, niet geëvalueerd

14

Benoemde redenen voor “niet geëvalueerd”, nooit een stille false

5

Mogelijke aanbevelingen

3

Aparte maten: vertrouwen, device match, bewijsdekking

1

Ondertekende call per beoordeeld event

De collectie

17

Secties met browser- en apparaatbewijs per collectie

48

Browser-API’s getoetst aan de versie die de browser opgeeft

125

Milliseconden of minder: mediane collectie op desktop in Chrome, Firefox en Safari

0

Toestemmingsvragen die uw gebruiker te zien krijgt

Uw regels en uw onderzoek

54

Contextinzichten berekend binnen elke beoordeling

67

Regels die uw bedrijf in zijn eigen score kan laten meewegen: 13 indicatoren en 54 inzichten

6

Gepubliceerde referentielijsten achter de netwerkindicatoren

6

Talen van de console: Engels, Portugees (Brazilië en Portugal), Spaans, Frans, Duits

Nooit — en dat verandert niet per abonnement

  • Muisbewegingen en toetsaanslagen: de SDK verzamelt geen van beide
  • Pixels, audiosamples, namen van GPU-leverancier en renderer of lettertypenamen: canvas, WebGL, WebGPU, audio en lettertypen verlaten de browser alleen als hashes, een GPU-familie en een aanwezigheidsmasker over een vaste lijst lettertypen
  • WebRTC, lokale poorten, batterij, bewegingssensoren: worden nooit gelezen
  • Geen toestemmingsvraag, geen beslissing in de browser, geen actie van onze kant op uw account

— Elke waarde is een telling uit een geversioneerd contract, catalogus of lijst, behalve de collectietijd, gemeten op onze testmachines met een koude cache. Geen ervan verandert per abonnement of volume.

03 · Toepassingen

Fraudepreventie op de schermen waar de beslissing ertoe doet.

Device intelligence beantwoordt één vraag voordat uw backend de actie doorlaat: wat zit er echt aan de andere kant van dit scherm? Dezelfde call dient elke journey; de tag die u meestuurt, archiveert hem alleen.

login · password_recovery · profile_change

Preventie van accountovername

Een bekend account op een apparaat dat het nooit eerder gebruikte, een browser die over zichzelf liegt, een anti-detect browser, een reis die onmogelijk op tijd te maken is. Elk daarvan komt terug als bewijs, zodat u alleen om een tweede factor vraagt als het ertoe doet.

signup · login · checkout

Botdetectie en detectie van automatisering

Headless browsers, automatiseringsframeworks, AI-agents herkend aan hun signatuur, en verkeer uit datacenters. BOT_AUTOMATION en NETWORK_HOSTING zeggen wat er gezien is; de dekking zegt hoeveel er gezien kon worden.

signup · deposit · promotions

Nepaccounts en meerdere accounts

Accounts en personen per apparaat en per IP, hoe zeldzaam het apparaatprofiel in uw bestand is, één collectie herhaald op een ander apparaat. Context die uw regels kunnen laten meewegen, nooit een automatisch oordeel: één persoon kan meerdere legitieme accounts hebben.

withdrawal · pix_transfer · trade

Fraude bij uitbetalingen, Pix en overboekingen

Een opname binnen het eerste uur na een nieuw apparaat, begunstigden die accounts met elkaar delen, buren die u als bevestigde fraude hebt gemarkeerd. Uw backend houdt het geld vast of beoordeelt het; wij nooit.

elke journey

Emulators en gespoofte browsers

Android-emulators en virtualisatie, een GPU die onmogelijk is voor het opgegeven systeem, een browserversie die door zijn eigen API’s wordt tegengesproken. Device fingerprinting-signalen gelezen als hashes en families, nooit als ruwe pixels.

elke journey

VPN-, proxy- en Tor-detectie

Bekende VPN-aanbieders, publieke proxy’s, Tor-exits, hostingranges en Apple iCloud Private Relay, uit gepubliceerde lijsten die wij zelf actualiseren. Anonimisering is context, geen schuld: uw policy bepaalt hoe zwaar het weegt.

04 · De maten

Aparte maten. Geen gemiddelde vermomd als zekerheid.

Wie vertrouwen, dekking en device match samenvoegt tot één getal, verbergt precies wat de analist moet zien: of het probleem bij de toegang ligt of bij het bewijs.

trust_score

Vertrouwen in de toegang

72

0100 · hoger is beter

Geeft aan hoe betrouwbaar deze toegang is onder deze policyversie; de tag die u meestuurt, verandert dat niet. Geheel getal van 0 tot 100. Bestaat alleen bij assessment_status = COMPLETED; in elke andere status is het null, nooit een standaardwaarde.

Geen fraudekans, geen reputatie van de persoon en geen standaardwaarde voor ontbrekende data. Wij tonen 72/100, nooit “72% betrouwbaar”.

device_match_confidence

Device match

0.94

01 · plafond 0,98

Sterkte van het bewijs dat deze toegang van hetzelfde, al eerder geziene apparaat komt, van 0 tot 1. Komt met device_id, een ondoorzichtige publieke identifier van het probabilistische cluster.

Niet de identiteit van de persoon, en geen bewijs van hardware. Party en Account zijn verschillende dingen.

evidence_coverage

Toereikendheid van het bewijs

100

0100 · 13 van 13 geëvalueerd

Hoeveel van de verwachte set controles kon worden uitgevoerd, van 0 tot 100. Elke toepasselijke indicator die als NOT_EVALUATED achterblijft, verlaagt de dekking en verschijnt in limitation_codes.

Geen onderdeel van de score. Lage dekking trekt de score niet omlaag en duwt hem ook niet omhoog: de beoordeling blijft dan onbeslist.

Waarom we ze niet optellen

Eén enkele “verdachtheidsscore” vermengt drie verschillende vragen: verdient deze toegang vertrouwen? Was het bewijs toereikend? Is het hetzelfde apparaat? Komt het antwoord gescheiden, dan weet uw analist of hij om een tweede factor moet vragen, op de collectie moet wachten of de geschiedenis moet bekijken. Komt het samengevoegd, dan weet hij alleen dat “het 42 scoorde”.

05 · 13 indicatoren

Dertien indicatoren. Elk zegt of hij iets zag, niets zag, of niet kon evalueren.

Elke webbeoordeling geeft altijd de 13 codes terug. Wat verandert is de status van elk, nooit de lijst. Elke indicator heeft een eigen geversioneerde detector, en de response noemt de versie die hem evalueerde. Een detector die ontbreekt, verlopen is of faalt, wordt nooit false.

signal_catalog web · 13 codes · voorbeeld withdrawal_completed

  • Detected
  • Not_detected
  • — Not_evaluated

Integriteit van de omgeving

Browserprivacy · neutrale context

Netwerk · neutrale context

Apparaat

reason_codes · NETWORK_TOR_DETECTED REVIEW

In onze managed policies rechtvaardigt Tor alleen nooit BLOCK_RECOMMENDED; regels die uw bedrijf configureert, volgen de gewichten en de grens die het zelf koos. In dit v1-contractvoorbeeld vroeg policy-withdrawal-v1 om een beoordeling van de opname, geen blokkade, en de enige reason code zegt precies dat. De managed policy die vandaag in productie draait, adviseert MONITOR bij elke score.

Dezelfde indicator, drie statussen

  • Detected · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · voorbeeld withdrawal_completed
  • Not_detected · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · voorbeeld login_completed
  • — Not_evaluated · NETWORK_TOR not_evaluated_reason_code PROVIDER_UNAVAILABLE · limitation_codes ["PROVIDER_UNAVAILABLE"] · evidence_coverage 69 · voorbeeld provider_unavailable

Een detector die ontbreekt, verlopen is of faalt, wordt nooit false. NOT_APPLICABLE komt alleen uit de onveranderlijke matrix van de catalogus per kanaal, engine en platform; uw tag verandert dat nooit, en een uitgeschakelde policy, een timeout of een storing nemen nooit die kortere weg.

Standaard neutrale context

PRIVATE_BROWSINGBROWSER_PRIVACY_BRAVEBROWSER_PRIVACY_SAFARIBROWSER_PRIVACY_SAMSUNG_INTERNETNETWORK_PROXYNETWORK_VPNNETWORK_TOR

Ze kunnen beperken wat wij waarnemen. De dekking daalt alleen waar bewijs niet geëvalueerd is. Ze zijn geen fraude. Ze beschrijven de omgeving; ze beschuldigen de persoon niet. In onze managed policies rechtvaardigen ze op zichzelf nooit BLOCK_RECOMMENDED; regels die uw bedrijf configureert, volgen de gewichten en de grens die het zelf koos. Als het type netwerk niet te onderscheiden is, zoals achter Apples iCloud Private Relay, blijven hosting, VPN en proxy alle drie NOT_EVALUATED met NETWORK_TYPE_AMBIGUOUS: we markeren nooit drie detecties op basis van één enkele boolean.

Netwerkbewijs komt uit gepubliceerde referentielijsten die wij op onze eigen infrastructuur actualiseren: Tor-exitadressen, ranges van cloudproviders, lijsten van hostingnetwerken, ranges van VPN-aanbieders en een database van publieke proxy’s. De adressen van uw gebruikers worden nooit naar de uitgevers van de lijsten gestuurd. Een lijst die zijn maximale leeftijd heeft overschreden, laat zijn indicator op NOT_EVALUATED, nooit op NOT_DETECTED.

06 · Contextinzichten

Naast de 13 indicatoren: 54 contextinzichten. Voor het onderzoek, en voor uw score als u daarvoor kiest.

Binnen elke beoordeling, vóór de response, berekenen we 54 contextinzichten uit wat er is verzameld en uit de eigen geschiedenis van uw bedrijf: wie het apparaat nog meer gebruikt, hoe snel het account beweegt, vanaf welk netwerk, naast welke accounts. De managed policy van FingerTrackID houdt ze buiten de score. In uw eigen risicoregels kan elk ervan uit, ghost of actief staan, met punten voor ongebruikelijk en zeer ongebruikelijk: een actief inzicht dat afgaat, trekt punten af van de trust score en noemt zichzelf in reason_codes.

context-insight.v1 · 54 inzichten in zes thema’s · gegroepeerd zoals in de console en in uw regels

  • Account en apparaat · 10

    Nieuw apparaat en nieuw besturingssysteem voor het account · verschillende accounts en personen op het apparaat over 30 dagen · accounts van dezelfde persoon erop · apparaten per account en per persoon over 24 uur · apparaat met hoge activiteit · hoe gewoon, ongewoon of zeldzaam het apparaatprofiel in uw bedrijf is · apparaatcookie kwijt

  • Opnames en bestellingen · 7

    Opnames binnen het eerste uur na een nieuw apparaat · begunstigden per apparaat en accounts per begunstigde over 30 dagen · aantal en bedrag van opnames per account · aantal bestellingen per account en het mediane interval tussen bestellingen

  • Netwerk en locatie · 12

    Nieuw land en nieuwe internetprovider (ASN) voor het account · verschillende landen, providers en IP’s per account · accounts en personen per IP · onmogelijke reis · tijdzone van de browser die niet past bij het land van het IP · uitgangsland van de VPN · provider op een publieke misbruiklijst · Apple iCloud Private Relay

  • Integriteit van browser en SDK · 16

    Ontwikkelaarstools open · sporen van automatisering · marker van een anti-detect browser · TLS-signatuur die niet past bij de opgegeven browser, en de stabiliteit ervan over 30 dagen · softwarerenderer en GPU-familie · canvas of audio die verandert tussen twee metingen · in-app browser · mogelijke gastmodus · AI-agent herkend aan signatuur · botcategorie · SDK die afwijkt van het goedgekeurde pakket · één SDK-sessie op meerdere apparaten · identieke collectie herhaald op een ander apparaat · apparaatcookie gebruikt op plaatsen die te ver uit elkaar liggen

  • Snelheid · 5

    Toegangen per apparaat en per account over 5 minuten, 1 uur en 24 uur; per IP over 5 minuten en 1 uur · beoordelingen met dezelfde tag per account en per apparaat over 1 minuut, 5 minuten en 1 uur

  • Verbanden tussen accounts, één stap · 4

    Andere accounts die dezelfde apparaten gebruikten · naburige accounts waar automatisering of browser-spoofing is gedetecteerd · naburige accounts die u als bevestigde fraude hebt gemarkeerd · begunstigden van opnames die met andere accounts worden gedeeld

Drie statussen · een reden, nooit een nul

  • Waargenomen · de conditie is aanwezig, of de telling of meting wijkt af van de neutrale waarde.
  • Niet waargenomen · geëvalueerd, en afwezig of neutraal.
  • Niet geëvalueerd · altijd met de reden, nooit getoond als nul.

Sommige inzichten hangen af van wat u meestuurt. Zonder account- of persoonsrefs, zonder tag of zonder uitkomsten zegt het item dat ook: account niet meegestuurd, beoordeling zonder tag, geen uitkomsten meegestuurd. Een request met tag bevat geen bedrag of begunstigde, dus de items voor opnamebedrag en begunstigde zeggen dat eveneens. Een eerste toegang, een geanonimiseerd netwerk of een IP buiten het venster van één uur van een controle zijn ook redenen.

Wat ze niet zijn

  • Geen van de 13 indicatoren, en nooit een limitation code. Ze bereiken reason_codes alleen via een regel die uw bedrijf actief heeft gezet.
  • Nooit in de score van de managed policy van FingerTrackID. Een actief inzicht zonder data trekt niets af: ontbrekend bewijs wordt nooit risico.
  • Geen verborgen model: elk inzicht wordt gelezen als verwacht, ongebruikelijk of zeer ongebruikelijk tegen een meetlat die uw bedrijf kan bijstellen, vanaf een gepubliceerde standaard.
  • Geen beschuldiging: een hoog aantal accounts of personen op één apparaat is geen bewijs van fraude, en er is geen regel “N accounts per apparaat = fraude”.

Waar de analist ze leest

Toegangsdetail. Een kaart “Toegangscontext” groepeert de inzichten per thema, met hun tijdvensters, de grens van de geschiedenis die ze meenamen, hoe ongebruikelijk elk is op uw meetlat en de reden voor elk item zonder waarde. Een inzicht dat niet binnen het tijdsbudget van de beoordeling past, wordt op de achtergrond afgerond en zegt dat; het vertraagt de response nooit en laat hem nooit mislukken.

Indicatorcatalogus. Eén pagina legt uit waar elk van de 13 indicatoren naar zoekt, wat hem niet-geëvalueerd laat en of hij de score kan bewegen, en somt de contextinzichten op met de redenen waarom ze zonder waarde kunnen blijven.

Canvas, WebGL, audio en lettertypen worden voor elk bedrijf gelezen onder de managed collectiepolicy, alleen als afgeleide waarden, en voeden een paar van deze inzichten, zoals de GPU-familie, een softwarerenderer of een weergave die verandert tussen twee metingen. Waar de browser een controle niet toestaat, blijft het item niet geëvalueerd, met de reden.

07 · Onbeslist is een resultaat

Als we niet kunnen beoordelen, zeggen we dat, en waarom.

Ontbrekend bewijs levert geen vertrouwen van 100 op, en het wordt geen fraudesignaal. Zonder score komt de aanbeveling van de fallback die in de policyversie is vastgelegd en door haar hash wordt gedekt, en is het één antwoord voor elke status zonder score, ongeacht de tag: MONITOR. Nooit ALLOW.

Gevallen zonder score uit de contractvoorbeelden

De tag kiest nooit de fallback. In de managed policy adviseert elke status zonder score, op elke tag, MONITOR: doorgaan en vastleggen. Dat doen ook de drie contractvoorbeelden hieronder.

  • INCONCLUSIVEtag login · SDK niet geladen

    MONITOR

    Geen collectie: trust_score: null, evidence_coverage: 0, COLLECTOR_NOT_LOADED, basis INSUFFICIENT_EVIDENCE. Niets wordt ooit vrijgegeven als ALLOW.

  • INCONCLUSIVEnetwerkbewijs niet beschikbaar

    MONITOR

    Vier netwerkindicatoren NOT_EVALUATED, evidence_coverage: 69, PROVIDER_UNAVAILABLE. Wat de operatie ook is, ze blijft in uw systeem, onder uw beslissing; wij houden nooit geld vast.

  • FAILEDtag pix_transfer · policy niet beschikbaar

    MONITOR

    Technische storing: POLICY_UNAVAILABLE, policy_version: null, basis TECHNICAL_FAILURE. Nooit te lezen als “geen risico”.

Zonder score adviseren we nooit ALLOW · fallback_policy_version production-observation-fallback-v2 in de voorbeelden · de fallback wordt gevalideerd met de policy, elke keer dat de policy wordt gelezen

Vier statussen van een beoordeling

Voltooid 72 basis EVALUATION · reason_codes verklaren de score
Onbeslist null basis INSUFFICIENT_EVIDENCE · limitation_codes zeggen wat er ontbrak
Niet te scoren null basis OUT_OF_POLICY_SCOPE · geldig event, de policy dekt het niet
Mislukt null basis TECHNICAL_FAILURE · POLICY_UNAVAILABLE, policy_version null · nooit “geen risico”

De 14 limitation codes van de catalogus · wat er ontbrak, nooit waarom het riskant is

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

Een limitation code verklaart collectie en kwaliteit; een reason code verklaart de policy. Elke indicator NOT_EVALUATED verwijst naar zijn eigen code; de beoordeling bundelt ze allemaal in limitation_codes. Een collectiebeperking is nooit een risicoreden.

08 · U beslist

Vijf aanbevelingen. Nul acties door ons.

recommended_action zegt wat de policy voorstelt. customer_action zegt wat u deed. Twee velden, omdat het twee feiten zijn.

Wie adviseert, wie beslist, wie handelt

FingerTrackID adviseert

  • ALLOW
  • MONITOR
  • STEP_UP
  • REVIEW
  • BLOCK_RECOMMENDED

Nooit op basis van privacy alleen · Tor, VPN, proxy, incognito, gedeeld apparaat

Uw flow beslist

Uw backend beslist en handelt. Wij geven een aanbeveling terug; vandaag antwoordt de managed policy MONITOR, alleen observatie. Wat er met de toegang gebeurt, wordt aan uw kant besloten en uitgevoerd. U kent het account, de limiet, de geschiedenis en de kosten van frictie. Wij niet.

U handelt en meldt terug

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

customer_action · het veld dat u terugstuurt

  • Wij authenticeren nooit een persoon.
  • Wij blokkeren nooit uw interface.
  • Wij verplaatsen nooit geld.

Wat elke aanbeveling niet betekent

  • ALLOW

    De policy vond geen reden voor frictie bij deze toegang. Betekent niet dat de persoon legitiem is of dat de toegang gecertificeerd is. Wordt alleen afgegeven met een score en met het vereiste bewijs geëvalueerd.

  • MONITOR

    Ga door, maar leg het vast. Het is de fallback zonder score op elke tag, en vandaag ook het antwoord van de managed policy bij elke score. Betekent niet een bevestigd vermoeden, en vraagt geen enkele actie van de gebruiker.

  • STEP_UP

    Vraag om een tweede factor of een bevestiging. Betekent niet dat wij iemand uitdagen: u bent degene die de challenge toont.

  • REVIEW

    Stuur het naar menselijke beoordeling. Betekent niet dat wij geld vasthouden: de operatie blijft in uw systeem, onder uw beslissing.

  • BLOCK_RECOMMENDED

    De policy stelt voor om te weigeren. Betekent niet een uitgevoerde blokkade, bevestigde fraude of een ban. Als u blokkeert, wordt dat customer_action: BLOCKED, een event van uzelf, en het voedt de meting van de nauwkeurigheid.

09 · Integratie

Drie stappen, één contract. De browser verzamelt; uw backend vraagt; wij antwoorden.

Eén script op uw site, één server-to-server-endpoint in uw backend en twee calls om de actie en het resultaat terug te sturen. Geen beslissing op de client.

SDK op uw site

De SDK verzamelt en geeft een token terug. Dat is alles.

Geserveerd vanaf een subdomein van u. Voordat u het request verstuurt dat u beoordeeld wilt hebben, op welk scherm ook, verzamelt hij browser- en omgevingssignalen en ontvangt hij 202 PROCESSING: dat bevestigt ontvangst, geen resultaat. Netwerksignalen worden door de edge op uw collectiedomein toegevoegd, nooit door het script. Geen score, signaal of beslissing gaat terug naar de browser.

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

Uw backend roept aan

Eén ondertekende, synchrone call, binnen uw deadline.

HMAC-SHA-256 over tien canonieke regels — marker, key_id, methode, pad, timestamp, event- en request-id’s, contentmetadata, en op de laatste regel de SHA-256 van de exacte bytes van de body. Serialiseer de JSON nooit opnieuw vóór het hashen; het contract bevat de normatieve vector. key_id is de enige publieke locator. Het secret reist nooit mee. Canonieke vector requests.both_refs_deadline_750 uit het v1.1-contract: dezelfde route en dezelfde handtekening als v1, met een tag in plaats van journey, action en 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 is een slug in kleine letters van maximaal 64 tekens (letters, cijfers en underscore, hooguit tien cijfers), nooit persoonsgegevens; deze vector zit precies op die limiet · subject_ref en account_ref mogen null zijn, en een account_ref vereist een subject_ref · refs zijn ondoorzichtige codes van u, nooit een identiteitsnummer, e-mailadres of volgnummer · deadline_ms is een geheel getal van 250 tot 5000, of null voor 5000; wordt die overschreden, dan komt er een herhaalbare 503 Problem terug, geen gedeeltelijke score

Synchrone response

Lees hem, beslis, stuur terug wat u deed.

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

Daarna twee feedbackcalls: customer_action met wat u deed en, zodra u het weet, truth_status met het echte resultaat (de uitkomst: legitiem, bevestigde fraude of onvoldoende bewijs). Het contract houdt beide aan dezelfde discipline als de beoordelingscall: niets telt als geaccepteerd vóór een duurzame commit, en een identieke retry voegt geen tweede effect toe. Een uitkomst kan later worden gecorrigeerd — de correctie wordt als opvolger toegevoegd, en het eerdere record blijft leesbaar.

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

↑ terug naar het volledige voorbeeld

  • Web SDK
  • Synchrone S2S-API
  • Server-SDK voor Node.js
  • MCP-server voor coding agents
  • API voor actie en uitkomst
  • Console

Web, in elke moderne browser · geen app te installeren · SDK, beoordeling en feedback in hetzelfde geversioneerde contract

npm install @fingertrackid/server ondertekent de call voor u, en met @fingertrackid/mcp kunnen Claude Code, Cursor of elke coding agent die MCP ondersteunt de integratie opzetten vanuit het gepubliceerde contract. Stap voor stap in de quickstart, de Web SDK-gids en de API-referentie.

10 · Zero trust in de browser

De browser verzamelt alleen. Beslissing en identifier gaan er nooit doorheen.

Niets wat uit de browser komt, wordt als autoriteit behandeld. De beoordeling is server-to-server, ondertekend, en elke poging telt één keer: herhalen veroorzaakt geen nieuw effect.

Wie met wie praat

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

De browser ontvangt alleen ondoorzichtige sessie- en event-id’s. Score, signalen en aanbeveling ontstaan op de server en blijven daar. De first-party cookie is ondertekend, HttpOnly, Secure en beperkt tot uw tenant en applicatie.

Anatomie van de call

POST /v1/assessmentssecurity ftidHmacV1 uit het contract
X-FTID-Signature: v1=<key_id>:<mac-hex>key_id UUIDv7 is de enige locator; tenant, applicatie, omgeving en capabilities worden pas autoriteit na een geldige MAC in een vergelijking met constante tijd. X-Client-Id, legacy nonce en meerdere handtekeningen worden geweigerd.
X-FTID-Timestamp: 1791720000Epoch in seconden. Tolerantie van ±300 s. Een timestamp in de toekomst verlengt de bewaartermijn nooit.
X-FTID-Request-Id: <uuidv7>Eén gebruik per poging, gereserveerd na een geldige MAC. Een logische retry ondertekent een nieuwe request_id; een ongeldige MAC maakt geen reservering.
X-FTID-External-Event-Id: evt:tag-0003Byte voor byte identiek aan die in de body en in de ondertekende string.
body.idempotency_keyZelfde sleutel, zelfde operatie: een identieke retry geeft dezelfde opgeslagen beoordeling terug, zonder opnieuw te rekenen.
body.deadline_msUw budget. Overschreden vóór de beoordeling: Problem assessment-unavailable (503, retryable: true), geen gedeeltelijke score.
  • 401uniform: een key_id die niet bestaat, is ingetrokken of een verkeerde handtekening leveren allemaal dezelfde authentication-failed op.
  • 403een geauthenticeerde credential zonder de beoordelingscapability van de route.
  • 503secret-afhankelijkheid niet beschikbaar: een globale latch maakt de response uniform zonder te verraden of de key_id bestaat. Onderteken een nieuwe request_id.

11 · Geversioneerde policy

Elke beslissing heeft een versie. De versie bevriest alles wat haar bepaalde.

De gevoeligheid van één indicator wijzigen maakt een nieuwe versie aan, met auteur, geldigheidsperiode, simulatie en rollback. De geschiedenis verandert niet. Ontbreekt een echte versie, dan wordt gebruik geblokkeerd.

Versie die besliste · voorbeeld 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 is er voor support zonder een persoonlijke identifier bloot te geven. De zichtbare versies zijn ondoorzichtige publieke tags; interne database-id’s verschijnen nooit in de API, in de webhook of in de console.

Wat een policyversie bevriest

  • signaalcatalogus
  • normalisatie
  • features
  • device resolver
  • regels
  • correlatiestrategie
  • niveaus per indicator
  • plafonds en drempels

Reproduceerbaar, nooit herschreven

voorbeeld login_completed

assessment_version1

supersedes_assessment_idnull

voorbeeld login_completed_revision_2

assessment_version2

supersedes_assessment_id…0000000101

Een operationele revisie behoudt de policy en elke andere versie die gold op het received_at van het event. Een nieuwe policy over een oud event is een aparte simulatie; die herschrijft nooit welke aanbeveling de historische beslissing stuurde.

12 · Shadow mode

Eerst parallel. Pas daarna beïnvloedt de response een actie.

Shadow mode betekent FingerTrackID naast uw huidige oplossing laten draaien, zonder dat de response enige beslissing raakt. U vergelijkt, stuurt de echte resultaten terug en begint pas daarna de aanbeveling te gebruiken. Zo raden wij aan te beginnen.

De volledige cyclus

  1. 01

    De SDK verzamelt

    202 PROCESSING · event_context_token

  2. 02

    Uw backend vraagt de beoordeling aan

    POST /v1/assessments · synchroon

  3. 03

    U beslist via uw flow

    in shadow, zonder de response te gebruiken

  4. 04

    U meldt de actie

    customer_action · POST …/customer-actions

  5. 05

    U meldt het resultaat

    truth_status · POST …/outcomes

recommendation_alignment · op de server afgeleid uit het paar aanbeveling × actie; nooit door de client opgegeven. Overeenkomst bewijst geen causaliteit, geen nauwkeurigheid en geen fraude.

Vergelijking, veld voor veld

recommended_actioncustomer_actionrecommendation_alignment
REVIEWREVIEWED of HELDALIGNED
STEP_UPALLOWEDNOT_ALIGNED
ALLOW of MONITORALLOWEDALIGNED
BLOCK_RECOMMENDEDBLOCKEDALIGNED
elkeCANCELLEDNOT_COMPARABLE

Blokkeren bewijst geen fraude. Fraude bevestigen vereist onafhankelijk bewijs: truth_status gaat van PENDING naar LEGITIMATE, FRAUD_CONFIRMED of INSUFFICIENT_EVIDENCE, met maturiteit PROVISIONAL of MATURE. Alleen een volwassen label wordt een kwaliteitsmetriek.

Wat de cyclus voedt

  • Fout-positief en fout-negatief als metrieken afgeleid uit volwassen labels, geen ingetypte velden.
  • Herkalibratie van regels en drempels, altijd als een nieuwe policyversie.
  • Kwaliteit van de detectoren gemeten in uw shadow mode, voordat de response een actie van u beïnvloedt.
  • Wat het niet doet: automatische handhaving worden. customer_action en truth_status zijn aparte feiten, en elke correctie maakt een opvolger aan.

13 · Privacy per contract

Begrensd door het contract, niet door een instelling.

PII in leesbare vorm is geen productvereiste. U stuurt ondoorzichtige persoons- en accountrefs; wij vragen geen identiteitsnummer, e-mailadres of telefoonnummer om een toegang te beoordelen.

packages/contracts/src/sdk-handshake-v1.ts · collectiepolicy

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

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

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(),

Gedragscollectie, dat wil zeggen muisbewegingen en toetsaanslagen, accepteert alleen de waarde uit: aanzetten vereist een wijziging van het contract, geen instelling. Canvas, WebGL, offline audio en de aanwezigheid van lettertypen worden gelezen onder de managed collectiepolicy, die ze voor elk bedrijf aanzet, en ze verlaten de browser alleen als afgeleide waarden: hashes met een vaste lengte, een gesloten GPU-familie, een telling en een aanwezigheidsmasker over een vaste lijst lettertypen. Het contract heeft geen veld voor pixels, audiosamples, namen van GPU-leverancier of renderer, of lettertypenamen. Samen kunnen deze afgeleide waarden dezelfde browser opnieuw herkennen, dus worden ze behandeld als apparaatgegevens, niet als anonieme gegevens. Als absolute regel nooit verzameld: wachtwoord, getypte tekst, inhoud van chats of documenten, klembord, schermafbeelding, microfoon, camera. Elk stuk bewijs heeft een privacyklasse, en klasse is geen risicogewicht.

Garanties die niet van goede wil afhangen

  • PII komt niet in logs. Ruwe data verschijnt niet vrij in de console: elke toegang ertoe wordt vastgelegd. Een identifier of persoonlijke waarde gaat nooit in een URL.
  • Correlatie tussen tenants staat uit. Elke domeintabel draagt tenant_id met isolatie die in de database wordt afgedwongen. Er is geen reputatie of label dat tussen klanten wordt gedeeld.
  • First-party cookie geserveerd vanaf uw domein: ondertekend, HttpOnly, Secure, beperkt tot uw tenant en applicatie. De waarde reist nooit naar een database, queue of log; ontbreekt hij of wordt hij geweigerd, dan degradeert de continuïteit als beperking en stopt de beoordeling niet.
  • Elke samenvoeging van apparaten is omkeerbaar en legt de versie vast van de resolver die haar maakte. IP voegt nooit op zichzelf apparaten samen.
  • Elk soort bewijs heeft in onze data-inventaris een opgegeven doel, privacyklasse, toegangsregel en bewaartermijn. Rechtsgrond, dataresidentie en de verwerkersovereenkomst worden bij het contracteren met uw juridische team afgehandeld; niets op deze pagina is juridisch advies.

Party is geen Account

Party Account Account Account

De koppeling komt van uw backend · nooit afgeleid uit een fingerprint

Eén persoon, meerdere legitieme accounts. Een account wisselt nooit stilzwijgend van persoon; de sessie gaat alleen van anoniem naar persoon en daarna naar een account van dezelfde persoon. Een tegenstrijdigheid is een conflict, geen nieuwe koppeling en geen geïmproviseerd negatief bewijs.

Waar de data staat

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

Een console om te integreren, te onderzoeken en de cirkel te sluiten.

De console beantwoordt eerst “ontvangen, beoordelen en verklaren we met kwaliteit?”, en laat pas daarna iemand over legitimiteit praten. Elk percentage noemt zijn noemer.

Schematisch, geen screenshot · consoletinten binnen het kader

Toegangsdetail. De drie maten als drie aparte componenten; de aanbeveling met haar recommendation_basis, de geldende policy en wat uw team meldde te hebben gedaan; actualiteit van het bewijs; de 13 indicatoren met status, toepasselijkheid, bron, detectorvertrouwen, actualiteit en de reden voor elke niet-geëvalueerde; beperkingen en reason codes; sessie, apparaat en hun koppelingen; multipliciteit op het apparaat; een globale locatie op basis van het netwerk; de toegangscontext; en een tabblad met technische data met alles wat de SDK en de edge verzamelden, inclusief de echte browserversie, gelezen uit de API’s die hij blootgeeft, naast de versie die hij opgeeft.

Onderzoeksfilters. De lijst met toegangen filtert op internetprovider (ASN), land van het netwerk, apparaatinstallatie, de reden waarom een indicator niet geëvalueerd is, en op maximaal twee indicatoren tegelijk in gekozen statussen, en vindt een toegang via uw eigen account- of persoonsref. Er is geen filter op IP-adres: dat is een persoonsgegeven. Elk toegangsdetail bevat ook de contextinzichten ↑.

Diepgaand onderzoeken. Vanuit elke toegang opent een koppelingsgraaf de apparaten en accounts eromheen, stap voor stap, over maximaal 92 dagen van uw eigen geschiedenis. Elke uitbreiding is een vastgelegde leesactie; IP-adressen worden nooit knooppunten.

Block- en allowlists. Vanuit het toegangsdetail zet uw team een apparaat, een accountref of één IP op de blocklist (blokkeren of beoordelen) of de allowlist van uw bedrijf, met een notitie en de naam van wie het toevoegde. Bij een gescoorde productietoegang overschrijft een vermelding de aanbeveling en noemt zichzelf in reason_codes. Er wordt niets verwijderd: bij het weghalen van een vermelding wordt vastgelegd wie dat deed en wanneer.

AI-assistent. Een zijpaneel legt elk scherm uit en beantwoordt vragen over uw eigen integratie en toegangen, binnen uw bedrijf en uw rol.

Risicoconfiguratie. De eigen risicoregels van uw bedrijf, per applicatie: elk van de 13 indicatoren staat uit, ghost of actief, met een gewicht van 1 tot 100 punten, en u stelt de scorebanden en de actie per band in. Een ghost-regel wordt berekend en vastgelegd, maar verandert de response nooit. Vóór publicatie speelt de impactkaart uw concept opnieuw af over de beoordelingen van de laatste 1, 7 of 30 dagen. Elk van de 54 contextinzichten ↑ kan meedoen met eigen punten. Uw beheerder of risicosupervisor publiceert direct; elke publicatie is een nieuwe geauditeerde versie, en alles naar ghost zet al uw regels in één keer stil. FingerTrackID activeert nooit een regel voor u: de support kan alleen alle regels van een applicatie in ghost zetten, met een reden die uw console toont. Zolang er geen regel actief is, antwoordt de managed policy, gepubliceerd door het FingerTrackID-team met vastgelegde goedkeuring.

Zestien schermen in vier groepen · hoofd, detectie, operatie, beheer

  • 01Home
  • 09Integratie en status
  • 02Overzicht
  • 10Gebruik
  • 03Toegangen
  • 11Exports
  • 04Beoordelingswachtrij
  • 12Rapporten
  • 05Risicoconfiguratie
  • 13Gebruikers en toegang
  • 06Policysimulaties
  • 14Audit
  • 07Lijsten
  • 15Klantlevenscyclus
  • 08Indicatorcatalogus
  • 16Account en beveiliging

De beoordelingswachtrij is de module voor beoordeling van opnames: een operationele wachtrij op dezelfde kern, die elke v1-opname waarvoor REVIEW wordt geadviseerd met het bewijs ernaast bij een mens brengt. Beoordelingen met een tag komen er nooit in, en hij blijft leeg zolang de policy MONITOR adviseert, zoals de managed policy vandaag doet.

In het Engels, Portugees (Brazilië en Portugal), Spaans, Frans en Duits. Inloggen met passkey of tweede factor; rechten per rol; een audittrail van wie gevoelige data zag en wie wat wijzigde. Ruwe data verschijnt niet vrij: elke toegang ertoe wordt vastgelegd.

15 · Hoe we factureren

Eén factureringseenheid. Al het andere telt niet.

Prijs op basis van het volume voltooide collecties, vastgelegd in het voorstel. Shadow mode verbruikt dezelfde eenheden en verschijnt in de console als geschat gebruik; wat voor die periode op de factuur komt, staat in het voorstel.

De eenheid

Eén device intelligence-snapshot in productie, aangevraagd door uw integratie en voltooid.

Het is de meeteenheid en de beoogde factureringseenheid. Elke device_intelligence_snapshot_id levert hoogstens één eenheid op, hoeveel beoordelingen, tags, providers of herverwerkingen die collectie ook gebruiken.

  • Score, aanbeveling, actie en uitkomst bepalen de facturering niet. Een riskant resultaat kost niet meer; een legitiem resultaat kost niet minder.
  • Een commerciële limiet wordt nooit een blokkade, een rate limit of een automatische degradatie van de dienst.
  • Elke aangevraagde snapshot levert een onveranderlijk gebruiksrecord op, ook als hij niet factureerbaar is. Uitzonderingen worden door dat record bewezen, niet uit logs gereconstrueerd.

Event · maakt het een eenheid aan?

  • Niet-productieapplicaties (development, staging)nee
  • Retry met dezelfde idempotency_keynee
  • Elke beoordeling, op elke tag, die een verse snapshot hergebruiktnee
  • Herverwerking, historische replay, policywijzigingnee
  • Asynchrone verrijking en verversing door ons gestartnee
  • Providercall of retrynee
  • Webhookafleveringnee
  • customer_action en uitkomstnee
  • Query, dashboard, rapport, exportnee
  • 4xx door authenticatie, autorisatie of een ongeldig contractnee
  • 5xx, een timeout aan onze kant, collectie INCONCLUSIVE of FAILEDnee
  • Productiesnapshot, aangevraagd door de integratie, voltooidja · 1

Voorstel op basis van volume, met het gebruik in shadow mode op tafel.

Vraag een voorstel aan

16 · FAQ

De vragen die een head of risk en een CTO stellen.

Q01Hoe begint de integratie?
In shadow mode. U installeert de SDK op uw site, zet de server-to-server-call aan, en de response gaat naast uw echte flow draaien zonder enige beslissing te raken. U stuurt customer_action en de uitkomst terug, en in de console vergelijkt u, toegang voor toegang, de aanbeveling met wat uw team meldde te hebben gedaan, en volgt u de bewijsdekking. Als de cijfers kloppen, beslist uw team of en waar de aanbeveling een beslissing gaat beïnvloeden, altijd uitgevoerd door uw backend.
Q02Welke journeys beoordelen jullie?
Elk scherm dat u kiest. Uw backend stuurt bij elke beoordeling een eigen tag mee, een slug in kleine letters zoals login, withdrawal of pix_transfer: geen registratie, geen gesloten lijst en geen limiet. De console filtert, groepeert en exporteert per tag, en de templates (registratie, login, wachtwoordherstel, tweede factor, profielwijziging, storting, opname, Pix-overboeking, trade, checkout) zijn een integratiegids. De tag kiest nooit de policy, de detectoren, de fallback of de deadline: elke beoordeling met tag draait onder dezelfde policy en dezelfde 13 indicatoren. Hij mag nooit persoonsgegevens bevatten. Het request bevat geen bedrag, valuta of begunstigde.
Q03Waarom blokkeren jullie niet?
Omdat een event geen fraude is, een score geen beslissing, en blokkeren niets bewijst. U bent degene die het account, de limiet, de geschiedenis en de kosten van frictie kent. Wij leveren bewijs, dekking en een onderbouwde aanbeveling. BLOCK_RECOMMENDED is de sterkste aanbeveling die er is, en het blijft een aanbeveling. Als u blokkeert, legt u customer_action: BLOCKED vast, en dat wordt data om te meten of de aanbeveling klopte.
Q04Trekken VPN, Tor of een privétabblad de score omlaag?
In onze managed policies levert geen van deze op zichzelf BLOCK_RECOMMENDED op; regels die uw bedrijf configureert, volgen de gewichten en de grens die het zelf koos. Privémodus en browserbescherming zijn neutrale context: ze kunnen de dekking verlagen en verschijnen in het detail, zonder ongunstige reason code. Tor, proxy, VPN en hosting zijn context van anonimisering: een policy kan ze laten meewegen met wat er verder is gezien, nooit per tag. In de managed policy bewegen vandaag alleen automatisering en browser-spoofing de score, en de aanbeveling is MONITOR. In het v1-contractvoorbeeld voor opnames op deze pagina leidde gedetecteerde Tor tot REVIEW, en de reason code zegt dat. Het is op zichzelf nooit fraude.
Q05Wat als de SDK niet laadt, of de gebruiker scripts blokkeert?
De journey gaat door. Uw backend roept de API aan zonder event_context_token en ontvangt INCONCLUSIVE, trust_score: null, evidence_coverage: 0, limitation_codes: ["COLLECTOR_NOT_LOADED"] en de fallback-aanbeveling, MONITOR. Nooit een verzonnen score. Nooit ALLOW bij gebrek aan bewijs.
Q06Wat is de latency? Is er een SLA?
De deadline bepaalt u. De standaard in het contract is 5000 ms, en deadline_ms zet hem ergens tussen 250 en 5000 (houd uw HTTP-timeout boven ongeveer 6 s voor de standaard); wordt hij overschreden, dan krijgt u een Problem assessment-unavailable (503, retryable: true, met Retry-After), geen gedeeltelijke response. Herhaal dezelfde logische operatie met een nieuwe request_id. Latency en SLA komen in het voorstel, gemeten in uw shadow mode voordat enige beslissing van de response afhangt.
Q07Hoe weet ik dat de response niet vervalst is?
Hij gaat nooit door de browser. Uw backend ondertekent elke call met HMAC-SHA-256 over tien canonieke regels, waarvan de laatste de SHA-256 is van de exacte bytes van de body; key_id UUIDv7 is de enige publieke locator; request_id wordt gereserveerd tegen replay; een mislukte authenticatie geeft een uniforme 401 terug zonder te verraden of de sleutel bestaat. Het secret reist nooit mee. De normatieve testvector van het protocol is onderdeel van het contract; daarmee reproduceert u de handtekening byte voor byte.
Q08Moet ik een identiteitsnummer, e-mailadres of telefoonnummer meesturen?
Nee. De beoordeling gebruikt ondoorzichtige persoons- en accountrefs die alleen uw systeem kan herleiden. PII in leesbare vorm is geen productvereiste. Gedrag van muis en toetsenbord staat in het contract uit. Controles op canvas, WebGL, audio en lettertypen draaien voor elk bedrijf onder de managed collectiepolicy en verlaten de browser alleen als hashes, een GPU-familie en een aanwezigheidsmasker over een vaste lijst lettertypen, nooit als pixels, geluid, GPU-namen of lettertypenamen. Wachtwoord, getypte tekst, klembord, schermafbeelding, microfoon en camera zijn verboden. Elk soort bewijs heeft een opgegeven doel, privacyklasse en bewaartermijn; de rechtsgrond wordt met uw juridische team beoordeeld voordat productie wordt aangezet, en niets op deze pagina vervangt die beoordeling.
Q09Wat kost het en wat moet mijn team doen?
Prijs op basis van het volume voltooide collecties, in een voorstel. De beoogde factureringseenheid is een in productie voltooide snapshot; niets buiten productie telt. Aan uw kant: één script op de site, één server-to-server-endpoint in de backend om de beoordeling aan te vragen, en twee API-calls om de genomen actie en het echte resultaat (de uitkomst) terug te sturen. De SDK is web en draait in elke moderne browser; er is geen app te installeren.
Q10Wat is device intelligence, en wat is het verschil met device fingerprinting?
Device fingerprinting leest stabiele kenmerken van een browser om hem opnieuw te herkennen. Device intelligence begint daar en gaat verder: het controleert of die kenmerken met elkaar en met het netwerk kloppen, of er automatisering, een emulator of een anti-detect browser in het spel is, en hoe dit apparaat zich gedraagt over uw accounts heen. FingerTrackID levert het als een trust score, een device match met een eigen vertrouwen, bewijsdekking en 13 indicatoren, elk met de versie van de detector die hem las.
Q11Kunnen we eigen regels, scores en lijsten instellen?
Ja. In de console kent uw bedrijf punten toe aan elk van de 13 indicatoren en 54 contextinzichten, kiest het de scorebanden en de aanbeveling per band, en kan het elke regel eerst als ghost draaien: berekend en vastgelegd zonder de response te veranderen. Block- en allowlists nemen een apparaat, een accountref of één IP op, één vermelding tegelijk, met een notitie en de naam van wie het toevoegde. Elke publicatie is een nieuwe geauditeerde versie. FingerTrackID activeert nooit een regel en voegt nooit een lijstvermelding voor u toe.
Q12Kan een AI coding agent de integratie doen?
Ja. De server-SDK @fingertrackid/server ondertekent de call, de MCP-server @fingertrackid/mcp geeft Claude Code, Cursor of elke agent die MCP ondersteunt de contracten, de handtekeningvectoren, een kant-en-klare servermodule per tag en een controle van uw collectiedomein, allemaal alleen-lezen, en de documentatie publiceert llms.txt en een kant-en-klaar regelblok voor uw AGENTS.md. Het secret blijft in uw omgeving; de agent hoeft het nooit te zien.
Q13Hoe zwaar is de SDK, en maakt hij de pagina trager?
De SDK verzamelt één keer, parallel, in één request naar uw eigen collectiesubdomein. Op desktop duurde de volledige collectie mediaan tussen ongeveer 80 en 125 ms in Chrome, Firefox en Safari, binnen een hard budget van 250 ms; elke controle neemt hooguit 2 ms van de main thread, en de controles die wachten, zoals frametiming of een Worker, wachten parallel. Hij toont nooit een toestemmingsvraag en blokkeert nooit uw interface.

17 · Contact

Beoordeel de journey die u kiest, in shadow mode.

Begin in shadow mode: de response draait naast uw echte flow zonder enige beslissing te raken, u vergelijkt, u stuurt de resultaten terug, en pas daarna begint u de aanbeveling te gebruiken. Hebt u schermen waar de beslissing ertoe doet en wilt u de response onderbouwd zien voordat u erop vertrouwt, neem dan contact met ons op.

Plan een demo

Vul een e-mailadres met een domein in.
Vul de bedrijfsnaam in.
Wat u wilt beoordelen

Een journey is elk scherm dat u kiest, met de naam die u eraan geeft. Vink aan wat u al in gedachten hebt; de rest komt in het gesprek naar boven.

Geen nieuwsbrief · we antwoorden per e-mail, één persoon tegelijk · of schrijf direct naar contato@fingertrackid.com

Hoe het begint

  1. Een gesprek van 30 minuten over de journeys die u wilt beoordelen en uw beslisflow.
  2. Servercredential voor uw applicatie, uitvoerbaar contract en HMAC-vector. Er is geen sandbox: u test in productie, in shadow mode.
  3. Shadow mode met uw echte flow: u vergelijkt en stuurt resultaten terug voordat de response een beslissing beïnvloedt.
  4. Productie op de schermen die u tagt, met geversioneerde policy; elke beslissing blijft bij uw backend.

Wat u erbij krijgt

  • Console met bewijsdekking en, toegang voor toegang, de aanbeveling naast de actie die u meldde
  • Uitvoerbaar event-assessment.v1-contract, met een HMAC-testvector
  • Shadow mode in productie vanaf dag één: de response draait naast uw flow en raakt nooit een beslissing
  • Direct contact met de mensen die de policy schrijven