A resposta — status, nota e recomendação
201 (nova avaliação) e 200 (repetição da mesma operação) têm o mesmo formato:
event-assessment.v1.1 para uma requisição v1.1, event-assessment.v1 para uma requisição v1. Os
dois são idênticos, exceto por um campo: o v1.1 traz a sua tag onde o v1 traz journey. Sempre
confira se o external_event_id e a tag (ou journey) da resposta são os que você enviou. Valide
uma resposta v1.1 contra o
schema exato da resposta v1.1 e
uma resposta v1 contra o
schema exato da resposta v1.
Guarde a resposta como recebida; não reconstrua campos.
Status da avaliação
Seção intitulada “Status da avaliação”assessment_status |
trust_score |
recommendation_basis |
Quando |
|---|---|---|---|
COMPLETED |
Inteiro de 0 a 100 | EVALUATION |
Havia evidência do Web SDK, toda a evidência exigida estava atual e havia uma política disponível |
INCONCLUSIVE |
null |
INSUFFICIENT_EVIDENCE |
A política efetiva não conseguiu avaliar evidência suficiente |
UNSCORABLE |
null |
OUT_OF_POLICY_SCOPE |
O evento está fora do escopo da política |
FAILED |
null |
TECHNICAL_FAILURE |
Falha técnica |
Uma avaliação armazenada sempre tem retryable: false, inclusive INCONCLUSIVE, UNSCORABLE e
FAILED. Repetir a chamada não produz uma nova nota.
{ "schema_version": "event-assessment.v1.1", "assessment_id": "01996f2a-0000-7000-8000-000000000101", "assessment_version": 1, "supersedes_assessment_id": null, "business_event_id": "01996f2a-0000-7000-8000-000000000102", "external_event_id": "login_20260904_000001", "tag": "login", "assessment_status": "COMPLETED", "retryable": false, "trust_score": 100, "device_intelligence_snapshot_id": "01996f2a-0000-7000-8000-000000000103", "device_intelligence_snapshot_version": 2, "device_id": "dev_AZlvKYwefUqy8GqePF17GA", "device_match_confidence": null, "evidence_coverage": 100, "data_freshness": { "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "oldest_required_observed_at": "2026-09-04T11:59:57.318Z", "maximum_required_age_ms": 300000, "all_required_fresh": true }, "signals": [ { "signal_code": "ANTI_FINGERPRINTING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-anti-fingerprinting.v2", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BOT_AUTOMATION", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-bot-automation.probe.v3", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_BRAVE", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-brave.v1", "detector_confidence": 0.8, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAFARI", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-safari.v1", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-samsung-internet.v1", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_SPOOFING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "browser-spoofing-coherence.v2", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "DEVICE_MULTI_USER", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SERVER_CONTEXT", "detector_version": "ftid-device-multi-user.v1", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "EMULATED_ENVIRONMENT", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "emulated-environment-coherence.v2", "detector_confidence": 0.3, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_HOSTING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-hosting.v1", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_PROXY", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-proxy.v1", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_TOR", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-tor.v1", "detector_confidence": 0.9, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_VPN", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-vpn.v1", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "PRIVATE_BROWSING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-private-browsing.storage-mode.v2", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null } ], "limitation_codes": [], "reason_codes": [ "NO_ADVERSE_INDICATOR_MATCH" ], "recommended_action": "MONITOR", "recommendation_basis": "EVALUATION", "policy_version": "production-detectors-01996f29-4d2c-7b18-9e6a-3f0c8d1b5a72-login", "fallback_policy_version": "production-observation-fallback-v2", "ruleset_version": "d95-detectors.v1", "signal_catalog_version": "web-detectors-v3", "feature_schema_version": "configured-assessment-features.v1", "resolver_version": "first-party-installation-v1", "sdk_version": "0.2.1", "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:00.105Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "expires_at": "2026-09-04T12:01:00.143Z", "correlation_id": "01996f2a-1111-7000-8000-000000000105"}{ "schema_version": "event-assessment.v1.1", "assessment_id": "01996f2a-0000-7000-8000-000000000401", "assessment_version": 1, "supersedes_assessment_id": null, "business_event_id": "01996f2a-0000-7000-8000-000000000402", "external_event_id": "login_20260904_000002", "tag": "login", "assessment_status": "INCONCLUSIVE", "retryable": false, "trust_score": null, "device_intelligence_snapshot_id": null, "device_intelligence_snapshot_version": null, "device_id": null, "device_match_confidence": null, "evidence_coverage": 0, "data_freshness": { "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "oldest_required_observed_at": null, "maximum_required_age_ms": 300000, "all_required_fresh": false }, "signals": [ { "signal_code": "ANTI_FINGERPRINTING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BOT_AUTOMATION", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_BRAVE", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAFARI", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_SPOOFING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "DEVICE_MULTI_USER", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "EMULATED_ENVIRONMENT", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_HOSTING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_PROXY", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_TOR", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_VPN", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "PRIVATE_BROWSING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null } ], "limitation_codes": [ "COLLECTOR_NOT_LOADED", "REQUIRED_EVIDENCE_MISSING" ], "reason_codes": [ "REQUIRED_EVIDENCE_MISSING" ], "recommended_action": "MONITOR", "recommendation_basis": "INSUFFICIENT_EVIDENCE", "policy_version": "production-detectors-01996f29-4d2c-7b18-9e6a-3f0c8d1b5a72-login", "fallback_policy_version": "production-observation-fallback-v2", "ruleset_version": "d95-detectors.v1", "signal_catalog_version": "web-detectors-v3", "feature_schema_version": "configured-assessment-features.v1", "resolver_version": "first-party-installation-v1", "sdk_version": null, "provider_versions": [], "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "expires_at": "2026-09-04T12:01:00.143Z", "correlation_id": "01996f2a-1111-7000-8000-000000000405"}{ "schema_version": "event-assessment.v1.1", "assessment_id": "01996f2a-0000-7000-8000-000000000701", "assessment_version": 1, "supersedes_assessment_id": null, "business_event_id": "01996f2a-0000-7000-8000-000000000702", "external_event_id": "pix_20260904_000001", "tag": "pix_transfer", "assessment_status": "FAILED", "retryable": false, "trust_score": null, "device_intelligence_snapshot_id": "01996f2a-0000-7000-8000-000000000703", "device_intelligence_snapshot_version": 2, "device_id": "dev_AZlvKYwefUqy8GqePF17GA", "device_match_confidence": null, "evidence_coverage": 100, "data_freshness": { "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "oldest_required_observed_at": "2026-09-04T11:59:57.318Z", "maximum_required_age_ms": 300000, "all_required_fresh": false }, "signals": [ { "signal_code": "ANTI_FINGERPRINTING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-anti-fingerprinting.v2", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BOT_AUTOMATION", "channel": "WEB", "signal_state": "DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-bot-automation.probe.v3", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_BRAVE", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-brave.v1", "detector_confidence": 0.8, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAFARI", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-safari.v1", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-browser-privacy-samsung-internet.v1", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "BROWSER_SPOOFING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "browser-spoofing-coherence.v2", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "DEVICE_MULTI_USER", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SERVER_CONTEXT", "detector_version": "ftid-device-multi-user.v1", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "EMULATED_ENVIRONMENT", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "emulated-environment-coherence.v2", "detector_confidence": 0.3, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_HOSTING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-hosting.v1", "detector_confidence": 0.6, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_PROXY", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-proxy.v1", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_TOR", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-tor.v1", "detector_confidence": 0.9, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "NETWORK_VPN", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "PROVIDER", "detector_version": "ftid-network-vpn.v1", "detector_confidence": 0.4, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null }, { "signal_code": "PRIVATE_BROWSING", "channel": "WEB", "signal_state": "NOT_DETECTED", "applicability": "APPLICABLE", "source": "SDK", "detector_version": "ftid-private-browsing.storage-mode.v2", "detector_confidence": 0.5, "observed_at": "2026-09-04T11:59:57.318Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": 2825, "not_evaluated_reason_code": null, "applicability_reason_code": null } ], "limitation_codes": [ "UNSUPPORTED_RUNTIME" ], "reason_codes": [ "POLICY_EVALUATION_UNAVAILABLE" ], "recommended_action": "MONITOR", "recommendation_basis": "TECHNICAL_FAILURE", "policy_version": "risk-login-v3", "fallback_policy_version": "production-observation-fallback-v2", "ruleset_version": "risk-login-rules.v3", "signal_catalog_version": "web-detectors-v3", "feature_schema_version": "configured-assessment-features.v1", "resolver_version": "first-party-installation-v1", "sdk_version": "0.2.1", "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:00.105Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "expires_at": "2026-09-04T12:01:00.143Z", "correlation_id": "01996f2a-1111-7000-8000-000000000705"}Exemplos sintéticos dos exemplos v1.1 publicados.
trust_score
Seção intitulada “trust_score”- Vai de 0 a 100, e maior é melhor: mais confiança neste acesso.
- Existe apenas em
COMPLETED. Nos outros estados énull— enullnão é 0, não é 100 e não é “tudo certo”. - Não é uma probabilidade: 90 não significa “90% de chance de ser legítimo”.
- Não é uma reputação da pessoa nem da conta, e não é reaproveitada para outro evento.
expires_atdiz até quando o resultado é válido.
recommended_action
Seção intitulada “recommended_action”| Valor | Leitura | Sua ação que conta como alinhada |
|---|---|---|
ALLOW |
Prosseguir | ALLOWED |
MONITOR |
Prosseguir e observar | ALLOWED |
STEP_UP |
Pedir verificação adicional | CHALLENGED |
REVIEW |
Revisão humana antes de concluir | REVIEWED ou HELD |
BLOCK_RECOMMENDED |
O FingerTrackID recomenda bloquear; ele não bloqueou | BLOCKED |
O FingerTrackID recomenda; o seu sistema decide e age. Durante a validação em modo shadow, use a
recomendação para observar e comparar com a sua decisão atual, não como gatilho de bloqueio. Na
política gerenciada do FingerTrackID, sinais de privacidade, Tor, proxy/VPN, hospedagem ou
dispositivo compartilhado, isoladamente, nunca produzem BLOCK_RECOMMENDED, e toda recomendação é
MONITOR.
A exceção são as regras de risco da sua própria empresa: o seu administrador pode tornar indicadores
ativos em Configuração de risco, cada um com
um peso que você escolhe. Qualquer regra pode ser publicada como ativa diretamente, mas só a sua
empresa pode ativá-la. Além dos 13 indicadores, as regras cobrem os 54 itens de Contexto do acesso, calculados
durante a avaliação: cada item dispara numa régua que a sua empresa ajusta (Incomum ou Muito
incomum, cada um com os seus próprios pontos). A nota começa em 100, cada regra ativa que dispara
desconta os seus pontos, e a nota final cai nas faixas que você define; uma nota dentro da sua
faixa de bloqueio devolve BLOCK_RECOMMENDED, mesmo quando uma única regra a causou. Numa resposta
com nota (COMPLETED), uma regra de contexto ativa que dispara aparece em reason_codes com o
código do item (por exemplo VELOCITY_ACCOUNT); uma resposta sem nota não traz códigos de regra,
mesmo quando uma regra disparou. Continua sendo uma recomendação: o seu backend executa o bloqueio,
e o FingerTrackID nunca bloqueia nada. Evidência ausente, timeout ou falha nunca produzem
BLOCK_RECOMMENDED: um indicador ativo sem evidência utilizável deixa a avaliação sem
nota. Um item de contexto ativo sem dados nunca desconta; se a nota então cair na sua faixa de
liberação, a avaliação fica sem nota (INCONCLUSIVE, MONITOR). Se a etapa de contexto não rodar
dentro da avaliação, todo item de contexto conta como sem dados para ela, mesmo quando o
console mostrar depois os itens calculados após ela. Regras em modo fantasma
são medidas, mas nunca mudam a resposta (disponibilidade).
As listas de bloqueio e de liberação da sua empresa também decidem a recomendação de um acesso com
nota. Quando uma entrada ativa de Listas aponta o dispositivo,
a referência de conta ou o IP do acesso, uma resposta COMPLETED traz a ação da entrada, seja qual
for a nota: Bloquear devolve BLOCK_RECOMMENDED, Revisar devolve REVIEW e Liberar
devolve ALLOW. Com várias entradas, o bloqueio prevalece sobre a revisão, que prevalece sobre a
liberação. A nota continua sendo a da política, e reason_codes começa com um código por entrada
decisiva, CUSTOMER_LIST_<action>_<kind> (por exemplo CUSTOMER_LIST_BLOCK_DEVICE,
CUSTOMER_LIST_REVIEW_ACCOUNT ou CUSTOMER_LIST_ALLOW_IP). Um acesso sem nota mantém a
recomendação da política: uma lista nunca transforma em bloqueio um acesso ao qual o FingerTrackID
não conseguiu atribuir nota. O dispositivo e o IP vêm da coleta que o event_context_token indica:
o IP é o endereço que a borda de coleta registrou (ainda guardado no momento do acesso), não
necessariamente o que o seu backend vê. Sem o token, um acesso só pode corresponder pela sua
referência de conta.
Indicadores (signals)
Seção intitulada “Indicadores (signals)”A resposta sempre traz os 13 indicadores Web, cada um DETECTED, NOT_DETECTED ou
NOT_EVALUATED:
ANTI_FINGERPRINTING, BOT_AUTOMATION, BROWSER_SPOOFING, EMULATED_ENVIRONMENT,
PRIVATE_BROWSING, BROWSER_PRIVACY_BRAVE, BROWSER_PRIVACY_SAFARI,
BROWSER_PRIVACY_SAMSUNG_INTERNET, NETWORK_PROXY, NETWORK_VPN, NETWORK_HOSTING,
NETWORK_TOR e DEVICE_MULTI_USER.
NOT_EVALUATED não é NOT_DETECTED: um detector ausente, desatualizado ou com falha nunca vira
“não detectado”. Estar na lista não significa que o indicador é avaliado hoje.
Indicadores sem um detector aplicável ativo voltam NOT_EVALUATED;
limitation_codes explica por quê.
Por que um indicador não foi avaliado
Seção intitulada “Por que um indicador não foi avaliado”Cada entrada de signals traz o seu próprio motivo. DETECTED e NOT_DETECTED vêm com
not_evaluated_reason_code: null, um detector_confidence, observed_at e freshness_ms;
NOT_EVALUATED vem com esses três null e not_evaluated_reason_code preenchido com um dos
códigos de limitação, que diz por que aquele indicador, e só ele, não foi
avaliado. Todo código encontrado num indicador também aparece em limitation_codes, a lista no
nível da avaliação; o contrário não vale (veja abaixo). Leia o código por indicador para saber
qual indicador uma limitação afetou. Todo indicador é APPLICABLE hoje, com
applicability_reason_code: null.
Sem um event_context_token, os 13 indicadores trazem COLLECTOR_NOT_LOADED.
DEVICE_MULTI_USER conta as pessoas distintas (subject_ref) vistas na mesma instalação do
navegador nos 30 dias anteriores à coleta; account_ref não o altera. Ele precisa do cookie
first-party de instalação, e conta só as pessoas que o FingerTrackID já vinculou a essa instalação,
um vínculo registrado de forma assíncrona depois que uma avaliação é armazenada. O primeiro login
numa instalação nova, e um login cuja coleta vem antes de o vínculo anterior ser registrado, por
isso o devolvem NOT_EVALUATED com REQUIRED_EVIDENCE_MISSING; logins posteriores o avaliam.
A referência de conta alimenta os itens de conta de Contexto do acesso. Os 13 indicadores e
evidence_coverage são os mesmos com ou sem account_ref. Os itens de conta de
Contexto do acesso precisam dela; eles só mudam
trust_score e a recomendação quando a sua empresa tornou ativa uma regra de contexto sobre eles
(referências de pessoa e de conta).
A referência de pessoa (subject_ref) alimenta DEVICE_MULTI_USER nas coletas posteriores. Uma
avaliação armazenada sem ela não vincula nenhuma pessoa à instalação. Enquanto nenhuma avaliação
naquele navegador tiver trazido uma nos últimos 30 dias, os logins posteriores ali não contam
ninguém e devolvem DEVICE_MULTI_USER NOT_EVALUATED com REQUIRED_EVIDENCE_MISSING, o que reduz
a evidence_coverage deles. Quando as regras da sua própria empresa tornam DEVICE_MULTI_USER
ativo, enviar subject_ref também muda o trust_score e a recomendação desses logins posteriores:
um indicador ativo sem evidência utilizável deixa a avaliação sem nota
(recommended_action).
Outros campos
Seção intitulada “Outros campos”| Campo | Finalidade |
|---|---|
assessment_id |
UUIDv7 da avaliação; é o recurso para o feedback |
business_event_id |
UUIDv7 do evento no FingerTrackID |
assessment_version, supersedes_assessment_id |
1 e null na resposta síncrona |
evidence_coverage |
0 a 100: quanto das verificações esperadas foi de fato avaliado |
data_freshness |
Corte de evidência, evidência exigida mais antiga e se tudo estava atual |
limitation_codes |
Por que algo não foi avaliado (ex.: COLLECTOR_NOT_LOADED); veja os códigos de limitação. Vazio ([]) quando os 13 indicadores foram avaliados, mesmo com um device_match_confidence null |
reason_codes |
Motivos da avaliação |
device_id, device_match_confidence |
Continuidade do dispositivo. device_id é um alias opaco (dev_…) quando a instalação do navegador foi vinculada; caso contrário, é null; ele não identifica um dispositivo físico. device_match_confidence é sempre null hoje: nenhum detector o calibra ainda, então não espere um valor |
policy_version, fallback_policy_version e os demais campos *_version |
Versões que produziram o resultado |
evidence_cutoff_at, evaluated_at, expires_at |
Linha do tempo do resultado |
correlation_id |
Para o suporte |
Códigos de limitação
Seção intitulada “Códigos de limitação”limitation_codes lista por que alguma evidência faltou ou algum indicador não foi avaliado. Eles
nunca são risco: nenhum código de limitação é motivo contra o acesso, e nenhum reduz o
trust_score. A maioria descreve a qualidade da evidência: um indicador ausente só reduz a
evidence_coverage, e a avaliação é INCONCLUSIVE quando a cobertura mínima da política ou um
indicador exigido não é atendido. POLICY_UNAVAILABLE marca um único indicador cuja configuração
estava inutilizável: só deixa esse indicador sem avaliação, e a avaliação segue a regra de
cobertura acima. Quando nenhuma política ativa e íntegra pode ser selecionada, nenhuma avaliação é
armazenada: a chamada responde 503 assessment-unavailable, um problema operacional
do lado do FingerTrackID, e você repete a mesma operação lógica. Uma avaliação FAILED significa que a
própria avaliação da política não foi concluída: ela traz POLICY_EVALUATION_UNAVAILABLE em
reason_codes e UNSUPPORTED_RUNTIME em limitation_codes, mantém a versão da política que foi
selecionada e recomenda MONITOR.
Por isso, limitation_codes pode listar um código que nenhum indicador traz: toda avaliação
INCONCLUSIVE lista REQUIRED_EVIDENCE_MISSING, e uma FAILED lista UNSUPPORTED_RUNTIME. A
última coluna abaixo diz quais indicadores podem trazer cada código na configuração gerenciada
atual; um código marcado como não enviado hoje faz parte do contrato e pode aparecer depois, então
continue tratando-o.
| Código | Significado | Trazido hoje por |
|---|---|---|
NO_FIRST_PARTY_COOKIE |
A âncora first-party de instalação não estava disponível (por exemplo, o navegador bloqueou ou apagou o cookie do domínio de coleta) | DEVICE_MULTI_USER |
INSTALLATION_COOKIE_REJECTED |
O cookie de instalação era inválido, expirado, revogado ou de outra aplicação, então não foi usado | DEVICE_MULTI_USER |
NO_EDGE_SIGNALS |
Os fatos de rede esperados da borda do FingerTrackID não chegaram de uma fonte confiável | Os quatro indicadores de rede e BROWSER_PRIVACY_SAFARI |
STALE_DEVICE_PROFILE |
A evidência era mais antiga do que o limite de atualidade que a versão dela permite: a evidência do navegador além da janela de evidência da sua aplicação, ou uma fonte de evidência do lado do servidor (como uma lista de rede) mais antiga que a idade máxima dela. Coletar de novo no navegador não resolve o segundo caso | Qualquer indicador |
PROVIDER_UNAVAILABLE |
Uma fonte de evidência exigida não era utilizável: ausente ou de outra versão, recusada, não carregada após as suas novas tentativas, ou construída depois da observação. Uma fonte que fica sem tempo é, em vez disso, DETECTOR_TIMEOUT |
Os quatro indicadores de rede e BROWSER_PRIVACY_SAFARI |
PROVIDER_BUDGET_EXCEEDED |
Uma chamada a uma fonte de dados exigida foi pulada pelo orçamento dela | Nenhum: não enviado hoje |
COLLECTOR_NOT_LOADED |
O SDK do navegador não produziu a observação de que o indicador precisa (por exemplo, nenhum event_context_token) |
Os 13, sem token; com token, os oito indicadores de navegador cuja parte da coleta não chegou |
UNSUPPORTED_RUNTIME |
O indicador, na sua versão atual, não avalia este navegador, motor ou sistema operacional. Numa avaliação FAILED, ele também marca a avaliação da política que não foi concluída |
ANTI_FINGERPRINTING, BROWSER_SPOOFING, EMULATED_ENVIRONMENT, PRIVATE_BROWSING e os três indicadores de privacidade do navegador; nunca BOT_AUTOMATION, os indicadores de rede nem DEVICE_MULTI_USER |
REQUIRED_EVIDENCE_MISSING |
O indicador não tinha evidência utilizável para decidir: um campo de que ele precisa estava ausente ou inválido, ou a evidência que ele recebeu era inconclusiva (por exemplo, nenhuma pessoa vinculada ainda a esta instalação do navegador, ou um endereço de rede que a fonte dele não cobre) | Qualquer indicador; também toda avaliação INCONCLUSIVE, no nível da avaliação |
DETECTOR_TIMEOUT |
O indicador, ou uma consulta de evidência de que ele precisava, não terminou a tempo | Todo indicador, exceto os indicadores de privacidade do navegador para Brave e Samsung Internet e DEVICE_MULTI_USER |
DETECTOR_ERROR |
O indicador falhou sem um resultado conclusivo | Todo indicador, exceto os indicadores de privacidade do navegador para Brave e Samsung Internet |
NETWORK_TYPE_AMBIGUOUS |
A rede não pôde ser classificada honestamente como VPN, proxy ou hospedagem: uma fonte apontou um deles sem dizer qual, ou o acesso veio por um relay de privacidade conhecido ou por uma saída compartilhada (como o iCloud Private Relay ou uma saída da Cloudflare não classificada) | NETWORK_PROXY, NETWORK_VPN e NETWORK_HOSTING; nunca NETWORK_TOR |
CLIENT_CLOCK_SKEW |
O relógio do navegador divergiu além do limite permitido; os horários do lado do servidor continuam sendo a referência | Nenhum: não enviado hoje |
POLICY_UNAVAILABLE |
Num único indicador, a configuração do detector dele estava inutilizável (só esse indicador fica sem avaliação). Uma política ausente é um 503 assessment-unavailable, nunca uma avaliação |
Nenhum na configuração gerenciada hoje |
UNSUPPORTED_RUNTIME num navegador atual. O indicador de navegação privada avalia o Chrome, o
Edge e outros navegadores Chromium (versão 83 em diante), o Safari (WebKit) e o Firefox (Gecko). Os
indicadores de privacidade do navegador e de navegação privada informam UNSUPPORTED_RUNTIME
quando o SDK roda fora da página de nível superior (por exemplo, dentro de um iframe), quando o
motor do navegador não pode ser identificado de forma consistente, ou num navegador embutido em um
app. No Chromium, o indicador de navegação privada também o informa quando o navegador recusou a
sonda de armazenamento ou ela falhou (por exemplo, IndexedDB desativado ou bloqueado). Se você o vir
numa aba comum do Chrome, de nível superior e com armazenamento ativado, envie-nos o
assessment_id. O anti-fingerprinting não é retido da mesma forma: ele ainda pode ser DETECTED a
partir de funções do navegador substituídas quando o motor é desconhecido.
Este não é o erro do SDK de mesmo nome, que initializeSdk lança quando falta ao navegador um
recurso exigido (motivos de falha).
Tamanho: toda resposta — de sucesso ou de erro — tem no máximo 65536 bytes. Leia o corpo
contando os bytes à medida que chegam, não pelo Content-Length, e trate uma resposta maior como um
envio indeterminado (veja nova tentativa).
Não existe GET para buscar uma avaliação. A recuperação é o mesmo POST, com o mesmo corpo.
Exemplo: avaliação inconclusiva sem o SDK
Seção intitulada “Exemplo: avaliação inconclusiva sem o SDK”Um exemplo sintético; os valores só ilustram o formato:
{ "schema_version": "event-assessment.v1", "assessment_id": "01996f2a-0000-7000-8000-000000000401", "assessment_version": 1, "supersedes_assessment_id": null, "business_event_id": "01996f2a-0000-7000-8000-000000000402", "external_event_id": "login_20260904_000002", "journey": "LOGIN", "assessment_status": "INCONCLUSIVE", "retryable": false, "trust_score": null, "device_intelligence_snapshot_id": null, "device_intelligence_snapshot_version": null, "device_id": null, "device_match_confidence": null, "evidence_coverage": 0, "data_freshness": { "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "oldest_required_observed_at": null, "maximum_required_age_ms": 300000, "all_required_fresh": false }, "signals": [ { "signal_code": "ANTI_FINGERPRINTING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BOT_AUTOMATION", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_BRAVE", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAFARI", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_PRIVACY_SAMSUNG_INTERNET", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "BROWSER_SPOOFING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "DEVICE_MULTI_USER", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "EMULATED_ENVIRONMENT", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_HOSTING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_PROXY", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_TOR", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "NETWORK_VPN", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null }, { "signal_code": "PRIVATE_BROWSING", "channel": "WEB", "signal_state": "NOT_EVALUATED", "applicability": "APPLICABLE", "source": "DERIVED", "detector_version": "unavailable-web-detectors.v1", "detector_confidence": null, "observed_at": null, "evaluated_at": "2026-09-04T12:00:00.143Z", "freshness_ms": null, "not_evaluated_reason_code": "COLLECTOR_NOT_LOADED", "applicability_reason_code": null } ], "limitation_codes": [ "COLLECTOR_NOT_LOADED", "REQUIRED_EVIDENCE_MISSING" ], "reason_codes": [ "REQUIRED_EVIDENCE_MISSING" ], "recommended_action": "MONITOR", "recommendation_basis": "INSUFFICIENT_EVIDENCE", "policy_version": "production-detectors-01996f29-4d2c-7b18-9e6a-3f0c8d1b5a72-login", "fallback_policy_version": "production-observation-fallback-v2", "ruleset_version": "d95-detectors.v1", "signal_catalog_version": "web-detectors-v3", "feature_schema_version": "configured-assessment-features.v1", "resolver_version": "first-party-installation-v1", "sdk_version": null, "provider_versions": [], "evidence_cutoff_at": "2026-09-04T12:00:00.105Z", "evaluated_at": "2026-09-04T12:00:00.143Z", "expires_at": "2026-09-04T12:01:00.143Z", "correlation_id": "01996f2a-1111-7000-8000-000000000405"}