Pular para o conteúdo

GET /vasp/screenings/{id}

Busca uma recomendação de screening anterior

Item Valor
Método GET
Caminho /vasp/screenings/{id}
URL https://crypto-api.sentinexrisk.com/api/v1/vasp/screenings/{id}
Grupo VASP - Screening
operationId getScreening
Versão do contrato 8.5.1

Chave de API do tenant no header X-API-Key (esquema ApiKeyAuth). A chave identifica o tenant e carrega os escopos; não existe header de tenant. Detalhes em Autenticação.

Nome Em Tipo Obrigatório Descrição
id path string (uuid) sim

Esta operação não recebe corpo.

Janela do terminal
curl -X GET "https://crypto-api.sentinexrisk.com/api/v1/vasp/screenings/{id}" \
-H "X-API-Key: $SENTINEX_API_KEY"
Status Descrição
200 Recomendação de screening e decisão registrada pelo cliente

Recomendação de screening e decisão registrada pelo cliente

Tipo de mídia application/json.

Schema VASPScreeningGetResponse, do tipo objeto.

Campo Tipo Obrigatório Descrição
success boolean sim Valores: true.
data um de: VASPScreeningDecision, VASPScreeningLegacyDecision sim
Campo Tipo Obrigatório Descrição
data.screening_id string (uuid) sim
data.operation_at string (date-time) não Data efetivamente usada na consulta de sanção por intervalo de designação, em UTC. Análise gravada antes desta data existir não traz o campo.
data.operation_time_source string não Origem de operation_at, em ordem de precedência: OPERATION_AT (enviada pelo cliente), BLOCK_TIME (data do bloco da transação, quando o servidor já a mediu) e RECEIVED_AT (instante em que a requisição foi recebida). Valores: OPERATION_AT, BLOCK_TIME, RECEIVED_AT.
data.client_transaction_id string não
data.customer_id string (uuid) não UUID informado na análise original. Presente junto de holder_resolution, e ausente quando a requisição não trouxe customer_id.
data.screen_status string sim Valores: completed.
data.recommendation string sim Recomendação auxiliar da Sentinex. Não é decisão operacional do cliente. DENY somente com base em sanção ou por regra de bloqueio configurada pela própria empresa; os demais riscos saem REVIEW. Valores: ALLOW, REVIEW, HOLD, DENY. Exemplo: REVIEW.
data.client_decision objeto (KYTClientDecision) sim Decisão e desfecho atribuídos exclusivamente ao cliente.
data.client_decision.status string sim Valores: PENDING_CLIENT_DECISION, RECORDED.
data.client_decision.authority string não Valores: CLIENT_EXCHANGE.
data.client_decision.operational_action string não Valores: ALLOW, HOLD, DENY.
data.client_decision.suspicion_outcome string não Valores: SUSPICIOUS, NOT_SUSPICIOUS.
data.client_decision.rationale string não
data.client_decision.recorded_at string (date-time) não Data e hora em RFC 3339, UTC.
data.risk_score integer sim Score final limitado a 0 a 100 e arredondado uma única vez, com meio para cima. É o mesmo valor de score_ledger.final e do registro escalar da análise. A repetição idempotente e a consulta devolvem o snapshot gravado na análise original. Mínimo: 0. Máximo: 100. Exemplo: 70.
data.risk_level string sim Faixa de risco em caixa alta. Exemplo: HIGH.
data.sanctions objeto sim Resultado da triagem de sanções da contraparte. hit e state distinguem ausência de medição de resultado negativo: hit só sai booleano quando state é MEASURED, e sai nulo quando a sanção não foi medida. Categorias adversas não provam sanção.
data.sanctions.hit boolean ou null sim Nulo quando state é NOT_MEASURED. Falso com state MEASURED é consulta negativa medida; nulo nunca vale como limpo.
data.sanctions.state string (KYTMeasurementState) não Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.sanctions.categories lista de string não Ausente quando vazio, nunca nulo.
data.sanctions.provider string não
data.sanctions.provider_status string não
data.sanctions.evidence lista de objeto (KYTSanctionEvidence) ou null não Fatos de sanção verificados para a contraparte. Nulo ou vazio quando não há fato verificado.
data.sanctions.evidence[].subject string sim Valores: counterparty.
data.sanctions.evidence[].address string sim Endereço consultado ao qual o fato se vincula.
data.sanctions.evidence[].list string sim Lista de origem do fato. Nos fixtures do sandbox vale SANDBOX_FIXTURE. Exemplo: OPENSANCTIONS.
data.sanctions.evidence[].list_version string sim Versão da lista fornecida pela fonte. Nos fixtures do sandbox é o identificador do catálogo sandbox-fixtures-v1.
data.sanctions.evidence[].list_date string (date-time) sim Data fornecida pela lista, e não o horário da consulta.
data.sanctions.evidence[].match_type string sim Valores: EXACT_ADDRESS.
data.sanctions.evidence[].source string sim Origem do fato. Em produção vale SENTINEX_SANCTIONS_DATABASE; nos fixtures do sandbox vale SENTINEX_SANDBOX.
data.sanctions.evidence[].observed_at string (date-time) sim Instante da consulta que observou o fato.
data.sanctions.evidence[].program string não Programa da designação na fonte oficial. Omitido quando não medido.
data.sanctions.evidence[].designation_start string (date-time) não Início inclusivo da designação, em UTC. Omitido enquanto a fonte não fornecer o intervalo; os produtores atuais ainda não o preenchem.
data.sanctions.evidence[].designation_end string (date-time) não Fim exclusivo da designação, quando informado pela fonte. Omitido enquanto a fonte não fornecer o intervalo.
data.sanctions.coverage lista de objeto (SanctionsSourceCoverage) ou null não Estado de cada fonte de sanções configurada nesta consulta.
data.sanctions.coverage[].source string sim Exemplo: OPENSANCTIONS.
data.sanctions.coverage[].state string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.sanctions.coverage[].dataset string não
data.sanctions.coverage[].dataset_version string não
data.sanctions.coverage[].published_at string (date-time) não Data de publicação informada pela fonte.
data.sanctions.coverage[].loaded_at string (date-time) não Última leitura completa da fonte.
data.sanctions.coverage[].count integer (int64) não Quantidade de endereços da versão. Omitido quando não medido. Mínimo: 1.
data.sanctions.coverage[].reason string não Motivo de indisponibilidade, como stale ou snapshot_unavailable.
data.capabilities objeto (KYTMeasuredCapabilities) não Capacidade de medição de cada dimensão da triagem, independente do status do provedor. MEASURED atesta apenas a capacidade nomeada, inclusive quando o resultado foi negativo. Os cinco campos saem sempre, com NOT_MEASURED quando a dimensão não foi medida. labels vale MEASURED também quando há etiqueta de bloqueio de emissor para o endereço (ver label_evidence). Ausência de evento não torna a dimensão MEASURED.
data.capabilities.sanctions string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.capabilities.labels string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.capabilities.exposures string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.capabilities.graph string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.capabilities.typologies string (KYTMeasurementState) sim Estado de medição de uma dimensão. NOT_MEASURED significa que a dimensão não foi medida nesta consulta, e nunca vale como resultado negativo, zero ou lista vazia conclusiva. Valores: MEASURED, NOT_MEASURED.
data.label_evidence lista de objeto (KYTIssuerBlockLabel) não Etiquetas de bloqueio de emissor de stablecoin (USDT e USDC) lidas de eventos públicos do contrato. Omitido quando nenhum evento foi coletado para o endereço: ausência de evento não prova que o endereço esteja livre. Efeito sempre LABEL_ONLY, nunca sanção, nunca score.
data.label_evidence[].source string sim Valores: ISSUER_BLOCK_EVENT.
data.label_evidence[].issuer string sim Valores: USDT, USDC.
data.label_evidence[].event string sim Assinatura do evento do ABI público do contrato. Exemplo: Blacklisted(address).
data.label_evidence[].state string sim Estado pelo evento mais recente, por (bloco, índice do log). Valores: BLOCKED, UNBLOCKED.
data.label_evidence[].contract string sim Contrato do emissor que gravou o evento. Formato (expressão regular): ^0x[0-9a-f]{40}$.
data.label_evidence[].block_number integer (int64) sim Mínimo: 0.
data.label_evidence[].block_time string (date-time) sim Data do bloco que contém o evento, em UTC.
data.label_evidence[].tx_hash string sim Formato (expressão regular): ^0x[0-9a-f]{64}$.
data.label_evidence[].effect string sim Valores: LABEL_ONLY.
data.label_evidence[].recommendation string não Recomendação da política da empresa quando state é BLOCKED. Nunca DENY e nunca ALLOW. Omitido quando state é UNBLOCKED. Valores: REVIEW, HOLD.
data.direct_exposure objeto ou null não Exposição direta por categoria. Nulo quando capabilities.exposures é NOT_MEASURED, sem percentual fabricado a partir de rótulo.
data.indirect_exposure objeto ou null não Exposição indireta por categoria. Nulo quando capabilities.exposures é NOT_MEASURED.
data.rule_hits lista de objeto sim
data.rule_hits[].rule_id string sim
data.rule_hits[].name string sim
data.rule_hits[].severity string sim
data.rule_hits[].weight number (double) sim
data.coverage objeto (RuleCoverageSnapshot) sim Não aceita propriedades além das listadas.
data.coverage.manifest_version string sim Valores: snx-rule-capabilities/2026-07-29.v1.
data.coverage.state string sim Valores: ACTIVE_READY, ACTIVE_DEGRADED, DISABLED.
data.coverage.input_assessments objeto não Estado das entradas amount_brl, aggregate_7d e travel_rule da triagem em tempo real, presente só na resposta de POST /vasp/screenings. Sem identificação do titular (customer_ref vazio), o agregado de 7 dias sai NOT_EVALUATED e não impõe retenção. Omitido em análises anteriores a esta medição.
data.coverage.evaluable_rules lista de string sim Até 512 itens. Itens sem repetição.
data.coverage.degraded_rules lista de objeto (RuleCoverageDegradedCapability) sim Até 512 itens.
data.coverage.degraded_rules[].rule_id string sim Até 80 caracteres.
data.coverage.degraded_rules[].source string sim Até 80 caracteres.
data.coverage.degraded_rules[].cause string sim Valores: REQUIRED_INPUT_MISSING, SOURCE_UNAVAILABLE, SOURCE_STALE, MANIFEST_MISSING, ENGINE_UNAVAILABLE.
data.coverage.disabled_rules lista de string sim Até 512 itens. Itens sem repetição.
data.coverage.causes lista de string sim Até 16 itens. Itens sem repetição.
data.not_covered lista de objeto não Dimensões que esta versão não analisa por desenho. Cada item traz rule_id, source e cause. Triagens gravadas antes desta versão não trazem o campo. ALLOW com entradas aqui significa que aquelas dimensões não foram analisadas, e não que o resultado delas foi negativo. Falha real do provedor, timeout ou erro de consulta continua em coverage.degraded_rules e retém a triagem; não entra neste campo.
data.not_covered[].rule_id string sim Até 80 caracteres.
data.not_covered[].source string sim Até 80 caracteres.
data.not_covered[].cause string sim Valores: CAPABILITY_NOT_OFFERED, NETWORK_NOT_COVERED.
data.obligations objeto sim
data.obligations.travel_rule string sim Valores: UNKNOWN, REQUIRED, NOT_REQUIRED.
data.obligations.coaf_sar string sim Campo legado. O motor devolve MONITOR e não produz REPORTABLE por limiar monetário, portanto o valor não comprova obrigação objetiva de comunicação nem decisão de comunicar suspeição. Use coaf_objective para o estado objetivo (prévia).
data.obligations.decripto string sim
data.obligations.coaf_objective objeto (CoafObjectivePreview) não Prévia objetiva do screening. Sem evento confirmado, o screening apenas devolve esta prévia, que nunca é comunicação definitiva.
data.obligations.coaf_objective.state string sim Valores: INDETERMINADA.
data.obligations.coaf_objective.final boolean sim Valores: false.
data.obligations.coaf_objective.gaps lista de string sim
data.amount_brl number (double) ou null sim Valor em reais, não em centavos, calculado pelo servidor. Nulo quando a quantidade ou a cotação não estão disponíveis ou a cotação está vencida, o que retém a análise em HOLD temporário. Exemplo: 7500.5.
data.declared_fiat_value_brl number (double) ou null não Valor declarado pelo integrador em fiat_value_brl, preservado para conferência. Não decide regras nem recomendação.
data.score_ledger objeto (KYTScoreLedger) não Reconstrução do score. Comece por base, aplique cada item sobre o valor before para obter after (effective é after menos before), limite o resultado ao intervalo minimum a maximum e quantize uma única vez. O resultado é final, igual ao risk_score da resposta. O item de origem deep_lane_adjustment, quando presente, explicita a diferença entre o impacto total devolvido pelo avaliador de regras e as contribuições individuais disponíveis.
data.score_ledger.base number sim
data.score_ledger.minimum number sim Valores: 0.
data.score_ledger.maximum number sim Valores: 100.
data.score_ledger.quantization string sim Valores: HALF_UP.
data.score_ledger.final integer sim Mínimo: 0. Máximo: 100.
data.score_ledger.items lista de objeto sim
data.score_ledger.items[].source string sim
data.score_ledger.items[].operation string sim Valores: MAX, ADD, FLOOR.
data.score_ledger.items[].before number sim
data.score_ledger.items[].operand number sim
data.score_ledger.items[].effective number sim
data.score_ledger.items[].after number sim
data.shadow_observations lista de objeto (KYTShadowObservation) não
data.shadow_observations[].screening_id string (uuid) sim
data.shadow_observations[].rule_id string sim
data.shadow_observations[].rule_name string sim
data.shadow_observations[].triggered boolean sim
data.shadow_observations[].score_impact number sim
data.fail_closed boolean sim
data.reasons lista de string não
data.latency_ms integer (int64) sim Latência total em milissegundos. Mínimo: 0.
data.evaluated_at string (date-time) sim Data e hora em RFC 3339, UTC. Exemplo: 2026-09-21T13:40:45Z.
data.api_version string sim Valores: v1.
data.holder_resolution string não Obrigatório na resposta de sucesso quando a requisição contém customer_id, independentemente do adicional. RESOLVED significa que o titular pertence à empresa autenticada; não atesta enriquecimento. NOT_FOUND inclui UUID desconhecido e UUID de outra empresa, sem alterar recomendação, score, motivos ou cobrança. Com cruzamento desligado, nenhuma fonte de KYC é lida. Sem customer_id, o campo não vem. Valores: RESOLVED, NOT_FOUND.
data.transaction objeto não Presente somente depois de PATCH /vasp/screenings/{id}/tx-hash. O hash vindo no POST original não gera este objeto.
data.transaction.tx_hash string não
data.transaction.attached_at string (date-time) não
data.transaction.origin string não Valores: TX_HASH_PATCH.
Campo Tipo Obrigatório Descrição
data.screening_id string (uuid) sim
data.recommendation string sim Valores: ALLOW, REVIEW, HOLD, DENY.
data.client_decision objeto (KYTClientDecision) sim Decisão e desfecho atribuídos exclusivamente ao cliente.
data.client_decision.status string sim Valores: PENDING_CLIENT_DECISION, RECORDED.
data.client_decision.authority string não Valores: CLIENT_EXCHANGE.
data.client_decision.operational_action string não Valores: ALLOW, HOLD, DENY.
data.client_decision.suspicion_outcome string não Valores: SUSPICIOUS, NOT_SUSPICIOUS.
data.client_decision.rationale string não
data.client_decision.recorded_at string (date-time) não Data e hora em RFC 3339, UTC.
data.risk_score integer sim
data.risk_level string sim
data.amount_brl number (double) sim
data.created_at string (date-time) sim
data.api_version string sim Valores: v1.

