> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Avisos de verificação de localização e códigos LOCATION_

> Avisos LOCATION_ da Didit na verificação de localização: geofence, precisão, spoofing, VPN, distância e permissão, com gatilho e ação padrão.

## Visão geral

Os avisos no relatório de localização sinalizam todas as condições que a Didit encontrou em uma etapa de verificação de localização.
Eles ficam no array `warnings[]` de cada item de `geolocation_checks[]` (veja o [relatório de localização](https://docs.didit.me/pt-br/core-technology/location-verification/report-location-verification.md)).

Cada aviso tem três camadas:

1. **O código `risk`**: um identificador estável que você pode usar para correspondência, sempre começando com `LOCATION_`.
2. **O `log_type`**: `information`, `warning` ou `error`. Para riscos configuráveis, ele segue a ação configurada: `NO_ACTION` gera `information`, `REVIEW` gera `warning` e `DECLINE` gera `error`.
3. **O impacto na decisão**: a ação mais severa entre os avisos define o `status` da etapa. `REVIEW` gera `In Review`, `DECLINE` gera `Declined`, e `NO_ACTION` não o altera.

Incerteza e recusa têm `REVIEW` como padrão, nunca `DECLINE`: uma permissão negada, uma posição em ambiente fechado ou um raio amplo não são evidência de fraude.
Os avisos sobre precisão, atualidade, áreas, distância e anonimizadores são gerados apenas na última tentativa, então uma pessoa que é bem-sucedida na segunda tentativa não fica com nenhum aviso.
`status_rules` personalizadas no nó podem manter ou elevar o status, mas nunca rebaixá-lo.

## Condições de recusa automática

Estas condições sempre recusam a etapa, com `log_type: "error"`, e não têm chave de ação.

| Risco | Gatilho |
| - | - |
| `LOCATION_REPLAY_DETECTED` | O envio trouxe um desafio que pertence a outra sessão. Cada tentativa recebe um desafio de uso único vinculado à sua sessão, então apresentá-lo em outro lugar caracteriza um replay. |
| `LOCATION_INTEGRITY_FAILED` | Uma atestação do dispositivo acompanhou a posição e falhou na verificação. |

## Avisos gerados

Os padrões são as ações de uma etapa sem `geolocation_preset`.
Em `licensing`, `LOCATION_VPN_DETECTED`, `LOCATION_TOR_DETECTED` e `LOCATION_EMULATOR_DETECTED` têm `DECLINE` como padrão, e `LOCATION_PROXY_DETECTED` tem `REVIEW`.
Em `fraud_screening`, todo padrão que é `DECLINE` passa a ser `REVIEW`, e essas quatro detecções de anonimizadores passam a ser `REVIEW`.
Uma ação que você define explicitamente sempre prevalece.

### Permissão e disponibilidade

| Risco | Gatilho | Chave de configuração | Padrão |
| - | - | - | - |
| `LOCATION_PERMISSION_DENIED` | A pessoa recusou ou ignorou a solicitação de localização em todas as tentativas permitidas. É uma escolha, não uma evidência de fraude. | `geolocation_permission_denied_action` | `REVIEW` |
| `LOCATION_RESTRICTED` | O sistema operacional recusou antes que a pessoa pudesse responder: os serviços de localização estão desativados em todo o dispositivo, ou uma política de gerenciamento de dispositivos ou de controle parental os bloqueia. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNAVAILABLE` | O dispositivo aceitou a requisição, mas seu sistema de posicionamento não retornou nenhuma posição em todas as tentativas permitidas. É comum em ambientes fechados e subterrâneos. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_TIMEOUT` | Nenhuma posição chegou dentro de `geolocation_timeout_seconds` em nenhuma das tentativas permitidas. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_SKIPPED` | O fluxo permite pular a etapa, e a pessoa continuou sem compartilhar uma localização. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNSUPPORTED_CLIENT` | A sessão chegou a uma versão do app ou do SDK que não implementa a etapa. A Didit encerrou a etapa em vez de deixar a sessão parada. Atualize o SDK. | `geolocation_unavailable_action` | `REVIEW` |

### Precisão e atualidade

| Risco | Gatilho | Chave de configuração | Padrão |
| - | - | - | - |
| `LOCATION_LOW_ACCURACY` | A melhor posição tinha um raio maior que `geolocation_max_accuracy_radius_m`. É uma medida de confiança, não de honestidade. | `geolocation_low_accuracy_action` | `REVIEW` |
| `LOCATION_ACCURACY_UNDETERMINED` | A posição não trouxe nenhum raio em nenhuma das tentativas permitidas, então nada mostra que ela atende ao limite. Ela nunca conta como tendo atendido. | `geolocation_low_accuracy_action` | `REVIEW` |
| `LOCATION_STALE_FIX` | A posição foi medida mais de `geolocation_max_age_seconds` antes de a Didit recebê-la. | `geolocation_stale_fix_action` | `REVIEW` |
| `LOCATION_APPROXIMATE_ONLY` | Era exigida uma localização precisa, e a pessoa concedeu uma aproximada (precisão reduzida no iOS, "Aproximada" no Android). Nunca é gerado na web, que não consegue distinguir isso. | `geolocation_approximate_action` | `REVIEW` |
| `LOCATION_CLOCK_SKEW` | O dispositivo informou que mediu a posição no futuro em relação ao relógio da Didit. Apenas informativo: a atualidade usa o horário de recebimento da Didit. | nenhuma | informação |

### Spoofing e integridade

| Risco | Gatilho | Chave de configuração | Padrão |
| - | - | - | - |
| `LOCATION_MOCK_PROVIDER_DETECTED` | O Android informou que a posição veio de um provedor de localização simulada. Ferramentas de teste e de acessibilidade também podem fazer isso, por isso a ação é configurável. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_SIMULATED_BY_SOFTWARE` | O iOS informou que a posição foi simulada por software. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_INTEGRITY_MISSING` | Um app nativo enviou uma posição sem atestação do dispositivo. Na web, isso é registrado como não suportado, não como ausente. | `geolocation_integrity_missing_action` | `NO_ACTION` |
| `LOCATION_EMULATOR_DETECTED` | O app informou que está sendo executado em um emulador ou em uma máquina virtual. Navegadores não conseguem informar isso. A menos que a ação seja `NO_ACTION`, a etapa é encerrada nessa tentativa. | `geolocation_emulator_action` | `NO_ACTION` |
| `LOCATION_VPN_DETECTED` | A conexão que compartilhou a localização sai por uma VPN comercial. A menos que a ação seja `NO_ACTION`, é solicitado que a pessoa a desative e verifique novamente. | `geolocation_vpn_action` | `NO_ACTION` |
| `LOCATION_PROXY_DETECTED` | A conexão passa por um proxy aberto, anônimo ou de retransmissão privada. | `geolocation_proxy_action` | `NO_ACTION` |
| `LOCATION_TOR_DETECTED` | A conexão é um nó de saída do Tor. | `geolocation_tor_action` | `NO_ACTION` |

### Áreas

| Risco | Gatilho | Chave de configuração | Padrão |
| - | - | - | - |
| `LOCATION_OUTSIDE_GEOFENCE` | A posição e todo o seu círculo de precisão estão fora de todas as áreas permitidas. | `geolocation_geofencing_action` | `DECLINE` |
| `LOCATION_GEOFENCE_UNDETERMINED` | O círculo de precisão alcança um limite que define a resposta, ou a posição não corresponde a nenhum país. A incerteza nunca é informada como fora. | `geolocation_geofence_undetermined_action` | `REVIEW` |
| `LOCATION_IN_BLOCKED_AREA` | A posição e todo o seu círculo de precisão estão dentro de uma área bloqueada. Isso é somado ao veredito da área permitida, nunca o substitui, e a ação mais rigorosa decide. | `geolocation_blocked_area_action` | `DECLINE` |

### Distância e histórico

| Risco | Gatilho | Chave de configuração | Padrão |
| - | - | - | - |
| `LOCATION_IP_DISTANCE_MISMATCH` | A posição do dispositivo e a localização do IP estão mais distantes que `geolocation_ip_distance_km`, depois de subtrair os dois raios. Uma VPN, um proxy corporativo ou a saída central de uma operadora produzem isso de forma legítima. | `geolocation_ip_distance_action` | `REVIEW` |
| `LOCATION_DOCUMENT_DISTANCE_MISMATCH` | A posição está a mais de `geolocation_document_distance_km` do endereço do documento. É um sinal fraco, porque os endereços são geocodificados de forma aproximada e as pessoas viajam. | `geolocation_document_distance_action` | `REVIEW` |
| `LOCATION_CONSECUTIVE_MISMATCHES` | Esta verificação e as verificações anteriores da mesma pessoa (mesmo `vendor_data`) ficaram fora de uma área permitida, em uma área bloqueada ou longe demais do endereço pelo menos `geolocation_consecutive_mismatch_count` vezes seguidas. | `geolocation_consecutive_mismatch_action` | `REVIEW` |

## O que a pessoa vê

Algumas constatações nunca são explicadas à pessoa, porque nomear o sinal mostra a um fraudador o que ele precisa mudar.
`LOCATION_EMULATOR_DETECTED`, `LOCATION_MOCK_PROVIDER_DETECTED`, `LOCATION_SIMULATED_BY_SOFTWARE`, `LOCATION_REPLAY_DETECTED`, `LOCATION_INTEGRITY_FAILED` e `LOCATION_IP_DISTANCE_MISMATCH` fazem parte desse grupo: se um revisor devolver a verificação, a pessoa lê um motivo genérico, enquanto o payload da decisão e os seus webhooks mantêm o aviso completo.
A presença de uma VPN é mostrada à pessoa apenas como um pedido para desativar qualquer VPN e tentar novamente, e uma área bloqueada é mostrada apenas por meio da lista de locais onde o serviço está disponível.

## Exemplo

```json theme={null}
{
  "risk": "LOCATION_LOW_ACCURACY",
  "log_type": "warning",
  "short_description": "Device location accuracy below the configured limit",
  "additional_data": {
    "accuracy_m": 1200.0,
    "accuracy_confidence": "p95",
    "max_accuracy_radius_m": 250
  },
  "node_id": "geolocation_1"
}
```

## Tipos de aviso

Cada risco recebe um nível de severidade com base na configuração da sua aplicação. As três severidades são:

## Relacionados

* [Relatório de verificação de localização](https://docs.didit.me/pt-br/core-technology/location-verification/report-location-verification.md) - os campos ao lado de `warnings[]`.
* [Verificação de localização](https://docs.didit.me/pt-br/core-technology/location-verification/overview.md) - como a etapa funciona.
* [Configurações de recursos do fluxo](https://docs.didit.me/pt-br/management-api/workflows/feature-configs.md#verificação-de-localização) - todas as chaves de ação.
* [Modelos de dados - objeto Warning](https://docs.didit.me/pt-br/reference/data-models.md#objeto-de-aviso) - o formato de cada entrada em `warnings[]`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.