01 · Device intelligence для запобігання шахрайству Сценарії, які ви позначаєте тегом

API device intelligence та оцінки ризику шахрайства для вебу Оцінюйте кожен доступ. Вирішуйте на основі доказів.

Один тег на кожен обраний вами екран

Один скрипт на вашому сайті зчитує браузер і пристрій приблизно за десяту частку секунди на десктопі. Один підписаний виклик із вашого бекенду з тегом, який ви задаєте, одразу повертає відповідь: trust score, покриття доказами та 13 індикаторів — від ботів і автоматизації, підробки браузера та емуляторів до VPN, проксі й Tor — із причиною кожної рекомендації. Виявляйте захоплення акаунта, фейкові реєстрації та шахрайство з виплатами на основі доказів, а не здогадок. Ми рекомендуємо. Ви вирішуєте й дієте.

Синхронна відповідь на будь-якому екрані з тегом · Тіньовий режим, перш ніж це вплине на будь-яке рішення · Ваші правила, ваші списки, ваше рішення

Як читати цю відповідь · приклад v1.1/login_completed

  1. Чому саме ця рекомендація

    ALLOWreason_codes · NO_ADVERSE_INDICATOR_MATCH

    Жоден індикатор, який враховує політика, не повернувся як виявлений. Приклад із контракту: керована політика FingerTrackID рекомендує MONITOR за будь-якого скору; ALLOW походить із діапазону скору, який ваша компанія задала у власних правилах ризику. Рішення ухвалено за policy-login-v1.

  2. Чим є скор, а чим ні

    trust_score 1000–100 · більше — краще

    Довіра до цього доступу за цієї версії політики, а не ймовірність шахрайства. Поза COMPLETED він дорівнює null, і це ніколи не значення за замовчуванням.

  3. Скільки вдалося побачити

    evidence_coverage 100limitation_codes · немає

    Частка очікуваних перевірок, які було виконано. Відсутні докази були б названі тут: вони знижують покриття і ніколи не стають причиною ризику.

  4. Далі — ваша справа

    customer_actionпотім результат

    Ваш бекенд вирішує й діє, а потім повідомляє, що зробив і яким був реальний результат. Ми ніколи не блокуємо й не утримуємо гроші.

POST /v1/assessments → 201

event-assessment.v1.1 · приклад із контракту

assessment_statusЗавершенооцінку завершено
trust_score1000–100 · більше — краще
device_match_confidence0.980–1 · сила збігу
evidence_coverage1000–100 · достатність
ALLOWrecommendation_basis · EVALUATIONрекомендація, а не дія
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}
Повна відповідь · 54 рядки · 13 сигналів, невиявлені згорнуто
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}

Версії, що її сформували · 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 сигналів у повній відповіді · матриця індикаторів ↓

Продукт у цифрах

Відповідь

13

Веб-індикаторів у кожній відповіді

3

Стани кожного індикатора: виявлено, не виявлено, не оцінено

14

Названих причин для «не оцінено», ніколи не мовчазне false

5

Можливих рекомендацій

3

Окремі показники: довіра, збіг пристрою, покриття доказами

1

Підписаний виклик на кожну оцінену подію

Збір

17

Розділів доказів про браузер і пристрій у кожному зборі

48

API браузера, звірених із версією, яку браузер заявляє

125

Мілісекунд або менше: медіанний збір на десктопі в Chrome, Firefox і Safari

0

Запитів дозволу, показаних вашому користувачеві

Ваші правила та ваше розслідування

54

Контекстних інсайтів, обчислених у кожній оцінці

67

Правил, які ваша компанія може зважувати у власному скорі: 13 індикаторів і 54 інсайти

6

Публічних референсних списків за мережевими індикаторами

6

Мови консолі: англійська, португальська (Бразилія та Португалія), іспанська, французька, німецька

Ніколи — і це не залежить від тарифу

  • Рухи вказівника та натискання клавіш: SDK не збирає ні того, ні іншого
  • Пікселі, аудіосемпли, назви виробника й рендерера GPU чи назви шрифтів: canvas, WebGL, WebGPU, аудіо та шрифти залишають браузер лише як хеші, родина GPU та маска присутності за фіксованим списком шрифтів
  • WebRTC, локальні порти, батарея, датчики руху: ніколи не зчитуються
  • Жодного запиту дозволу, жодного рішення в браузері, жодної дії з нашого боку щодо вашого акаунта

— Кожне значення — це кількість у версіонованому контракті, каталозі чи списку, крім часу збору, виміряного на наших тестових машинах із холодним кешем. Жодне з них не залежить від тарифу чи обсягу.

03 · Сценарії

Запобігання шахрайству на екранах, де рішення справді важливе.

Device intelligence відповідає на одне питання, перш ніж ваш бекенд пропустить дію: що насправді по той бік цього екрана? Той самий виклик обслуговує кожен сценарій; тег, який ви надсилаєте, лише класифікує його.

login · password_recovery · profile_change

Запобігання захопленню акаунта

Відомий акаунт на пристрої, яким він ніколи не користувався, браузер, що бреше про себе, антидетект-браузер, переміщення, яке неможливо встигнути. Усе це повертається як докази, тож ви просите другий фактор лише тоді, коли це справді потрібно.

signup · login · checkout

Виявлення ботів і автоматизації

Headless-браузери, фреймворки автоматизації, AI-агенти, ідентифіковані за сигнатурою, і трафік із дата-центрів. BOT_AUTOMATION і NETWORK_HOSTING кажуть, що було побачено; покриття — скільки вдалося побачити.

signup · deposit · promotions

Фейкові акаунти та мультиакаунти

Акаунти й люди на пристрої та на IP, наскільки рідкісний профіль пристрою у вашій базі, той самий збір, повторений на іншому пристрої. Контекст, який можуть зважувати ваші правила, а не автоматичний вердикт: одна людина може мати кілька легітимних акаунтів.

withdrawal · pix_transfer · trade

Шахрайство з виплатами, Pix і переказами

Виведення коштів у першу годину після появи нового пристрою, отримувачі, спільні для кількох акаунтів, сусідні акаунти, які ви позначили як підтверджене шахрайство. Гроші утримує чи перевіряє ваш бекенд; ми — ніколи.

