Skip to main content

Overview

Device & IP analysis profiles every session by IP geolocation, device fingerprint, browser/OS, and network type. Geolocation and network-risk data are resolved through IP intelligence providers. It produces:
  • An IP geolocation block (country, state, city, latitude/longitude, time zone) derived from the public IP.
  • Network-risk flagsis_vpn_or_tor and is_data_center — to detect masking attempts (VPN, Tor exit nodes, hosting providers, anonymisers).
  • Cross-document distance calculations — straight-line km between the IP location, the ID document’s location, and the proof-of-address document’s location.
  • Cross-session matches — when the same IP address or device identity appears across sessions belonging to different users (grouped by vendor_data).
  • Device fingerprint recovery — a high-confidence recovery signal that links sessions even after the user clears storage, switches incognito modes, or reinstalls the app.
Didit Device and IP Analysis report screenshot with geolocation, device fingerprint and risk flags

Where it appears in API responses

The decision endpoint returns Device & IP analysis as the plural array ip_analyses[] in GET /v3/session/{sessionId}/decision/. Entries are deduplicated Location observations keyed on (node_id, ip_address, device_fingerprint) — a single node can yield multiple entries when the user’s IP or device changes mid-session.
The shape below mirrors the canonical schema — see Data models.

Schema

See Device & IP analysis in the Data Models reference for the canonical schema.

Match semantics

match_source tells you how the match was reached, and confidence scores how likely it is to be wrong (confidence = 1 - P(false positive)): Lower-confidence recovery candidates surface as risk warnings only — never in matches[]. IP matches and device matches are capped at 5 each, so the array holds at most 10 entries.

Status values

Statuses are feature-level FeatureStatusChoices values. Each fired warning maps to the action configured for it on the workflow node; the strongest action wins. Custom status rules configured on the IP analysis node can further adjust the resulting status.

VPN, proxy, and Tor detection

is_vpn_or_tor and is_data_center are independent boolean flags returned for every session. When is_vpn_or_tor is true, Didit also emits the PRIVATE_NETWORK_DETECTED warning so your team can act on it via workflow configuration. Datacenter-only traffic (without VPN/Tor) sets is_data_center=true but does not auto-warn — use this as an additional signal in your own scoring.

Examples

Approved

Declined — IP blocklist hit + VPN + duplicate device