Estes são os códigos que o contrato declara para esta operação. Os limites que valem para toda a API, antes da autenticação, estão em Limites de requisição.

Status Descrição
400 id que não é UUID (KYT_SCREENING_ID_INVALID).
401 A chave de API não autenticou a requisição, e nenhuma camada adiante rodou. error.code é missing_api_key (nenhuma chave em X-API-Key nem em Authorization: Bearer snxc_...) ou invalid_api_key (chave desconhecida, revogada ou expirada). Quando a plataforma não consegue verificar a chave, a resposta é 503 com api_key_verification_unavailable, e não 401: repita com backoff.
402 Conta sem direito comercial (TRIAL_EXPIRED): trial vencido, trial sem data ou empresa sem contrato. A requisição NÃO foi processada; uma triagem recusada assim é transação não triada, nunca aprovada.
403 Acesso recusado antes da operação, nesta ordem de camadas: o escudo de borda recusa travessia de diretório na URL (ErroTexto); a chave é recusada pelo IP de origem (api_key_ip_not_allowed); o ambiente da chave não é aceito por esta implantação (api_key_environment_required ou api_key_environment_not_allowed); a conta não pode usar a API (TenantAccessRefusalResponse: empresa_SUSPENDED, empresa_NOT_OPERATIONAL, API_ACCESS_DISABLED ou empresa_ACCESS_DENIED); a chave não tem o escopo da rota (insufficient_scope, com o escopo na mensagem). Não repita sem corrigir a causa.
404 Análise inexistente nesta empresa (KYT_SCREENING_NOT_FOUND). Com chave válida, route_not_found diz que o caminho ou o método não corresponde a operação servida (ErrorResponseCoded).
429 Limite de requisições atingido; nada foi processado. Formas, pela camada que recusou: limite da chave (ErrorResponseCoded, api_key_rate_limit_exceeded, 60 por minuto quando a chave não define outro valor, Retry-After: 60); limite global por hora (ErroLimite, retry_after 3600 e Retry-After: 3600); escudo de borda por IP (ErroLimite: RATE_LIMIT_HARD acima de 1.000 por minuto, com 300 segundos; IP_BANNED no bloqueio temporário; e a rajada com intervalo menor que 50 ms, que vem sem Retry-After e sem retry_after). A busca de clientes tem limite próprio (error rate_limited, com retry_after e detail) e o laudo também (error RATE_LIMIT_EXCEEDED, 120 por hora por IP, Retry-After: 3600). No sandbox, chamadas VASP autenticadas também usam sandbox_simulator_rate_limit_exceeded: 60 por minuto por key, 300 por minuto por empresa e 10.000 por dia UTC por empresa. Essa recusa inclui Retry-After, X-RateLimit-Limit e X-RateLimit-Remaining: 0. Espere o Retry-After quando ele vier.
500 Falha inesperada (ErroTexto) ou análise gravada que não pôde ser lida (KYT_SNAPSHOT_INVALID).
503 Análise indisponível para consulta (KYT_SERVICE_UNAVAILABLE ou KYT_PERSISTENCE_UNAVAILABLE). As camadas anteriores à operação também respondem 503, nada processado: limitador por IP ou da empresa sem contagem (ErroTexto), estado da conta (empresa_ACCESS_STATE_UNAVAILABLE) e limitador da chave (rate_limit_unavailable) e verificação da chave (api_key_verification_unavailable).