будь-який сценарій

Емулятори та підроблені браузери

Емулятори Android і віртуалізація, GPU, неможливий для заявленої системи, версія браузера, якій суперечать його власні API. Сигнали фінгерпринтингу пристроїв (device fingerprinting) зчитуються як хеші та родини, ніколи як сирі пікселі.

будь-який сценарій

Виявлення VPN, проксі та Tor

Відомі VPN-провайдери, публічні проксі, вихідні вузли Tor, хостингові діапазони та Apple iCloud Private Relay — за публічними списками, які ми оновлюємо на своєму боці. Анонімізація — це контекст, а не провина: скільки вона важить, вирішує ваша політика.

04 · Показники

Окремі показники. Жодного середнього, замаскованого під певність.

Злиття довіри, покриття та збігу пристрою в одне число приховує саме те, що аналітику треба бачити: проблема в доступі чи в доказах.

trust_score

Довіра до доступу

72

0100 · більше — краще

Відповідає, наскільки цьому доступу можна довіряти за цієї версії політики; тег, який ви надсилаєте, на це не впливає. Ціле число від 0 до 100. Існує лише коли assessment_status = COMPLETED; в усіх інших станах дорівнює null, ніколи не значенню за замовчуванням.

Не ймовірність шахрайства, не репутація людини й не значення за замовчуванням для відсутніх даних. Ми показуємо 72/100, а не «72% довіри».

device_match_confidence

Збіг пристрою

0.94

01 · максимум 0.98

Сила доказів того, що цей доступ іде з того самого пристрою, який уже бачили, від 0 до 1. Супроводжується device_id — непрозорим публічним ідентифікатором імовірнісного кластера.

Не особа людини й не доказ щодо заліза. Party та Account — різні речі.

evidence_coverage

Достатність доказів

100

0100 · оцінено 13 із 13

Яку частину очікуваного набору перевірок вдалося виконати, від 0 до 100. Кожен застосовний індикатор, що лишився NOT_EVALUATED, знижує покриття і з'являється в limitation_codes.

Не частина скору. Низьке покриття не тягне скор ні вниз, ні вгору: воно робить оцінку непереконливою.

Чому ми їх не сумуємо

Єдиний скор «підозрілості» змішує три різні питання: чи заслуговує цей доступ на довіру? Чи достатньо було доказів? Чи це той самий пристрій? Коли відповідь приходить окремо, аналітик знає, чи просити другий фактор, чекати на збір чи дивитися історію. Коли вона злита, він знає лише, що «вийшло 42».

05 · 13 індикаторів

Тринадцять індикаторів. Кожен каже, чи побачив, чи не побачив, чи не зміг оцінити.

Кожна веб-оцінка завжди повертає всі 13 кодів. Змінюється стан кожного, а не список. Кожен індикатор має власний версіонований детектор, і відповідь називає версію, яка його оцінила. Детектор, якого немає, який застарів чи дає збій, ніколи не перетворюється на false.

signal_catalog web · 13 кодів · приклад withdrawal_completed

  • Виявлено
  • Not_detected
  • — Не_оцінено

Цілісність середовища

Приватність браузера · нейтральний контекст

Мережа · нейтральний контекст

Пристрій

reason_codes · NETWORK_TOR_DETECTED REVIEW

У наших керованих політиках Tor сам по собі ніколи не виправдовує BLOCK_RECOMMENDED; правила, які налаштовує ваша компанія, слідують обраним нею вагам і порогу. У цьому прикладі з контракту v1 policy-withdrawal-v1 попросила перевірити виведення коштів, а не блокувати його, і єдиний reason code каже саме це. Керована політика в продакшні сьогодні рекомендує MONITOR за будь-якого скору.

Той самий індикатор, три стани

  • Виявлено · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · приклад withdrawal_completed
  • Не_виявлено · NETWORK_TOR PROVIDER · ftid-network-tor.v1 · 0.9 · приклад login_completed
  • — Не_оцінено · NETWORK_TOR not_evaluated_reason_code PROVIDER_UNAVAILABLE · limitation_codes ["PROVIDER_UNAVAILABLE"] · evidence_coverage 69 · приклад provider_unavailable

Детектор, якого немає, який застарів чи дає збій, ніколи не перетворюється на false. NOT_APPLICABLE походить лише з незмінної матриці каталогу за каналом, рушієм і платформою; ваш тег ніколи її не змінює, а вимкнена політика, тайм-аут чи збій ніколи не йдуть цим коротким шляхом.

За замовчуванням — нейтральний контекст

PRIVATE_BROWSINGBROWSER_PRIVACY_BRAVEBROWSER_PRIVACY_SAFARIBROWSER_PRIVACY_SAMSUNG_INTERNETNETWORK_PROXYNETWORK_VPNNETWORK_TOR

Вони можуть обмежувати те, що ми спостерігаємо. Покриття падає лише там, де докази не оцінено. Це не шахрайство. Вони описують середовище, а не звинувачують людину. У наших керованих політиках самі по собі вони ніколи не виправдовують BLOCK_RECOMMENDED; правила, які налаштовує ваша компанія, слідують обраним нею вагам і порогу. Коли тип мережі неможливо розрізнити, як за Apple iCloud Private Relay, хостинг, VPN і проксі залишаються NOT_EVALUATED з NETWORK_TYPE_AMBIGUOUS: ми ніколи не ставимо три виявлення на підставі одного boolean.

Мережеві докази беруться з публічних референсних списків, які ми оновлюємо на власній інфраструктурі: адреси вихідних вузлів Tor, діапазони хмарних провайдерів, списки хостингових мереж, діапазони VPN-провайдерів і база публічних проксі. Адреси ваших користувачів ніколи не надсилаються видавцям списків. Список, старший за свій максимальний вік, залишає свій індикатор NOT_EVALUATED, ніколи NOT_DETECTED.

06 · Контекстні інсайти

Окрім 13 індикаторів: 54 контекстні інсайти. Для розслідування — і для вашого скору, коли ви цього захочете.

