> ## 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_

> Todos os avisos LOCATION_ da Didit: geofence, precisão, spoofing, VPN, distância e permissões, com acionadores e ação predefinida.

## Visão geral

Os avisos no relatório de localização assinalam todas as condições que a Didit encontrou num passo de verificação de localização.
São incluídos no array `warnings[]` de cada item de `geolocation_checks[]` (consulte o [relatório de localização](https://docs.didit.me/pt/core-technology/location-verification/report-location-verification.md)).

Cada aviso tem três camadas:

1. **O código `risk`**: um identificador estável pelo qual pode fazer correspondências; todos começam por `LOCATION_`.
2. **O `log_type`**: `information`, `warning` ou `error`. Para riscos configuráveis, segue a ação configurada: `NO_ACTION` resulta em `information`, `REVIEW` resulta em `warning` e `DECLINE` resulta em `error`.
3. **O impacto na decisão**: a ação mais rigorosa entre os avisos define o estado (`status`) do passo. `REVIEW` resulta em `In Review`, `DECLINE` resulta em `Declined` e `NO_ACTION` mantém o estado inalterado.

A incerteza e a recusa têm como predefinição `REVIEW`, nunca `DECLINE`: uma permissão recusada, uma posição no interior de um edifício ou um raio amplo não constituem prova de fraude.
Os avisos sobre precisão, atualidade, áreas, distância e ferramentas de anonimização são emitidos apenas na última tentativa, pelo que uma pessoa que seja bem-sucedida à segunda tentativa não terá qualquer aviso.
Regras personalizadas `status_rules` no nó podem manter ou elevar o estado, mas nunca reduzi-lo.

## Condições de recusa automática

Estas condições recusam sempre o passo, com `log_type: "error"`, e não possuem chave de ação.

| Risco | Acionador |
| - | - |
| `LOCATION_REPLAY_DETECTED` | O envio continha um desafio pertencente a outra sessão. Cada tentativa recebe um desafio de utilização única vinculado à respetiva sessão, pelo que apresentá-lo noutro contexto constitui um replay. |
| `LOCATION_INTEGRITY_FAILED` | Uma atestação do dispositivo acompanhou a posição e falhou a verificação. |

## Avisos gerados

As predefinições são as ações de um passo sem `geolocation_preset`.
Sob `licensing`, `LOCATION_VPN_DETECTED`, `LOCATION_TOR_DETECTED` e `LOCATION_EMULATOR_DETECTED` têm como predefinição `DECLINE` e `LOCATION_PROXY_DETECTED` tem `REVIEW`.
Sob `fraud_screening`, todas as predefinições que sejam `DECLINE` passam a `REVIEW`, e essas quatro deteções de anonimizadores tornam-se `REVIEW`.
Uma ação configurada explicitamente por si tem sempre prioridade.

### Permissão e disponibilidade

| Risco | Acionador | Chave de configuração | Predefinição |
| - | - | - | - |
| `LOCATION_PERMISSION_DENIED` | A pessoa recusou ou dispensou o pedido de localização em todas as tentativas permitidas. Uma escolha, não uma prova de fraude. | `geolocation_permission_denied_action` | `REVIEW` |
| `LOCATION_RESTRICTED` | O sistema operativo recusou antes que a pessoa pudesse responder: os serviços de localização estão desativados a nível do dispositivo, ou uma política de gestão de dispositivos ou de controlo parental bloqueia-os. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNAVAILABLE` | O dispositivo aceitou o pedido, mas o seu sistema de posicionamento não devolveu qualquer posição em todas as tentativas permitidas. Comum em espaços interiores e subterrâneos. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_TIMEOUT` | Nenhuma posição foi obtida dentro de `geolocation_timeout_seconds` em qualquer tentativa permitida. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_SKIPPED` | O fluxo permite ignorar o passo e a pessoa continuou sem partilhar a localização. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNSUPPORTED_CLIENT` | A sessão chegou a uma aplicação ou versão de SDK que não implementa o passo. A Didit encerrou o passo em vez de deixar a sessão pendente. Atualize o SDK. | `geolocation_unavailable_action` | `REVIEW` |

### Precisão e atualidade

| Risco | Acionador | Chave de configuração | Predefinição |
| - | - | - | - |
| `LOCATION_LOW_ACCURACY` | A melhor posição teve um raio superior a `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 apresentou qualquer raio em qualquer tentativa permitida, pelo que nada demonstra que cumpre o limite. Nunca é considerada como tendo cumprido. | `geolocation_low_accuracy_action` | `REVIEW` |
| `LOCATION_STALE_FIX` | A posição foi medida mais de `geolocation_max_age_seconds` antes de a Didit a receber. | `geolocation_stale_fix_action` | `REVIEW` |
| `LOCATION_APPROXIMATE_ONLY` | Era necessária uma localização precisa e a pessoa concedeu uma aproximada (precisão reduzida no iOS, "Aproximada" no Android). Nunca é gerado na Web, onde não é possível determinar. | `geolocation_approximate_action` | `REVIEW` |
| `LOCATION_CLOCK_SKEW` | O dispositivo indicou que mediu a posição no futuro em comparação com o relógio da Didit. Apenas informativo: a verificação da atualidade utiliza a hora de receção da Didit. | nenhum | informação |

### Spoofing e integridade

| Risco | Acionador | Chave de configuração | Predefinição |
| - | - | - | - |
| `LOCATION_MOCK_PROVIDER_DETECTED` | O Android indicou que a posição teve origem num fornecedor de localização simulada. Ferramentas de teste e de acessibilidade também o ativam, pelo que a ação é configurável. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_SIMULATED_BY_SOFTWARE` | O iOS indicou que a posição foi simulada por software. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_INTEGRITY_MISSING` | Uma aplicação nativa enviou uma posição sem atestação de dispositivo. Na Web é registado como não suportado, e não como em falta. | `geolocation_integrity_missing_action` | `NO_ACTION` |
| `LOCATION_EMULATOR_DETECTED` | A aplicação indicou estar a ser executada num emulador ou máquina virtual. Os navegadores não conseguem reportar isto. Salvo se a ação for `NO_ACTION`, termina o passo nessa tentativa. | `geolocation_emulator_action` | `NO_ACTION` |
| `LOCATION_VPN_DETECTED` | A ligação que partilhou a localização sai através de uma VPN comercial. Salvo se a ação for `NO_ACTION`, é pedido à pessoa que a desative e tente novamente. | `geolocation_vpn_action` | `NO_ACTION` |
| `LOCATION_PROXY_DETECTED` | A ligação passa através de um proxy aberto, anónimo ou de retransmissão privada. | `geolocation_proxy_action` | `NO_ACTION` |
| `LOCATION_TOR_DETECTED` | A ligação passa por um nó de saída Tor. | `geolocation_tor_action` | `NO_ACTION` |

### Áreas

| Risco | Acionador | Chave de configuração | Predefiniçã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 atinge um limite que decide a resposta, ou a posição não corresponde a nenhum país. A incerteza nunca é comunicada como estando fora das áreas permitidas. | `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. É adicionado ao veredicto da área permitida, nunca em substituição deste, e a ação mais restrita prevalece. | `geolocation_blocked_area_action` | `DECLINE` |

### Distância e histórico

| Risco | Acionador | Chave de configuração | Predefinição |
| - | - | - | - |
| `LOCATION_IP_DISTANCE_MISMATCH` | A posição do dispositivo e a localização por IP têm uma distância superior a `geolocation_ip_distance_km`, após a subtração de ambos os raios. Uma VPN, um proxy empresarial ou a saída centralizada de um operador geram isto legitimamente. | `geolocation_ip_distance_action` | `REVIEW` |
| `LOCATION_DOCUMENT_DISTANCE_MISMATCH` | A posição está a uma distância superior a `geolocation_document_distance_km` da morada do documento. Um indício pouco fiável, pois as moradas são geocodificadas de forma aproximada e as pessoas viajam. | `geolocation_document_distance_action` | `REVIEW` |
| `LOCATION_CONSECUTIVE_MISMATCHES` | Esta verificação e verificações anteriores da mesma pessoa (mesmo `vendor_data`) estiveram fora de uma área permitida, numa área bloqueada ou demasiado longe da morada pelo menos `geolocation_consecutive_mismatch_count` vezes consecutivas. | `geolocation_consecutive_mismatch_action` | `REVIEW` |

## O que a pessoa vê

Algumas conclusões nunca são explicadas à pessoa, porque indicar qual é o sinal revela a um fraudador o que deve alterar.
`LOCATION_EMULATOR_DETECTED`, `LOCATION_MOCK_PROVIDER_DETECTED`, `LOCATION_SIMULATED_BY_SOFTWARE`, `LOCATION_REPLAY_DETECTED`, `LOCATION_INTEGRITY_FAILED` e `LOCATION_IP_DISTANCE_MISMATCH` pertencem a esse grupo: se um revisor devolver a verificação, a pessoa lê um motivo genérico, enquanto o payload de decisão e os seus webhooks mantêm o aviso completo.
Uma VPN só é apresentada à pessoa como um pedido para desativar qualquer VPN e tentar novamente, e uma área bloqueada só é mostrada como a lista de locais onde o serviço se encontra 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 avisos

A cada risco é atribuída uma gravidade com base na configuração da sua aplicação. As três gravidades são:

## Relacionado

* [Relatório de verificação de localização](https://docs.didit.me/pt/core-technology/location-verification/report-location-verification.md) - os campos junto a `warnings[]`.
* [Verificação de localização](https://docs.didit.me/pt/core-technology/location-verification/overview.md) - como funciona o passo.
* [Configurações de funcionalidades de fluxos](https://docs.didit.me/pt/management-api/workflows/feature-configs.md#verificação-de-localização) - todas as chaves de ação.
* [Modelos de dados - Objeto de aviso](https://docs.didit.me/pt/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.