Skip to main content

Overview

Warnings on the location report flag every condition Didit found on a Location verification step. They land in the warnings[] array of each item of geolocation_checks[] (see the location report). Every warning has three layers:
  1. The risk code: a stable identifier you can match on, all starting with LOCATION_.
  2. The log_type: information, warning or error. For configurable risks it follows the configured action: NO_ACTION gives information, REVIEW gives warning, DECLINE gives error.
  3. The decision impact: the strongest action among the warnings sets the step status. REVIEW gives In Review, DECLINE gives Declined, and NO_ACTION leaves it untouched.
Uncertainty and refusal default to REVIEW, never DECLINE: a denied permission, an indoor position or a wide radius is not evidence of fraud. Warnings about accuracy, freshness, areas, distance and anonymizers are raised only on the last attempt, so a person who succeeds on the second try carries no warning. Custom status_rules on the node can keep or raise the status but never lower it.

Auto-decline conditions

These always decline the step, with log_type: "error", and have no action key.

Warnings produced

Defaults are the actions of a step with no geolocation_preset. Under licensing, LOCATION_VPN_DETECTED, LOCATION_TOR_DETECTED and LOCATION_EMULATOR_DETECTED default to DECLINE and LOCATION_PROXY_DETECTED to REVIEW. Under fraud_screening, every default that is DECLINE becomes REVIEW, and those four anonymizer findings become REVIEW. An action you set explicitly always wins.

Permission and availability

Precision and freshness

Spoofing and integrity

Areas

Distance and history

What the person sees

Some findings are never explained to the person, because naming the signal tells a fraudster what to change. LOCATION_EMULATOR_DETECTED, LOCATION_MOCK_PROVIDER_DETECTED, LOCATION_SIMULATED_BY_SOFTWARE, LOCATION_REPLAY_DETECTED, LOCATION_INTEGRITY_FAILED and LOCATION_IP_DISTANCE_MISMATCH are in that group: if a reviewer sends the verification back, the person reads a generic reason, while the decision payload and your webhooks keep the full warning. A VPN is shown to the person only as a request to turn off any VPN and try again, and a blocked area is shown only as the list of places where the service is available.

Example

Warning types

Each risk is assigned a severity based on your application’s configuration. The three severities are:
Last modified on October 31, 2026