id que não é UUID (KYT_SCREENING_ID_INVALID).

Tipo de mídia application/json.

Schema KYTPublicErrorResponse, do tipo objeto.

Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error objeto sim
error.code string sim Exemplo: KYT_DEPENDENCY_UNAVAILABLE.
error.http_status integer sim Exemplo: 503.
error.message string sim
error.action string sim
error.retriable boolean sim
error.retry_after_seconds integer não Mínimo: 1.
error.request_id string não
error.reason string não Causa do 400 KYT_WALLET_INVALID no laudo: address_chain_mismatch diz que o endereço não é válido para a rede informada (rede desconhecida, checksum inválido ou forma de outra rede). O par é validado antes de qualquer consulta externa. Ausente nos demais erros. Valores: address_chain_mismatch.

A chave de API não autenticou a requisição, e nenhuma camada adiante rodou. error.code é missing_api_key (nenhuma chave em X-API-Key nem em Authorization: Bearer snxc_...) ou invalid_api_key (chave desconhecida, revogada ou expirada). Quando a plataforma não consegue verificar a chave, a resposta é 503 com api_key_verification_unavailable, e não 401: repita com backoff.

Resposta compartilhada ErroChaveNaoAutenticada do contrato.

Tipo de mídia application/json.

Schema ErrorResponseCoded, do tipo objeto.