У кожній оцінці, ще до відповіді, ми обчислюємо 54 контекстні інсайти із зібраного та з власної історії вашої компанії: хто ще користується пристроєм, як швидко рухається акаунт, з якої мережі, поруч із якими акаунтами. Керована політика FingerTrackID не включає їх у скор. У ваших власних правилах ризику будь-який із них може бути вимкненим, тіньовим (ghost) або активним, з балами за «незвично» та «дуже незвично»: активний інсайт, що спрацював, знімає бали з trust score і називає себе в reason_codes.

context-insight.v1 · 54 інсайти в шести темах · так, як вони згруповані в консолі та у ваших правилах

  • Акаунт і пристрій · 10

    Новий пристрій і нова операційна система для акаунта · різні акаунти й люди на пристрої за 30 днів · акаунти тієї самої людини на ньому · пристрої на акаунт і на людину за 24 години · пристрій із високою активністю · наскільки поширений, незвичний чи рідкісний профіль пристрою у вашій компанії · втрачений cookie пристрою

  • Виведення коштів і замовлення · 7

    Виведення коштів у першу годину після нового пристрою · отримувачі на пристрій і акаунти на отримувача за 30 днів · кількість і сума виведень на акаунт · кількість замовлень на акаунт і медіанний інтервал між замовленнями

  • Мережа й місцезнаходження · 12

    Нова країна та новий інтернет-провайдер (ASN) для акаунта · різні країни, провайдери та IP на акаунт · акаунти й люди на IP · неможливе переміщення · часовий пояс браузера, що не відповідає країні IP · країна виходу VPN · провайдер у публічному списку зловживань · Apple iCloud Private Relay

  • Цілісність браузера та SDK · 16

    Відкриті інструменти розробника · ознаки автоматизації · маркер антидетект-браузера · TLS-сигнатура, що не відповідає заявленому браузеру, і її стабільність за 30 днів · програмний рендерер і родина GPU · canvas чи аудіо, що змінюються між двома зчитуваннями · вбудований браузер застосунку · можливий гостьовий режим · AI-агент, ідентифікований за сигнатурою · категорія бота · SDK, відмінний від затвердженого пакета · одна сесія SDK на кількох пристроях · ідентичний збір, повторений на іншому пристрої · cookie пристрою, використаний у надто віддалених місцях

  • Швидкість · 5

    Доступи на пристрій і на акаунт за 5 хвилин, 1 годину та 24 години; на IP за 5 хвилин і 1 годину · оцінки з тим самим тегом на акаунт і на пристрій за 1 хвилину, 5 хвилин і 1 годину

  • Зв'язки між акаунтами, один крок · 4

    Інші акаунти, що користувалися тими самими пристроями · сусідні акаунти, де виявлено автоматизацію чи підробку браузера · сусідні акаунти, які ви позначили як підтверджене шахрайство · отримувачі виведень, спільні з іншими акаунтами

Три стани · причина, ніколи не нуль

  • Спостерігається · умова присутня або кількість чи показник відрізняється від нейтрального значення.
  • Не спостерігається · оцінено, і умова відсутня або нейтральна.
  • Не оцінено · завжди з причиною, ніколи не показується як нуль.

Деякі інсайти залежать від того, що ви надсилаєте. Без посилань на акаунт чи людину, без тегу або без результатів пункт так і каже: акаунт не надіслано, оцінка без тегу, результати не надіслано. Запит із тегом не містить суми чи отримувача, тож пункти про суму виведення й отримувача кажуть і це. Перший доступ, анонімізована мережа чи IP поза годинним вікном перевірки — теж причини.

Чим вони не є

  • Не один із 13 індикаторів і ніколи не limitation code. Вони потрапляють у reason_codes лише через правило, яке ваша компанія зробила активним.
  • Ніколи не входять у скор керованої політики FingerTrackID. Активний інсайт без даних нічого не знімає: відсутні докази ніколи не стають ризиком.
  • Не прихована модель: кожен інсайт читається як очікуваний, незвичний чи дуже незвичний за шкалою, яку ваша компанія може налаштувати, починаючи з опублікованого значення за замовчуванням.
  • Не звинувачення: велика кількість акаунтів чи людей на одному пристрої не є доказом шахрайства, і правила «N акаунтів на пристрій = шахрайство» немає.

Де аналітик їх читає

Деталі доступу. Картка «Контекст доступу» групує інсайти за темами, з їхніми часовими вікнами, межею історії, яку вони врахували, тим, наскільки кожен незвичний за вашою шкалою, і причиною для кожного пункту без значення. Інсайт, що не вкладається в часовий бюджет оцінки, завершується у фоні й повідомляє про це; він ніколи не затримує і не зриває відповідь.

Каталог індикаторів. Одна сторінка пояснює, що шукає кожен із 13 індикаторів, що залишає його неоціненим і чи може він вплинути на скор, а також перелічує контекстні інсайти з причинами, через які вони можуть лишитися без значення.

Canvas, WebGL, аудіо та шрифти зчитуються за керованою політикою збору кожної компанії, лише як похідні значення, і живлять кілька з цих інсайтів, як-от родина GPU, програмний рендерер чи рендер, що змінюється між двома зчитуваннями. Де браузер не дозволяє перевірку, пункт лишається неоціненим, із причиною.

07 · Непереконливо — теж результат

Коли ми не можемо оцінити, ми так і кажемо — і пояснюємо чому.

Відсутні докази не дають довіри 100 і не стають сигналом шахрайства. Без скору рекомендація береться з fallback, замороженого у версії політики й покритого її хешем, і це одна відповідь для кожного стану без скору, незалежно від тегу: MONITOR. Ніколи ALLOW.

Випадки без скору з прикладів контракту

Тег ніколи не обирає fallback. У керованій політиці кожен стан без скору, з будь-яким тегом, рекомендує MONITOR: продовжуйте й фіксуйте. Так само й три приклади з контракту нижче.

  • INCONCLUSIVEтег login · SDK не завантажився

    MONITOR

    Збору не було: trust_score: null, evidence_coverage: 0, COLLECTOR_NOT_LOADED, basis INSUFFICIENT_EVIDENCE. Ніщо ніколи не пропускається як ALLOW.

  • INCONCLUSIVEмережеві докази недоступні

    MONITOR

    Чотири мережеві індикатори NOT_EVALUATED, evidence_coverage: 69, PROVIDER_UNAVAILABLE. Хоч би якою була операція, вона лишається у вашій системі, під вашим рішенням; ми ніколи не утримуємо гроші.

  • FAILEDтег pix_transfer · політика недоступна

    MONITOR

    Технічний збій: POLICY_UNAVAILABLE, policy_version: null, basis TECHNICAL_FAILURE. Ніколи не читається як «ризику немає».

