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

# Avvisi di verifica della posizione e codici LOCATION_

> Tutti gli avvisi LOCATION_ di Didit: geofence, accuratezza, spoofing, VPN, distanza e autorizzazioni, con trigger e azioni predefinite.

## Panoramica

Gli avvisi sul report della posizione segnalano ogni condizione rilevata da Didit in un passaggio di verifica della posizione.
Vengono inseriti nell'array `warnings[]` di ogni elemento di `geolocation_checks[]` (consulta il [report sulla posizione](https://docs.didit.me/it/core-technology/location-verification/report-location-verification.md)).

Ogni avviso è composto da tre livelli:

1. **Il codice `risk`**: un identificatore stabile su cui effettuare il confronto, che inizia sempre con `LOCATION_`.
2. **Il `log_type`**: `information`, `warning` o `error`. Per i rischi configurabili segue l'azione configurata: `NO_ACTION` restituisce `information`, `REVIEW` restituisce `warning`, `DECLINE` restituisce `error`.
3. **L'impatto sulla decisione**: l'azione più severa tra gli avvisi imposta lo `status` del passaggio. `REVIEW` imposta `In Review`, `DECLINE` imposta `Declined` e `NO_ACTION` lo lascia invariato.

L'incertezza e il rifiuto sono impostati per impostazione predefinita su `REVIEW`, mai su `DECLINE`: un'autorizzazione negata, una posizione al chiuso o un raggio ampio non costituiscono una prova di frode.
Gli avvisi relativi ad accuratezza, aggiornamento, aree, distanza e strumenti di anonimizzazione vengono generati solo all'ultimo tentativo, quindi una persona che ha successo al secondo tentativo non presenta alcun avviso.
Le `status_rules` personalizzate sul nodo possono mantenere o aumentare il livello dello stato, ma mai ridurlo.

## Condizioni di rifiuto automatico

Queste condizioni rifiutano sempre il passaggio, con `log_type: "error"`, e non hanno una chiave di azione.

| Rischio | Trigger |
| - | - |
| `LOCATION_REPLAY_DETECTED` | L'invio conteneva una challenge che appartiene a un'altra sessione. A ciascun tentativo viene assegnata una challenge monouso vincolata alla sessione corrispondente, pertanto presentarla altrove costituisce un replay. |
| `LOCATION_INTEGRITY_FAILED` | Un'attestazione del dispositivo accompagnava la posizione e non ha superato la verifica. |

## Avvisi generati

I valori predefiniti rappresentano le azioni di un passaggio senza `geolocation_preset`.
Con `licensing`, `LOCATION_VPN_DETECTED`, `LOCATION_TOR_DETECTED` e `LOCATION_EMULATOR_DETECTED` sono impostati in modo predefinito su `DECLINE` e `LOCATION_PROXY_DETECTED` su `REVIEW`.
Con `fraud_screening`, ogni impostazione predefinita su `DECLINE` diventa `REVIEW`, e questi quattro rilevamenti di strumenti di anonimizzazione passano a `REVIEW`.
Un'azione impostata esplicitamente ha sempre la precedenza.

### Autorizzazione e disponibilità

| Rischio | Trigger | Chiave di configurazione | Predefinito |
| - | - | - | - |
| `LOCATION_PERMISSION_DENIED` | L'utente ha rifiutato o chiuso la richiesta di geolocalizzazione in ogni tentativo consentito. Si tratta di una scelta, non di una prova di frode. | `geolocation_permission_denied_action` | `REVIEW` |
| `LOCATION_RESTRICTED` | Il sistema operativo ha rifiutato prima che l'utente potesse rispondere: i servizi di localizzazione sono disattivati a livello di dispositivo, oppure sono bloccati da un criterio di gestione dei dispositivi o di controllo parentale. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNAVAILABLE` | Il dispositivo ha accettato la richiesta ma il relativo sistema di posizionamento non ha restituito alcuna posizione in ogni tentativo consentito. È una situazione normale al chiuso e nei sotterranei. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_TIMEOUT` | Nessuna posizione è pervenuta entro `geolocation_timeout_seconds` in qualsiasi tentativo consentito. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_SKIPPED` | Il workflow consente di saltare il passaggio e l'utente ha proseguito senza condividere la posizione. | `geolocation_unavailable_action` | `REVIEW` |
| `LOCATION_UNSUPPORTED_CLIENT` | La sessione ha raggiunto un'app o una build dell'SDK che non implementa il passaggio. Didit ha chiuso il passaggio invece di lasciare la sessione bloccata. Aggiorna l'SDK. | `geolocation_unavailable_action` | `REVIEW` |