Envelope de erro codificado (middlewares de API key e erros de negócio da superfície VASP). Trate error.code como contrato estável; error.message é texto livre.

Campo Tipo Obrigatório Descrição
success boolean sim Exemplo: false.
error objeto sim
error.code string sim Exemplo: missing_api_key.
error.message string sim Exemplo: X-API-Key header required.

Conta sem direito comercial (TRIAL_EXPIRED): trial vencido, trial sem data ou empresa sem contrato. A requisição NÃO foi processada; uma triagem recusada assim é transação não triada, nunca aprovada.

Resposta compartilhada TenantAccessPaymentRequired do contrato.

Tipo de mídia application/json.

Schema TenantAccessRefusalResponse, do tipo objeto.

Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Seu período de teste terminou. Fale com a Sentinex Risk para estender o teste ou contratar um plano..
code string sim Valores: TRIAL_EXPIRED, TENANT_SUSPENDED, TENANT_NOT_OPERATIONAL, API_ACCESS_DISABLED, TENANT_ACCESS_DENIED, TENANT_ACCESS_STATE_UNAVAILABLE.
details objeto não
details.reason string não Presente em TRIAL_EXPIRED. Valores: TRIAL_WITHOUT_END_DATE, TRIAL_ENDED, POC_TRIAL_RETIRED, DEMO_WITHOUT_COMMERCIAL_ACCESS, NO_COMMERCIAL_ACCESS.
details.trial_ends_at string (date-time) não Presente em TRIAL_EXPIRED quando o trial tem data.
details.lifecycle_state string não Presente em empresa_NOT_OPERATIONAL.