Без скору ми ніколи не рекомендуємо ALLOW · fallback_policy_version production-observation-fallback-v2 у прикладах · fallback перевіряється разом із політикою щоразу, коли політику зчитують

Чотири стани оцінки

Завершено 72 basis EVALUATION · reason_codes пояснюють скор
Непереконливо null basis INSUFFICIENT_EVIDENCE · limitation_codes кажуть, чого бракувало
Неоцінюване null basis OUT_OF_POLICY_SCOPE · подія коректна, але політика її не охоплює
Збій null basis TECHNICAL_FAILURE · POLICY_UNAVAILABLE, policy_version null · ніколи не «ризику немає»

14 limitation codes каталогу · чого бракувало, а не чому це ризиковано

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

Limitation code пояснює збір і якість; reason code пояснює політику. Кожен індикатор NOT_EVALUATED вказує на свій; оцінка зводить їх усі в limitation_codes. Обмеження збору ніколи не є причиною ризику.

08 · Вирішуєте ви

П'ять рекомендацій. Нуль дій з нашого боку.

recommended_action каже, що пропонує політика. customer_action каже, що зробили ви. Два поля, бо це два факти.

Хто рекомендує, хто вирішує, хто діє

FingerTrackID рекомендує

  • ALLOW
  • MONITOR
  • STEP_UP
  • REVIEW
  • BLOCK_RECOMMENDED

Ніколи лише через приватність · Tor, VPN, проксі, інкогніто, спільний пристрій

Вирішує ваш флоу

Ваш бекенд вирішує й діє. Ми повертаємо рекомендацію; сьогодні керована політика відповідає MONITOR — лише спостереження. Що станеться з доступом, вирішується й виконується на вашому боці. Ви знаєте акаунт, ліміт, історію та ціну тертя. Ми — ні.

Ви дієте й звітуєте

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

customer_action · поле, яке ви надсилаєте назад

  • Ми ніколи не автентифікуємо людину.
  • Ми ніколи не блокуємо ваш інтерфейс.
  • Ми ніколи не рухаємо гроші.

Чого не означає кожна рекомендація

  • ALLOW

    Політика не знайшла причин для тертя на цьому доступі. Не означає, що людина легітимна чи що доступ сертифіковано. Видається лише зі скором і з оціненими обов'язковими доказами.

  • MONITOR

    Продовжуйте, але фіксуйте. Це fallback без скору на кожному тегу і сьогодні також відповідь керованої політики за будь-якого скору. Не означає підтвердженої підозри й не вимагає від користувача жодних дій.

  • STEP_UP

    Попросіть другий фактор або підтвердження. Не означає, що ми когось перевіряємо: челендж показуєте ви.

  • REVIEW

    Надішліть на ручну перевірку. Не означає, що ми утримуємо гроші: операція лишається у вашій системі, під вашим рішенням.

  • BLOCK_RECOMMENDED

    Політика пропонує відмовити. Не означає виконаного блокування, підтвердженого шахрайства чи бану. Коли блокуєте ви, це стає customer_action: BLOCKED — вашою подією, і вона живить вимірювання точності.

09 · Інтеграція

Три кроки, один контракт. Браузер збирає; ваш бекенд питає; ми відповідаємо.

Один скрипт на вашому сайті, один server-to-server ендпоінт у вашому бекенді та два виклики, щоб повідомити дію й результат. Жодного рішення на клієнті.

SDK на вашому сайті

SDK збирає дані й повертає токен. Це все.

Віддається з вашого субдомену. Перш ніж ви надішлете запит, який хочете оцінити, хоч би яким був екран, він збирає сигнали браузера й середовища та отримує 202 PROCESSING: це підтвердження отримання, а не результат. Мережеві сигнали додає edge на вашому домені збору, ніколи не скрипт. Жоден скор, сигнал чи рішення не повертається в браузер.

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

Ваш бекенд викликає

Один підписаний синхронний виклик — у ваш дедлайн.

HMAC-SHA-256 над десятьма канонічними рядками — маркер, key_id, метод, шлях, timestamp, ідентифікатори події та запиту, метадані вмісту й SHA-256 точних байтів тіла в останньому рядку. Ніколи не серіалізуйте JSON повторно перед хешуванням; контракт містить нормативний вектор. key_id — єдиний публічний локатор. Секрет ніколи не передається. Канонічний вектор requests.both_refs_deadline_750 з контракту v1.1: той самий маршрут і той самий підпис, що й у v1, з tag замість journey, action і 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 — це slug у нижньому регістрі до 64 символів (літери, цифри й підкреслення, щонайбільше десять цифр), ніколи не персональні дані; цей вектор якраз на межі · subject_ref і account_ref можуть бути null, а account_ref вимагає subject_ref · refs — це ваші непрозорі коди, ніколи не номер документа, email чи послідовний ID · deadline_ms — ціле число від 250 до 5000 або null для 5000; якщо його перевищено, повертається 503 Problem, який можна повторити, а не частковий скор

Синхронна відповідь

Прочитайте, вирішіть, надішліть назад, що зробили.

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

Далі два виклики зворотного зв'язку: customer_action з тим, що ви зробили, і, коли дізнаєтеся, truth_status з реальним результатом (outcome: легітимно, шахрайство підтверджено або недостатньо доказів). Контракт тримає обидва в тій самій дисципліні, що й виклик оцінки: ніщо не вважається прийнятим до надійного коміту, а ідентичний повтор не додає другого ефекту. Outcome можна виправити пізніше — виправлення додається як наступник, а попередній запис лишається доступним для читання.

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

↑ назад до повного прикладу

  • Web SDK
  • Синхронний S2S API
  • Серверний SDK для Node.js
  • MCP-сервер для агентів програмування
  • API дій і результатів
  • Консоль

Веб, у будь-якому сучасному браузері · нічого не треба встановлювати · SDK, оцінка та зворотний зв'язок в одному версіонованому контракті

