Pular para o conteúdo
No ar em produção, em modo shadow: o FingerTrackID recomenda, o seu sistema decide.Status →

A resposta — status, nota e recomendação

No ar · modo shadowAPI v1.1 and v1

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.

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.

201 · login
{
"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"
}

Exemplos sintéticos dos exemplos v1.1 publicados.

  • Vai de 0 a 100, e maior é melhor: mais confiança neste acesso.
  • Existe apenas em COMPLETED. Nos outros estados é null — e null nã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_at diz até quando o resultado é válido.
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.

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ê.

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).

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

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.

Um exemplo sintético; os valores só ilustram o formato:

INCONCLUSIVE — coletor não carregado
{
"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"
}