Acesso recusado antes da operação, nesta ordem de camadas: o escudo de borda recusa travessia de diretório na URL (ErroTexto); a chave é recusada pelo IP de origem (api_key_ip_not_allowed); o ambiente da chave não é aceito por esta implantação (api_key_environment_required ou api_key_environment_not_allowed); a conta não pode usar a API (TenantAccessRefusalResponse: empresa_SUSPENDED, empresa_NOT_OPERATIONAL, API_ACCESS_DISABLED ou empresa_ACCESS_DENIED); a chave não tem o escopo da rota (insufficient_scope, com o escopo na mensagem). Não repita sem corrigir a causa.

Resposta compartilhada ErroAcessoNegado do contrato.

Tipo de mídia application/json.

Tipo um de: ErrorResponseCoded, TenantAccessRefusalResponse, ErroTexto.

Campo Tipo Obrigatório Descrição
success boolean sim Exemplo: false.
error objeto sim
error.code string sim Exemplo: missing_api_key.
error.message string sim Exemplo: X-API-Key header required.
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Seu período de teste terminou. Fale com a Sentinex Risk para estender o teste ou contratar um plano..
code string sim Valores: TRIAL_EXPIRED, TENANT_SUSPENDED, TENANT_NOT_OPERATIONAL, API_ACCESS_DISABLED, TENANT_ACCESS_DENIED, TENANT_ACCESS_STATE_UNAVAILABLE.
details objeto não
details.reason string não Presente em TRIAL_EXPIRED. Valores: TRIAL_WITHOUT_END_DATE, TRIAL_ENDED, POC_TRIAL_RETIRED, DEMO_WITHOUT_COMMERCIAL_ACCESS, NO_COMMERCIAL_ACCESS.
details.trial_ends_at string (date-time) não Presente em TRIAL_EXPIRED quando o trial tem data.
details.lifecycle_state string não Presente em empresa_NOT_OPERATIONAL.
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Carteira não encontrada..