### Precisione e attualità

| Rischio | Trigger | Chiave di configurazione | Predefinito |
| - | - | - | - |
| `LOCATION_LOW_ACCURACY` | La posizione migliore ha rilevato un raggio superiore a `geolocation_max_accuracy_radius_m`. È una misura del grado di affidabilità, non dell'onestà dell'utente. | `geolocation_low_accuracy_action` | `REVIEW` |
| `LOCATION_ACCURACY_UNDETERMINED` | La posizione non conteneva alcun raggio in nessun tentativo consentito, quindi non vi è evidenza che rispetti il limite. Non viene mai considerata conforme. | `geolocation_low_accuracy_action` | `REVIEW` |
| `LOCATION_STALE_FIX` | La posizione è stata rilevata oltre `geolocation_max_age_seconds` prima che Didit la ricevesse. | `geolocation_stale_fix_action` | `REVIEW` |
| `LOCATION_APPROXIMATE_ONLY` | Era richiesta una posizione precisa e l'utente ne ha fornita una approssimativa (precisione ridotta su iOS, "Approssimativa" su Android). Non viene mai generato sul web, che non è in grado di distinguerla. | `geolocation_approximate_action` | `REVIEW` |
| `LOCATION_CLOCK_SKEW` | Il dispositivo ha segnalato di aver misurato la posizione nel futuro rispetto all'orologio di Didit. Solo a scopo informativo: l'attualità si basa sull'orario di ricezione di Didit. | nessuna | informazioni |

### Spoofing e integrità

| Rischio | Trigger | Chiave di configurazione | Predefinito |
| - | - | - | - |
| `LOCATION_MOCK_PROVIDER_DETECTED` | Android ha segnalato che la posizione proviene da un provider di posizioni simulate. Anche gli strumenti di test e accessibilità lo impostano, quindi l'azione è configurabile. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_SIMULATED_BY_SOFTWARE` | iOS ha segnalato che la posizione è stata simulata tramite software. | `geolocation_mock_location_action` | `REVIEW` |
| `LOCATION_INTEGRITY_MISSING` | Un'app nativa ha inviato una posizione senza attestazione del dispositivo. Sul web viene registrato come non supportato, non come mancante. | `geolocation_integrity_missing_action` | `NO_ACTION` |
| `LOCATION_EMULATOR_DETECTED` | L'app ha segnalato di essere in esecuzione su un emulatore o una macchina virtuale. I browser non possono segnalarlo. A meno che l'azione non sia `NO_ACTION`, interrompe il passaggio al relativo tentativo. | `geolocation_emulator_action` | `NO_ACTION` |
| `LOCATION_VPN_DETECTED` | La connessione che ha condiviso la posizione esce tramite una VPN commerciale. A meno che l'azione non sia `NO_ACTION`, all'utente viene richiesto di disattivarla e riprovare. | `geolocation_vpn_action` | `NO_ACTION` |
| `LOCATION_PROXY_DETECTED` | La connessione passa attraverso un proxy aperto, anonimo o di relay privato. | `geolocation_proxy_action` | `NO_ACTION` |
| `LOCATION_TOR_DETECTED` | La connessione è un nodo di uscita Tor. | `geolocation_tor_action` | `NO_ACTION` |

### Aree