npm install @fingertrackid/server підписує виклик за вас, а @fingertrackid/mcp дає Claude Code, Cursor чи будь-якому агенту програмування з підтримкою MCP підключити інтеграцію за опублікованим контрактом. Крок за кроком — у quickstart, посібнику з Web SDK і довіднику API.

10 · Нуль довіри до браузера

Браузер лише збирає. Рішення та ідентифікатор через нього ніколи не проходять.

Ніщо, що надходить із браузера, не вважається авторитетним. Оцінка відбувається server to server, підписана, і кожна спроба зараховується один раз: повтор не створює нового ефекту.

Хто з ким говорить

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

Браузер отримує лише непрозорі ID сесії та події. Скор, сигнали й рекомендація народжуються й лишаються на сервері. First-party cookie підписаний, HttpOnly, Secure і обмежений вашим тенантом і застосунком.

Анатомія виклику

POST /v1/assessmentssecurity ftidHmacV1 з контракту
X-FTID-Signature: v1=<key_id>:<mac-hex>key_id UUIDv7 — єдиний локатор; тенант, застосунок, середовище й capabilities стають авторитетними лише після валідного MAC у порівнянні за сталий час. X-Client-Id, застарілий nonce і кілька підписів відхиляються.
X-FTID-Timestamp: 1791720000Epoch у секундах. Допуск ±300 с. Timestamp у майбутньому ніколи не подовжує зберігання.
X-FTID-Request-Id: <uuidv7>Одне використання на спробу, резервується після валідного MAC. Логічний повтор підписує новий request_id; невалідний MAC не створює резервування.
X-FTID-External-Event-Id: evt:tag-0003Байт у байт ідентичний тому, що в тілі та в підписаному рядку.
body.idempotency_keyТой самий ключ — та сама операція: ідентичний повтор повертає ту саму збережену оцінку, без перерахунку.
body.deadline_msВаш бюджет. Перевищено до оцінки: Problem assessment-unavailable (503, retryable: true), а не частковий скор.
  • 401уніфіковано: key_id, якого не існує, який відкликано, або неправильний підпис — усе дає той самий authentication-failed.
  • 403автентифіковані облікові дані без capability оцінки для цього маршруту.
  • 503залежність секретів недоступна: глобальний latch робить відповідь уніфікованою, не розкриваючи, чи існує key_id. Підпишіть новий request_id.

11 · Версіонована політика

Кожне рішення має версію. Версія заморожує все, що його сформувало.

Зміна чутливості одного індикатора створює нову версію — з автором, періодом дії, симуляцією та відкатом. Історія не змінюється. Відсутність реальної версії блокує використання.

Версія, що ухвалила рішення · приклад 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 — для підтримки без розкриття персонального ідентифікатора. Відкриті версії — це непрозорі публічні теги; внутрішні ID бази даних ніколи не з'являються в API, у вебхуку чи в консолі.

Що заморожує версія політики

  • каталог сигналів
  • нормалізацію
  • ознаки (features)
  • резолвер пристроїв
  • правила
  • стратегію кореляції
  • рівні для кожного індикатора
  • обмеження та пороги

Відтворювано, ніколи не переписується

приклад login_completed

assessment_version1

supersedes_assessment_idnull

приклад login_completed_revision_2

assessment_version2

supersedes_assessment_id…0000000101

Операційна ревізія зберігає політику й усі інші версії, чинні на момент received_at події. Нова політика над старою подією — це окрема симуляція; вона ніколи не переписує, яка рекомендація спрямовувала історичне рішення.

12 · Тіньовий режим

Спершу паралельно. Лише потім відповідь впливає на дію.

Тіньовий режим — це запуск FingerTrackID пліч-о-пліч із тим, чим ви користуєтеся сьогодні, без того, щоб відповідь торкалася будь-якого рішення. Ви порівнюєте, надсилаєте назад реальні результати й лише тоді починаєте використовувати рекомендацію. Саме так ми радимо починати.

Повний цикл

  1. 01

    SDK збирає

    202 PROCESSING · event_context_token

  2. 02

    Ваш бекенд запитує оцінку

    POST /v1/assessments · синхронно

  3. 03

    Ви вирішуєте у своєму флоу

    у тіні, без використання відповіді

  4. 04

    Ви повідомляєте дію

    customer_action · POST …/customer-actions

  5. 05

    Ви повідомляєте результат

    truth_status · POST …/outcomes

recommendation_alignment · обчислюється на сервері з пари «рекомендація × дія»; клієнт ніколи його не декларує. Збіг не доводить ні причинності, ні точності, ні шахрайства.

Порівняння, поле за полем

recommended_actioncustomer_actionrecommendation_alignment
REVIEWREVIEWED або HELDALIGNED
STEP_UPALLOWEDNOT_ALIGNED
ALLOW або MONITORALLOWEDALIGNED
BLOCK_RECOMMENDEDBLOCKEDALIGNED
будь-якаCANCELLEDNOT_COMPARABLE

Блокування не доводить шахрайства. Підтвердження шахрайства потребує незалежних доказів: truth_status переходить із PENDING у LEGITIMATE, FRAUD_CONFIRMED або INSUFFICIENT_EVIDENCE, зі зрілістю PROVISIONAL або MATURE. Лише зріла мітка стає метрикою якості.

Що живить цей цикл

  • Хибнопозитивні та хибнонегативні як метрики, похідні від зрілих міток, а не поля, введені вручну.
  • Перекалібрування правил і порогів — завжди як нова версія політики.
  • Якість детекторів, виміряна у вашому тіньовому режимі, перш ніж відповідь вплине на будь-яку вашу дію.
  • Чого він не робить: не перетворюється на автоматичне примусове виконання. customer_action і truth_status — окремі факти, і кожне виправлення створює наступника.

13 · Приватність за контрактом

Обмежено контрактом, а не налаштуванням.

Відкриті PII не є вимогою продукту. Ви надсилаєте непрозорі посилання на людину й акаунт; ми не просимо номер документа, email чи телефон, щоб оцінити доступ.

packages/contracts/src/sdk-handshake-v1.ts · політика збору

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

packages/contracts/src/sdk-signals/rendering-v1.ts · фрагмент

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