Análise inexistente nesta empresa (KYT_SCREENING_NOT_FOUND). Com chave válida, route_not_found diz que o caminho ou o método não corresponde a operação servida (ErrorResponseCoded).

Tipo de mídia application/json.

Tipo um de: ErrorResponseCoded, KYTPublicErrorResponse.

Campo Tipo Obrigatório Descrição
success boolean sim Exemplo: false.
error objeto sim
error.code string sim Exemplo: missing_api_key.
error.message string sim Exemplo: X-API-Key header required.
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error objeto sim
error.code string sim Exemplo: KYT_DEPENDENCY_UNAVAILABLE.
error.http_status integer sim Exemplo: 503.
error.message string sim
error.action string sim
error.retriable boolean sim
error.retry_after_seconds integer não Mínimo: 1.
error.request_id string não
error.reason string não Causa do 400 KYT_WALLET_INVALID no laudo: address_chain_mismatch diz que o endereço não é válido para a rede informada (rede desconhecida, checksum inválido ou forma de outra rede). O par é validado antes de qualquer consulta externa. Ausente nos demais erros. Valores: address_chain_mismatch.

Limite de requisições atingido; nada foi processado. Formas, pela camada que recusou: limite da chave (ErrorResponseCoded, api_key_rate_limit_exceeded, 60 por minuto quando a chave não define outro valor, Retry-After: 60); limite global por hora (ErroLimite, retry_after 3600 e Retry-After: 3600); escudo de borda por IP (ErroLimite: RATE_LIMIT_HARD acima de 1.000 por minuto, com 300 segundos; IP_BANNED no bloqueio temporário; e a rajada com intervalo menor que 50 ms, que vem sem Retry-After e sem retry_after). A busca de clientes tem limite próprio (error rate_limited, com retry_after e detail) e o laudo também (error RATE_LIMIT_EXCEEDED, 120 por hora por IP, Retry-After: 3600). No sandbox, chamadas VASP autenticadas também usam sandbox_simulator_rate_limit_exceeded: 60 por minuto por key, 300 por minuto por empresa e 10.000 por dia UTC por empresa. Essa recusa inclui Retry-After, X-RateLimit-Limit e X-RateLimit-Remaining: 0. Espere o Retry-After quando ele vier.