| Rischio | Trigger | Chiave di configurazione | Predefinito |
| - | - | - | - |
| `LOCATION_OUTSIDE_GEOFENCE` | La posizione e l'intero cerchio di accuratezza si trovano al di fuori di ogni area consentita. | `geolocation_geofencing_action` | `DECLINE` |
| `LOCATION_GEOFENCE_UNDETERMINED` | Il cerchio di accuratezza tocca un confine determinante per il risultato, oppure la posizione non corrisponde ad alcun paese. L'incertezza non viene mai segnalata come esterna. | `geolocation_geofence_undetermined_action` | `REVIEW` |
| `LOCATION_IN_BLOCKED_AREA` | La posizione e l'intero cerchio di accuratezza si trovano all'interno di un'area bloccata. Si aggiunge al verdetto sulle aree consentite, mai in sua sostituzione, e prevale l'azione più restrittiva. | `geolocation_blocked_area_action` | `DECLINE` |

### Distanza e cronologia

| Rischio | Trigger | Chiave di configurazione | Predefinito |
| - | - | - | - |
| `LOCATION_IP_DISTANCE_MISMATCH` | La posizione del dispositivo e la posizione dell'IP distano più di `geolocation_ip_distance_km`, dopo aver sottratto entrambi i raggi. Una VPN, un proxy aziendale o un punto di uscita centrale dell'operatore telefonico possono causare questa discrepanza legittimamente. | `geolocation_ip_distance_action` | `REVIEW` |
| `LOCATION_DOCUMENT_DISTANCE_MISMATCH` | La posizione dista più di `geolocation_document_distance_km` dall'indirizzo presente sul documento. È un segnale debole, poiché la geocodifica degli indirizzi è approssimativa e le persone viaggiano. | `geolocation_document_distance_action` | `REVIEW` |
| `LOCATION_CONSECUTIVE_MISMATCHES` | Questa verifica e i controlli precedenti della stessa persona (stesso `vendor_data`) sono risultati al di fuori di un'area consentita, all'interno di un'area bloccata o troppo distanti dall'indirizzo per almeno `geolocation_consecutive_mismatch_count` volte consecutive. | `geolocation_consecutive_mismatch_action` | `REVIEW` |

## Cosa vede la persona

Alcuni riscontri non vengono mai spiegati alla persona, perché indicare il segnale rivela a un truffatore cosa modificare.
`LOCATION_EMULATOR_DETECTED`, `LOCATION_MOCK_PROVIDER_DETECTED`, `LOCATION_SIMULATED_BY_SOFTWARE`, `LOCATION_REPLAY_DETECTED`, `LOCATION_INTEGRITY_FAILED` e `LOCATION_IP_DISTANCE_MISMATCH` appartengono a questo gruppo: se un revisore rimanda indietro la verifica, la persona legge una motivazione generica, mentre il payload della decisione e i tuoi webhook mantengono l'avviso completo.
Una VPN viene mostrata alla persona solo come una richiesta di disattivare qualsiasi VPN e riprovare, mentre un'area bloccata viene mostrata solo come l'elenco dei luoghi in cui il servizio è disponibile.

## Esempio

```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"
}
```

## Tipi di avviso

A ciascun rischio viene assegnata una gravità in base alla configurazione della tua applicazione. Le tre gravità sono:

## Correlati

* [Report di verifica della posizione](https://docs.didit.me/it/core-technology/location-verification/report-location-verification.md) - i campi accanto a `warnings[]`.
* [Verifica della posizione](https://docs.didit.me/it/core-technology/location-verification/overview.md) - come funziona il passaggio.
* [Configurazioni delle funzionalità del workflow](https://docs.didit.me/it/management-api/workflows/feature-configs.md#verifica-della-posizione) - ogni chiave di azione.
* [Modelli di dati - Oggetto dell'avviso](https://docs.didit.me/it/reference/data-models.md#oggetto-avviso) - la struttura di ogni voce in `warnings[]`.


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