Поведінковий збір, тобто рухи вказівника й натискання клавіш, приймає лише значення off: щоб його ввімкнути, треба змінити контракт, а не налаштування. Canvas, WebGL, офлайн-аудіо та наявність шрифтів зчитуються за керованою політикою збору, яка вмикає їх для кожної компанії, і залишають браузер лише як похідні значення: хеші фіксованої довжини, закрита родина GPU, лічильник і маска присутності за фіксованим списком шрифтів. Контракт не має поля для пікселів, аудіосемплів, назв виробника чи рендерера GPU або назв шрифтів. Разом ці похідні значення можуть знову розпізнати той самий браузер, тому вони вважаються даними пристрою, а не анонімними даними. Ніколи не збирається, як абсолютне правило: пароль, введений текст, вміст чатів чи документів, буфер обміну, знімок екрана, мікрофон, камера. Кожен доказ має клас приватності, і клас — це не вага ризику.

Гарантії, що не залежать від доброї волі

  • PII не потрапляють у логи. Сирі дані не відображаються в консолі вільно: кожен доступ до них фіксується. Ідентифікатор чи персональне значення ніколи не потрапляє в URL.
  • Кореляція між тенантами вимкнена. Кожна доменна таблиця містить tenant_id з ізоляцією, примусово ввімкненою в базі даних. Немає репутації чи міток, спільних для різних клієнтів.
  • First-party cookie, що віддається з вашого домену: підписаний, HttpOnly, Secure, обмежений вашим тенантом і застосунком. Значення ніколи не потрапляє в базу даних, чергу чи лог; якщо його немає або його відхилено, безперервність погіршується як обмеження, а оцінка не зупиняється.
  • Кожне злиття пристроїв зворотне й фіксує версію резолвера, який його виконав. IP ніколи сам по собі не об'єднує пристрої.
  • Кожен вид доказів має задекларовану мету, клас приватності, правило доступу та строк зберігання в нашому реєстрі даних. Правова підстава, резидентність даних і DPA узгоджуються з вашою юридичною командою під час укладення договору; ніщо на цій сторінці не є юридичною консультацією.

Party — це не Account

Party Account Account Account

Зв'язок надходить із вашого бекенду · ніколи не виводиться з фінгерпринта

Одна людина, кілька легітимних акаунтів. Акаунт ніколи мовчки не змінює людину; сесія лише просувається від анонімної до людини, а потім до акаунта тієї самої людини. Суперечність — це конфлікт, а не нова асоціація й не імпровізований негативний доказ.

Де зберігаються дані

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 · Консоль

Консоль, щоб інтегрувати, розслідувати й замикати цикл.

Консоль спершу відповідає на питання «чи ми якісно отримуємо, оцінюємо й пояснюємо?», і лише потім дозволяє говорити про легітимність. Кожен відсоток називає свій знаменник.

Схема, а не знімок екрана · кольори консолі всередині рамки

Деталі доступу. Три показники як три окремі компоненти; рекомендація з її recommendation_basis, чинна політика й те, що, за словами вашої команди, вона зробила; свіжість доказів; 13 індикаторів зі станом, застосовністю, джерелом, довірою детектора, свіжістю та причиною для кожного неоціненого; обмеження та reason codes; сесія, пристрій та їхні асоціації; множинність на пристрої; приблизне місцезнаходження за мережею; контекст доступу; і вкладка технічних даних з усім, що зібрали SDK та edge, включно з реальною версією браузера, зчитаною з API, які він надає, поруч із версією, яку він заявляє.

Фільтри розслідування. Список доступів звужується за інтернет-провайдером (ASN), країною мережі, інсталяцією пристрою, причиною, з якої індикатор не оцінено, і до двох індикаторів в обраних станах одночасно, а також знаходить доступ за вашим власним посиланням на акаунт чи людину. Фільтра за IP-адресою немає: це персональні дані. Деталі кожного доступу також містять його контекстні інсайти ↑.

Глибоке розслідування. З будь-якого доступу граф зв'язків відкриває пристрої й акаунти навколо нього, по одному кроку, на глибину до 92 днів вашої власної історії. Кожне розгортання — це зафіксоване читання; IP-адреси ніколи не стають вузлами.

Списки блокування та дозволу. Із деталей доступу ваша команда додає пристрій, посилання на акаунт чи окрему IP у список блокування компанії (блокувати чи перевірити) або в список дозволу — з приміткою та ім'ям того, хто додав. На доступі в продакшні зі скором запис перевизначає рекомендацію й називає себе в reason_codes. Ніщо не видаляється: видалення запису фіксує, хто і коли його видалив.

AI-асистент. Бічна панель пояснює кожен екран і відповідає на питання про вашу власну інтеграцію та доступи — у межах вашої компанії та вашої ролі.

Налаштування ризику. Власні правила ризику вашої компанії, для кожного застосунку: кожен із 13 індикаторів вимкнений, тіньовий (ghost) або активний, з вагою від 1 до 100 балів, а ви задаєте діапазони скору й дію для кожного. Тіньове правило обчислюється й фіксується, але ніколи не змінює відповідь. Перш ніж публікувати, картка впливу програє вашу чернетку на оцінках за останні 1, 7 або 30 днів. Кожен із 54 контекстних інсайтів ↑ може приєднатися до них із власними балами. Ваш адміністратор або супервізор ризику публікує напряму; кожна публікація — це нова версія з аудитом, а усе в тінь зупиняє всі ваші правила одразу. FingerTrackID ніколи не активує правило за вас: його підтримка може лише перевести всі правила застосунку в тінь, із причиною, яку показує ваша консоль. Поки жодне правило не активне, відповідає керована політика, опублікована командою FingerTrackID із зафіксованим затвердженням.

Шістнадцять екранів у чотирьох групах · головне, виявлення, операції, адміністрування

  • 01Головна
  • 09Інтеграція та стан
  • 02Огляд
  • 10Використання
  • 03Доступи
  • 11Експорт
  • 04Черга перевірки
  • 12Звіти
  • 05Налаштування ризику
  • 13Користувачі та доступ
  • 06Симуляції політик
  • 14Аудит
  • 07Списки
  • 15Життєвий цикл клієнта
  • 08Каталог індикаторів
  • 16Акаунт і безпека