Resposta compartilhada ErroLimiteDeRequisicoes do contrato.

Header Tipo Descrição
Retry-After integer Segundos a esperar antes de repetir. Vem nos 429 dos limitadores (salvo a rajada do escudo) e no 503 de transação que conflitou (1 segundo).
X-RateLimit-Limit integer Teto da janela do limitador que respondeu, quando ele informa.
X-RateLimit-Remaining integer Requisições restantes na janela, quando o limitador informa.

Tipo de mídia application/json.

Tipo um de: ErrorResponseCoded, ErroLimite.

Campo Tipo Obrigatório Descrição
success boolean sim Exemplo: false.
error objeto sim
error.code string sim Exemplo: missing_api_key.
error.message string sim Exemplo: X-API-Key header required.
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Too many requests. Please try again later..
retry_after integer não Mínimo: 1. Exemplo: 3600.
code string não Exemplo: RATE_LIMIT_HARD.
reference string não Identificador curto do bloqueio, para citar ao suporte.
detail string não

Falha inesperada (ErroTexto) ou análise gravada que não pôde ser lida (KYT_SNAPSHOT_INVALID).

Tipo de mídia application/json.

Tipo um de: ErroTexto, KYTPublicErrorResponse.

Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Carteira não encontrada..
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error objeto sim
error.code string sim Exemplo: KYT_DEPENDENCY_UNAVAILABLE.
error.http_status integer sim Exemplo: 503.
error.message string sim
error.action string sim
error.retriable boolean sim
error.retry_after_seconds integer não Mínimo: 1.
error.request_id string não
error.reason string não Causa do 400 KYT_WALLET_INVALID no laudo: address_chain_mismatch diz que o endereço não é válido para a rede informada (rede desconhecida, checksum inválido ou forma de outra rede). O par é validado antes de qualquer consulta externa. Ausente nos demais erros. Valores: address_chain_mismatch.