Черга перевірки — це модуль перевірки виведень: операційна черга на тому самому ядрі, яка передає людині кожне виведення v1, рекомендоване до REVIEW, разом із доказами. Оцінки з тегом ніколи в неї не потрапляють, і вона лишається порожньою, поки політика рекомендує MONITOR, як сьогодні керована політика.

Англійською, португальською (Бразилія та Португалія), іспанською, французькою та німецькою. Вхід через passkey або другий фактор; дозволи за ролями; журнал аудиту: хто бачив чутливі дані і хто що змінив. Сирі дані не відображаються вільно: кожен доступ до них фіксується.

15 · Як ми тарифікуємо

Одна одиниця тарифікації. Усе інше не рахується.

Ціна за обсягом завершених зборів, зафіксована в комерційній пропозиції. Тіньовий режим споживає ті самі одиниці й показується в консолі як оціночне використання; що потрапляє в рахунок за цей період, визначає пропозиція.

Одиниця

Один продакшн-знімок device intelligence, запитаний вашою інтеграцією й завершений.

Це одиниця вимірювання й кандидат в одиниці тарифікації. Кожен device_intelligence_snapshot_id дає щонайбільше одну одиницю, хоч скільки оцінок, тегів, провайдерів чи повторних обробок використовують цей збір.

  • Скор, рекомендація, дія та результат не визначають тарифікацію. Ризиковий результат не коштує більше; легітимний — не коштує менше.
  • Комерційний ліміт ніколи не стає блокуванням, rate limit чи автоматичним погіршенням сервісу.
  • Кожен запитаний знімок створює незмінний запис використання, навіть коли він не тарифікується. Виключення доводяться цим записом, а не відновлюються з логів.

Подія · створює одиницю?

  • Непродакшн-застосунки (development, staging)ні
  • Повтор із тим самим idempotency_keyні
  • Будь-яка оцінка з будь-яким тегом, що повторно використовує свіжий знімокні
  • Повторна обробка, історичне відтворення, зміна політикині
  • Асинхронне збагачення та оновлення, запущені намині
  • Виклик провайдера чи повторні
  • Доставка вебхукані
  • customer_action і outcomeні
  • Запит, дашборд, звіт, експортні
  • 4xx через автентифікацію, авторизацію чи невалідний контрактні
  • 5xx, тайм-аут на нашому боці, збір INCONCLUSIVE або FAILEDні
  • Продакшн-знімок, запитаний інтеграцією, завершенийтак · 1

Пропозиція за обсягом, з використанням у тіньовому режимі на столі.

Запросити пропозицію

16 · FAQ

Питання, які ставлять керівник ризиків і CTO.