Análise indisponível para consulta (KYT_SERVICE_UNAVAILABLE ou KYT_PERSISTENCE_UNAVAILABLE). As camadas anteriores à operação também respondem 503, nada processado: limitador por IP ou da empresa sem contagem (ErroTexto), estado da conta (empresa_ACCESS_STATE_UNAVAILABLE) e limitador da chave (rate_limit_unavailable) e verificação da chave (api_key_verification_unavailable).

Header Tipo Descrição
Retry-After integer Segundos a esperar antes de repetir. Vem nos 429 dos limitadores (salvo a rajada do escudo) e no 503 de transação que conflitou (1 segundo).

Tipo de mídia application/json.

Tipo um de: ErroTexto, TenantAccessRefusalResponse, ErrorResponseCoded, KYTPublicErrorResponse.

Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Carteira não encontrada..
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error string sim Exemplo: Seu período de teste terminou. Fale com a Sentinex Risk para estender o teste ou contratar um plano..
code string sim Valores: TRIAL_EXPIRED, TENANT_SUSPENDED, TENANT_NOT_OPERATIONAL, API_ACCESS_DISABLED, TENANT_ACCESS_DENIED, TENANT_ACCESS_STATE_UNAVAILABLE.
details objeto não
details.reason string não Presente em TRIAL_EXPIRED. Valores: TRIAL_WITHOUT_END_DATE, TRIAL_ENDED, POC_TRIAL_RETIRED, DEMO_WITHOUT_COMMERCIAL_ACCESS, NO_COMMERCIAL_ACCESS.
details.trial_ends_at string (date-time) não Presente em TRIAL_EXPIRED quando o trial tem data.
details.lifecycle_state string não Presente em empresa_NOT_OPERATIONAL.
Campo Tipo Obrigatório Descrição
success boolean sim Exemplo: false.
error objeto sim
error.code string sim Exemplo: missing_api_key.
error.message string sim Exemplo: X-API-Key header required.
Campo Tipo Obrigatório Descrição
success boolean sim Valores: false.
error objeto sim
error.code string sim Exemplo: KYT_DEPENDENCY_UNAVAILABLE.
error.http_status integer sim Exemplo: 503.
error.message string sim
error.action string sim
error.retriable boolean sim
error.retry_after_seconds integer não Mínimo: 1.
error.request_id string não
error.reason string não Causa do 400 KYT_WALLET_INVALID no laudo: address_chain_mismatch diz que o endereço não é válido para a rede informada (rede desconhecida, checksum inválido ou forma de outra rede). O par é validado antes de qualquer consulta externa. Ausente nos demais erros. Valores: address_chain_mismatch.