Q01З чого починається інтеграція?
З тіньового режиму. Ви встановлюєте SDK на сайт, вмикаєте server-to-server виклик, і відповідь починає працювати паралельно з вашим реальним флоу, не торкаючись жодного рішення. Ви надсилаєте назад customer_action і outcome, а в консолі порівнюєте, доступ за доступом, рекомендацію з тим, що, за словами вашої команди, вона зробила, і стежите за покриттям доказами. Коли цифри сходяться, ваша команда вирішує, чи і де рекомендація почне впливати на рішення, яке завжди виконує ваш бекенд.
Q02Які сценарії ви оцінюєте?
Будь-який екран, який ви оберете. Ваш бекенд надсилає з кожною оцінкою власний tag — slug у нижньому регістрі, як-от login, withdrawal чи pix_transfer: без реєстрації, без закритого списку й без ліміту. Консоль фільтрує, групує й експортує за тегом, а шаблони (реєстрація, вхід, відновлення пароля, другий фактор, зміна профілю, депозит, виведення, переказ Pix, трейдинг, checkout) — це посібник з інтеграції. Тег ніколи не обирає політику, детектори, fallback чи дедлайн: кожна оцінка з тегом працює за тією самою політикою й тими самими 13 індикаторами. Він ніколи не повинен містити персональних даних. Запит не містить суми, валюти чи отримувача.
Q03Чому ви не блокуєте?
Тому що подія — не шахрайство, скор — не рішення, а блокування нічого не доводить. Саме ви знаєте акаунт, ліміт, історію та ціну тертя. Ми надаємо докази, покриття й пояснену рекомендацію. BLOCK_RECOMMENDED — найсильніша рекомендація, яка існує, і це все одно рекомендація. Коли ви блокуєте, ви фіксуєте customer_action: BLOCKED, і це стає даними, щоб виміряти, чи була рекомендація правильною.
Q04Чи тягнуть VPN, Tor або приватна вкладка скор униз?
У наших керованих політиках жоден із них сам по собі не дає BLOCK_RECOMMENDED; правила, які налаштовує ваша компанія, слідують обраним нею вагам і порогу. Приватний режим і захист браузера — нейтральний контекст: вони можуть знизити покриття й з'являються в деталях, без несприятливого reason code. Tor, проксі, VPN і хостинг — контекст анонімізації: політика може зважувати їх разом з іншим побаченим, але ніколи за тегом. У керованій політиці сьогодні скор рухають лише автоматизація та підробка браузера, а рекомендація — MONITOR. У прикладі контракту v1 для виведення коштів на цій сторінці виявлений Tor призвів до REVIEW, і reason code так і каже. Сам по собі це ніколи не шахрайство.
Q05А якщо SDK не завантажиться або користувач блокує скрипти?
Сценарій триває. Ваш бекенд викликає API без event_context_token і отримує INCONCLUSIVE, trust_score: null, evidence_coverage: 0, limitation_codes: ["COLLECTOR_NOT_LOADED"] та резервну рекомендацію MONITOR. Ніколи вигаданий скор. Ніколи ALLOW через брак доказів.
Q06Яка затримка? Чи є SLA?
Дедлайн задаєте ви. За замовчуванням у контракті — 5000 мс, і deadline_ms встановлює його в межах від 250 до 5000 (для значення за замовчуванням тримайте HTTP-тайм-аут вище приблизно 6 с); якщо його перевищено, ви отримуєте Problem assessment-unavailable (503, retryable: true, з Retry-After), а не часткову відповідь. Повторіть ту саму логічну операцію з новим request_id. Затримка та SLA входять у пропозицію, виміряні у вашому тіньовому режимі ще до того, як будь-яке рішення залежатиме від відповіді.
Q07Як переконатися, що відповідь не підроблено?
Вона ніколи не проходить через браузер. Ваш бекенд підписує кожен виклик HMAC-SHA-256 над десятьма канонічними рядками, останній із яких — SHA-256 точних байтів тіла; key_id UUIDv7 — єдиний публічний локатор; request_id резервується проти повторного відтворення; помилка автентифікації повертає уніфікований 401, не розкриваючи, чи існує ключ. Секрет ніколи не передається. Нормативний тестовий вектор протоколу є частиною контракту; з ним ви відтворюєте підпис байт у байт.
Q08Чи треба надсилати номер документа, email чи телефон?
Ні. Оцінка використовує непрозорі посилання на людину й акаунт, які розпізнає лише ваша система. Відкриті PII не є вимогою продукту. Поведінка вказівника й клавіатури вимкнена в контракті. Перевірки canvas, WebGL, аудіо та шрифтів працюють за керованою політикою збору кожної компанії й залишають браузер лише як хеші, родина GPU та маска присутності за фіксованим списком шрифтів — ніколи як пікселі, звук, назви GPU чи назви шрифтів. Пароль, введений текст, буфер обміну, знімок екрана, мікрофон і камера заборонені. Кожен вид доказів має задекларовану мету, клас приватності та строк зберігання; правова підстава перевіряється з вашою юридичною командою до запуску продакшну, і ніщо на цій сторінці не замінює цієї перевірки.
Q09Скільки це коштує і що має зробити моя команда?
Ціна за обсягом завершених зборів, у комерційній пропозиції. Кандидат в одиниці тарифікації — знімок, завершений у продакшні; ніщо поза продакшном не рахується. На вашому боці: один скрипт на сайті, один server-to-server ендпоінт у бекенді, щоб запитувати оцінку, і два виклики API, щоб повідомити виконану дію та реальний результат (outcome). SDK — вебовий і працює в будь-якому сучасному браузері; нічого не треба встановлювати.
Q10Що таке device intelligence і чим воно відрізняється від фінгерпринтингу пристроїв (device fingerprinting)?
Фінгерпринтинг пристроїв (device fingerprinting) зчитує стабільні ознаки браузера, щоб знову його розпізнати. Device intelligence починається з цього й іде далі: перевіряє, чи узгоджуються ці ознаки між собою та з мережею, чи працює автоматизація, емулятор або антидетект-браузер, і як цей пристрій поводиться у ваших акаунтах. FingerTrackID повертає це як trust score, збіг пристрою з власною довірою, покриття доказами та 13 індикаторів — кожен із версією детектора, який його зчитав.
Q11Чи можемо ми задавати власні правила, скори та списки?
Так. У консолі ваша компанія призначає бали будь-якому з 13 індикаторів і 54 контекстних інсайтів, обирає діапазони скору й рекомендацію для кожного діапазону та може спершу запустити будь-яке правило в тіньовому режимі (ghost) — воно обчислюється й фіксується, не змінюючи відповіді. Списки блокування та дозволу приймають пристрій, посилання на акаунт чи окрему IP, по одному запису, з приміткою та ім'ям того, хто додав. Кожна публікація — нова версія з аудитом. FingerTrackID ніколи не активує правило й не додає запис у список за вас.
Q12Чи може AI-агент програмування виконати інтеграцію?
Так. Серверний SDK @fingertrackid/server підписує виклик, MCP-сервер @fingertrackid/mcp дає Claude Code, Cursor чи будь-якому агенту з підтримкою MCP контракти, вектори підпису, готовий серверний модуль для кожного тегу й перевірку вашого домену збору — усе лише для читання, а документація публікує llms.txt і готовий блок правил для вашого AGENTS.md. Секрет лишається у вашому середовищі; агенту ніколи не потрібно його бачити.
Q13Наскільки важкий SDK і чи сповільнює він сторінку?
SDK збирає дані один раз, паралельно, одним запитом до вашого власного субдомену збору. На десктопі повний збір займав приблизно від 80 до 125 мс за медіаною в Chrome, Firefox і Safari, за жорсткого бюджету 250 мс; кожна перевірка займає щонайбільше 2 мс головного потоку, а ті, що чекають, як-от таймінг кадрів чи Worker, чекають паралельно. Він ніколи не показує запит дозволу й ніколи не блокує ваш інтерфейс.

17 · Контакти

Оцініть обраний вами сценарій у тіньовому режимі.

Почніть із тіньового режиму: відповідь працює паралельно з вашим реальним флоу, не торкаючись жодного рішення, ви порівнюєте, надсилаєте назад результати й лише потім починаєте використовувати рекомендацію. Якщо у вас є екрани, де рішення справді важливе, і ви хочете побачити пояснену відповідь, перш ніж їй довіряти, — напишіть нам.

Замовити демо

Введіть email із доменом.
Введіть назву компанії.
Що ви хочете оцінювати

Сценарій — це будь-який обраний вами екран із назвою, яку ви йому даєте. Позначте ті, що вже маєте на увазі; решта з'ясується в розмові.

Без розсилок · відповідаємо email, кожному особисто · або пишіть напряму на contato@fingertrackid.com

Як це починається

  1. 30-хвилинна розмова про сценарії, які ви хочете оцінювати, і ваш флоу ухвалення рішень.
  2. Серверні облікові дані для вашого застосунку, виконуваний контракт і HMAC-вектор. Пісочниці немає: ви тестуєте в продакшні, у тіньовому режимі.
  3. Тіньовий режим із вашим реальним флоу: ви порівнюєте й надсилаєте назад результати, перш ніж відповідь вплине на будь-яке рішення.
  4. Продакшн на екранах, які ви позначаєте тегом, з версіонованою політикою; кожне рішення лишається за вашим бекендом.

Що ви отримуєте

  • Консоль із покриттям доказами та, доступ за доступом, рекомендацією поруч із повідомленою вами дією
  • Виконуваний контракт event-assessment.v1 з тестовим HMAC-вектором
  • Тіньовий режим у продакшні з першого дня: відповідь працює поруч із вашим флоу й ніколи не торкається рішення
  • Прямий канал зв'язку з людьми, які пишуть політику