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

# लोकेशन सत्यापन API: जियोफ़ेंसिंग और IP दूरी

> Didit से सत्यापन के दौरान स्थान जांचें: डिवाइस स्थिति, जियोफ़ेंसिंग, IP व दस्तावेज़ दूरी और स्पूफिंग जांच। $0.05 प्रति जांच।

Didit का स्थान सत्यापन चरण पुष्टि करता है कि कोई व्यक्ति सत्यापन के दौरान कहाँ उपस्थित है। यह डिवाइस की स्थिति (ब्राउज़र या नेटिव SDK) को एक बार पढ़कर या कनेक्शन के IP स्थान को पढ़कर किया जाता है, और इसे अनुमत व ब्लॉक किए गए क्षेत्रों, IP स्थान तथा उनके दस्तावेज़ों पर मौजूद पते के विरुद्ध जाँचा जाता है।
वर्कफ़्लो और API में यह `GEOLOCATION` सुविधा है, इसकी सेटिंग्स `geolocation_*` कुंजियाँ हैं, और इसका परिणाम सत्र निर्णय पर `geolocation_checks[]` होता है।

## इसका उपयोग कब करें

* आपके पास केवल कुछ क्षेत्राधिकारों (जुआ, ब्रोकरेज, लेंडिंग) के लिए लाइसेंस है और आपको यह साबित करना होगा कि आवेदन करते समय व्यक्ति उनमें से किसी एक के भीतर उपस्थित था।
* आपको लोगों को ब्लॉक किए गए स्थानों से बाहर रखना है, जैसे कि कोई प्रतिबंध वाला क्षेत्र या ऐसा राज्य जहाँ आप सेवा नहीं देते हैं।
* आप एक अतिरिक्त धोखाधड़ी संकेत चाहते हैं: IP स्थान या ID पर दिए गए पते से बहुत दूर डिवाइस की स्थिति, नकली स्थिति, VPN या एमुलेटर।
* आपको व्यक्ति की गतिविधियों या इतिहास की आवश्यकता नहीं है, केवल सत्र के दौरान ली गई एक रीडिंग की आवश्यकता है।

## यह कैसे काम करता है

**1. सूचना और अनुमति**

व्यक्ति यह देखता है कि उनके स्थान की आवश्यकता क्यों है और इस सत्यापन के लिए इसे केवल एक बार पढ़ा जाता है।
इसके बाद उनका ब्राउज़र या फ़ोन अनुमति मांगता है।
Didit उनके द्वारा स्वीकार की गई सूचना (वर्शन, भाषा और समय) को परिणाम में `consent` के रूप में रिकॉर्ड करता है।

**2. प्रति प्रयास एक स्थिति**

क्लाइंट सबसे सटीक रीडिंग को तब तक बनाए रखता है जब तक कि यह पर्याप्त रूप से सटीक न हो जाए या प्रति-प्रयास टाइमआउट (डिफ़ॉल्ट 20 सेकंड) समाप्त न हो जाए।
प्रत्येक प्रयास में एक एकल-उपयोग चैलेंज शामिल होता है जो 5 मिनट के लिए मान्य होता है और सत्र से जुड़ा होता है, ताकि कैप्चर किए गए सबमिशन को दोबारा न चलाया जा सके।

**3. जाँच**

Didit सटीकता, ताज़गी, लगभग-स्थान की अनुमतियों, स्पूफिंग संकेतों, क्षेत्रों, IP स्थान और दस्तावेज़ के पते की दूरी, VPN, प्रॉक्सी, Tor और एमुलेटर निष्कर्षों, तथा व्यक्ति की पिछली जाँचों का मूल्यांकन करता है।

**4. परिणाम**

प्रत्येक निष्कर्ष एक [चेतावनी](https://docs.didit.me/hi/core-technology/location-verification/warnings-location-verification.md) उत्पन्न करता है जिसकी कॉन्फ़िगर की गई कार्रवाई (`NO_ACTION`, `REVIEW` या `DECLINE`) चरण की स्थिति निर्धारित करती है।
सबसे सख्त कार्रवाई मान्य होती है।

## स्थिति के स्रोत

आप `geolocation_position_source` के साथ चुनते हैं कि स्थिति कहाँ से प्राप्त की जाए।

| मान | क्या होता है |
| - | - |
| `device_and_ip` | डिवाइस की स्थिति की जाँच उस कनेक्शन के IP स्थान के विरुद्ध की जाती है जहाँ से इसे भेजा गया था। |
| `device_only` | केवल डिवाइस की स्थिति। इसकी तुलना कभी भी IP स्थान से नहीं की जाती है। |
| `ip_only` | व्यक्ति से कभी अनुमति नहीं मांगी जाती है। इसके बजाय कनेक्शन के IP स्थान (शहर स्तर, 50 किमी का दायरा) का मूल्यांकन किया जाता है, जिसमें कोई सटीकता, ताज़गी या अनुमानित-अनुमति नियम नहीं होता है। |
| सेट नहीं है | डिवाइस से अनुरोध किया जाता है, और स्थिति की तुलना सत्र के डिवाइस और IP विश्लेषण चरण द्वारा देखे गए IP स्थान से की जाती है। ऐसा नोड जो VPN, प्रॉक्सी या Tor निष्कर्ष पर कार्रवाई करता है, वह कनेक्शन की जाँच करता है और `device_and_ip` की तरह व्यवहार करता है। |

जिस नोड पर डिवाइस से अनुरोध किया जाता है, वहाँ जिस प्रयास में स्थिति उपलब्ध नहीं होती, उसे अस्वीकृति या विफलता के रूप में आँका जाता है: IP स्थान कभी भी इसके विकल्प के रूप में उपयोग नहीं होता है।

## कॉन्फ़िगरेशन डिफ़ॉल्ट और सीमाएँ

सभी कुंजियाँ वैकल्पिक हैं।
पूरी सूची [वर्कफ़्लो सुविधा कॉन्फ़िग संदर्भ](https://docs.didit.me/hi/management-api/workflows/feature-configs.md#स्थान-सत्यापन) में है।

| सेटिंग | डिफ़ॉल्ट | सीमाएँ |
| - | - | - |
| `geolocation_max_accuracy_radius_m` | 250 m | 10 से 50,000 m |
| `geolocation_max_age_seconds` | 120 s | 5 से 3,600 s |
| `geolocation_timeout_seconds` | 20 s | 5 से 120 s |
| `geolocation_max_attempts` | 3 | 1 से 5 |
| `geolocation_accuracy_mode` | `precise` | `precise` या `approximate_allowed` |
| `geolocation_low_accuracy_behavior` | `ask_again` | `ask_again` या `fail` |
| `geolocation_allow_qr_handoff` | on | on या off |
| `geolocation_allow_skip` | off | on या off |
| `geolocation_refusal_path` | `retry_then_handoff` | `retry_then_handoff`, `continue_without_location`, `end_session` |
| `is_geolocation_geofencing_enabled` | off | on या off |
| `geolocation_ip_distance_km` | 200 km | 0 या अधिक, `null` तुलना को बंद कर देता है |
| `geolocation_document_distance_km` | off | 0 या अधिक |
| `geolocation_travel_tolerance_enabled` | off | सामान्य क्षेत्र 10 से 500 km (डिफ़ॉल्ट 100), 1 से 90 दिन (डिफ़ॉल्ट 14) |
| `geolocation_consecutive_mismatch_count` | off | 2 से 10 |

### प्रीसेट

`geolocation_preset` उन सभी कार्रवाइयों के लिए डिफ़ॉल्ट सेट करता है जिन्हें आप सेट किए बिना छोड़ देते हैं।
`licensing` अनुमत क्षेत्रों के बाहर, किसी ब्लॉक किए गए क्षेत्र के अंदर, VPN या Tor के पीछे, या किसी एमुलेटर पर स्थिति को अस्वीकृत करता है, और प्रॉक्सी की समीक्षा करता है।
`fraud_screening` समान निष्कर्षों को लागू करता है लेकिन उन सभी मामलों को समीक्षा के लिए भेजता है जिन्हें `licensing` अस्वीकृत करता।
आपके द्वारा स्पष्ट रूप से सेट की गई कार्रवाई हमेशा प्राथमिकता लेती है।

## जियोफ़ेंसिंग

`is_geolocation_geofencing_enabled` को चालू करें और `geolocation_areas` को सूचीबद्ध करें।
एक क्षेत्र पूरा देश, किसी देश के क्षेत्र (ISO 3166-2), एक वृत्त (1 से 500 km) या एक बहुभुज (3 से 200 बिंदु) हो सकता है।
केवल किसी अनुमत क्षेत्र के अंदर की स्थिति ही पास होती है, और ब्लॉक किया गया क्षेत्र हमेशा अनुमत क्षेत्र पर प्रभावी होता है।
एक सूची में अधिकतम 50 क्षेत्र हो सकते हैं और इसमें कम से कम एक अनुमत क्षेत्र होना आवश्यक है।

Didit स्थिति के केवल केंद्र का ही नहीं, बल्कि सटीकता-त्रिज्या वाले पूरे वृत्त का मूल्यांकन करता है:

* ऐसा वृत्त जो प्रत्येक अनुमत क्षेत्र के पूरी तरह से बाहर है, वह `LOCATION_OUTSIDE_GEOFENCE` होता है।
* ऐसा वृत्त जो निर्णय लेने वाली सीमा रेखा को पार करता है, वह `LOCATION_GEOFENCE_UNDETERMINED` होता है, कभी भी "बाहर" नहीं।
* ऐसा वृत्त जो किसी ब्लॉक किए गए क्षेत्र के पूरी तरह से अंदर है, वह `LOCATION_IN_BLOCKED_AREA` होता है, और यह अनुमत-क्षेत्र के निर्णय के अतिरिक्त रिपोर्ट किया जाता है।

कोई देश या क्षेत्र वहाँ समाप्त होता है जहाँ दूसरी भूमि शुरू होती है, उसके समुद्र तट पर नहीं।
व्यक्ति को यह दिखाया जाता है कि सेवा कहाँ उपलब्ध है, लेकिन यह कभी नहीं दिखाया जाता कि कौन से क्षेत्र ब्लॉक हैं।
क्षेत्र के नियम `ip_only` चरण पर भी काम करते हैं, जिनका मूल्यांकन IP स्थान से किया जाता है।
पुरानी `geolocation_geofencing_by_country` सेटिंग अभी भी काम करती है लेकिन इसे `geolocation_areas` के साथ संयोजित नहीं किया जा सकता है।

## दूरी जाँच

| जाँच | जिनके बीच मापा गया | सेटिंग |
| - | - | - |
| IP दूरी | डिवाइस की स्थिति और IP स्थान के बीच, दोनों अनिश्चितता की त्रिज्याओं को घटाने के बाद (0 का मतलब है कि वे ओवरलैप करते हैं)। | `geolocation_ip_distance_km`, `geolocation_ip_distance_action` |
| दस्तावेज़ दूरी | स्थिति और एक ऐसे पते के बीच, जिसे मोटे तौर पर जियोकोड किया गया है, इसलिए यह एक कमज़ोर सिग्नल है। | `geolocation_document_distance_km`, `geolocation_document_distance_basis`, `geolocation_document_distance_action` |
| लगातार असंगतियों की संख्या | व्यक्ति के पिछले चेक (समान `vendor_data`) जो किसी स्वीकृत क्षेत्र से बाहर थे, ब्लॉक किए गए क्षेत्र में थे या पते से बहुत दूर थे। | `geolocation_consecutive_mismatch_count` |

`geolocation_document_distance_basis` पते का चयन करता है: `document` (पहचान दस्तावेज़, फिर पते का प्रमाण), `proof_of_address`, या `declared` (सत्र निर्माण से `expected_details.address`)।
`geolocation_travel_tolerance_enabled` के साथ, पिछले `geolocation_travel_max_days` दिनों में अपने पते के पास देखे गए व्यक्ति को अब उससे दूर होने के लिए फ़्लैग नहीं किया जाता है।
ट्रैवल टॉलरेंस कभी भी VPN, स्पूफ़ की गई स्थिति, ब्लॉक किए गए क्षेत्र या स्वीकृत क्षेत्रों के बाहर की स्थिति को छूट नहीं देता है।

## स्पूफ़िंग और इंटिग्रिटी सिग्नल

* **मॉक प्रोवाइडर**: Android और iOS रिपोर्ट करते हैं जब किसी स्थिति को मापने के बजाय सिम्युलेट किया जाता है।
* **डिवाइस अटेस्टेशन**: नेटिव SDK डिवाइस अटेस्टेशन जोड़ सकते हैं। विफल अटेस्टेशन हमेशा अस्वीकृति का कारण बनता है। अनुपलब्ध अटेस्टेशन रिकॉर्ड किया जाता है और डिफ़ॉल्ट रूप से कोई कार्रवाई नहीं होती है। ब्राउज़र अटेस्ट नहीं कर सकते हैं और उन्हें विफलता के रूप में नहीं, बल्कि `unsupported` के रूप में रिकॉर्ड किया जाता है।
* **VPN, प्रॉक्सी और Tor**: उस कनेक्शन पर पाए जाते हैं जिसने स्थान साझा किया था। जब इनमें से किसी एक के लिए आपकी कार्रवाई `NO_ACTION` नहीं होती है, तो व्यक्ति से इसे बंद करने और प्रयास शेष रहने तक दोबारा जाँच करने के लिए कहा जाता है।
* **एम्यूलेटर**: केवल नेटिव ऐप्स द्वारा रिपोर्ट किए जाते हैं। एम्यूलेटर उस प्रयास पर चरण को समाप्त कर देता है क्योंकि पुनः प्रयास करने से डिवाइस नहीं बदलता है।
* **रीप्ले**: किसी अन्य सत्र पर प्रस्तुत किया गया चैलेंज हमेशा अस्वीकृत होता है।

## परिणाम

चरण के स्वीकृत प्रयास का एक `outcome` होता है:

| परिणाम | अर्थ |
| - | - |
| `verified` | एक ऐसी स्थिति जिसने प्रत्येक नियम को पूरा किया। |
| `low_accuracy` / `accuracy_undetermined` | दायरा सीमा से अधिक विस्तृत था, या डिवाइस ने कोई दायरा रिपोर्ट नहीं किया। |
| `stale` | स्थिति `geolocation_max_age_seconds` से अधिक पुरानी थी। |
| `approximate` | सटीक स्थिति की आवश्यकता होने पर केवल एक अनुमानित स्थिति प्रदान की गई थी। |
| `denied` / `restricted` | व्यक्ति ने अस्वीकार कर दिया, या सिस्टम स्थान को ब्लॉक करता है। |
| `unavailable` / `timeout` | डिवाइस को कोई स्थिति नहीं मिली, या समय पर नहीं मिली। |
| `mock_detected` | सिस्टम ने स्थिति को सिम्युलेटेड के रूप में रिपोर्ट किया। |
| `outside_geofence` / `in_blocked_area` | स्थिति प्रत्येक स्वीकृत क्षेत्र से बाहर है, या किसी ब्लॉक किए गए क्षेत्र में है। |
| `anonymizer_detected` | एक VPN, प्रॉक्सी, Tor एग्ज़िट या एम्यूलेटर पाया गया और आपका वर्कफ़्लो उस पर कार्रवाई करता है। |
| `skipped` | व्यक्ति साझा किए बिना आगे बढ़ गया। |
| `replay_rejected` | चैलेंज किसी अन्य सत्र का था। |
| `unsupported_client` | चरण दिखाने के लिए ऐप या SDK बहुत पुराना है। |

जब तक प्रयास शेष रहते हैं, विस्तृत, पुरानी, अनुमानित, अस्वीकृत या क्षेत्र-संबंधी स्थिति मिलने पर व्यक्ति को पुनः प्रयास करने के लिए कहा जाता है, और केवल अंतिम प्रयास ही चेतावनियाँ उत्पन्न करता है।
मॉक की गई स्थिति, या कोई एम्यूलेटर जिस पर आपका वर्कफ़्लो कार्रवाई करता है, उस प्रयास पर चरण को समाप्त कर देता है जिसने इसे रिपोर्ट किया था।

## व्यक्ति का अनुभव

### सहमति और अनुमति

व्यक्ति द्वारा नोटिस स्वीकार करने और सिस्टम प्रॉम्प्ट का उत्तर देने से पहले कुछ भी नहीं पढ़ा जाता है।
नोटिस में कहा गया है कि स्थान को केवल एक बार, इस सत्यापन के लिए पढ़ा जाता है, और यह उनकी गतिविधियों का रिकॉर्ड नहीं है।
अस्वीकार करने वाले व्यक्ति के साथ `geolocation_refusal_path` के अनुसार व्यवहार किया जाता है:

* `retry_then_handoff` प्रयास शेष रहने तक दोबारा पूछता है और फिर फ़ोन पर जारी रखने की सुविधा प्रदान करता है।
* `continue_without_location` बिना स्थान के आगे बढ़ने की सुविधा प्रदान करता है, और अस्वीकृति को परिणाम के रूप में रिकॉर्ड करता है।
* `end_session` पहली अस्वीकृति पर चरण और सत्र को समाप्त कर देता है। इसके लिए `geolocation_permission_denied_action` का `REVIEW` या `DECLINE` होना आवश्यक है, और सत्र कभी स्वीकृत नहीं होता है।

`geolocation_allow_skip` चालू होने पर, व्यक्ति किसी भी समय बिना स्थान के जारी रख सकता है, और चरण का मूल्यांकन `geolocation_unavailable_action` द्वारा किया जाता है।

### ब्राउज़र

होस्टेड फ़्लो ब्राउज़र से स्थिति मांगता है और साइट के लिए स्थान बंद होने पर Chrome और Safari के लिए चरण-दर-चरण सहायता दिखाता है।
ब्राउज़र सटीक अनुमति और अनुमानित अनुमति के बीच अंतर नहीं कर सकता है, इसलिए वेब परिणाम कभी भी `LOCATION_APPROXIMATE_ONLY` नहीं दिखाते हैं, और यह कभी भी मॉक प्रोवाइडर, एम्यूलेटर या अटेस्टेशन की रिपोर्ट नहीं करता है।
कंप्यूटर सटीक स्थिति साझा नहीं कर सकता है, इसलिए फ़्लो एक QR कोड प्रदान करता है जो व्यक्ति के फ़ोन पर समान सत्यापन जारी रखता है (`geolocation_allow_qr_handoff`, डिफ़ॉल्ट रूप से चालू), और फ़ोन पर सत्यापन पूरा होने पर कंप्यूटर अपने आप आगे बढ़ जाता है।
जब आप फ़्लो को iframe में एम्बेड करते हैं, तो `allow` विशेषता में `geolocation` शामिल करें, [इन-कॉन्टेक्स्ट iframe](https://docs.didit.me/hi/integration/web-sdks/incontext-iframe.md) देखें।
जियोलोकेशन अनुमति नीति को ब्लॉक करने वाले पेज को साइट का निर्णय माना जाता है, न कि व्यक्ति की अस्वीकृति।

### नेटिव SDK

iOS और Android SDK ऑपरेटिंग सिस्टम से अनुरोध करते हैं और डिवाइस अटेस्टेशन तथा मॉक-लोकेशन फ़्लैग जोड़ सकते हैं।
iOS पर `Info.plist` में `NSLocationWhenInUseUsageDescription` जोड़ें, और Android पर SDK `ACCESS_FINE_LOCATION` और `ACCESS_COARSE_LOCATION` घोषित करता है और केवल तभी रनटाइम पर पूछता है जब किसी वर्कफ़्लो में यह चरण होता है।
[नेटिव SDK](https://docs.didit.me/hi/integration/native-sdks/overview.md) देखें।
iOS या Android पर अनुमानित अनुमति `LOCATION_APPROXIMATE_ONLY` उत्पन्न करती है जब तक `geolocation_accuracy_mode` को `approximate_allowed` पर सेट न किया गया हो।
जिसका ऐप या SDK बिल्ड इस चरण से पहले का है, उसे सत्र को अटकाए रखने के बजाय `unsupported_client` के साथ बंद कर दिया जाता है।

## निर्णय क्या लौटाता है

[सत्र निर्णय](https://docs.didit.me/hi/sessions-api/retrieve-session.md) और `status.updated` webhook में दो सूचियाँ होती हैं:

* `geolocation_checks[]`: प्रति Location चरण एक आइटम, जिसमें उस चरण का स्वीकृत प्रयास उसके `warnings` के साथ होता है।
* `geolocation_attempts[]`: प्रत्येक Location चरण का हर प्रयास, सबसे पुराना पहले।

प्रत्येक फ़ील्ड के लिए [स्थान सत्यापन रिपोर्ट](https://docs.didit.me/hi/core-technology/location-verification/report-location-verification.md) देखें।
निर्देशांक, सटीकता, शहर और देश अंतिम उपयोगकर्ता का व्यक्तिगत डेटा हैं, इसलिए वर्कफ़्लो के रिस्पॉन्स एट्रिब्यूट्स यह प्रतिबंधित कर सकते हैं कि आपका निर्णय कौन से `geolocation_checks` फ़ील्ड लौटाता है।

## मूल्य निर्धारण

स्थान सत्यापन की लागत **\$0.05 प्रति जाँच** है, और यह निःशुल्क स्तर का हिस्सा नहीं है।
Didit सत्र में प्रति Location चरण एक बार शुल्क लेता है, चाहे उसका परिणाम कुछ भी हो, क्योंकि जाँच चली और उसने एक उत्तर लौटाया।
उसी चरण के भीतर पुनः प्रयास निःशुल्क हैं।
एक पुनः सबमिशन जो चरण को फिर से पूरा करता है, उसके लिए दोबारा शुल्क लिया जाता है।

## सैंडबॉक्स

सैंडबॉक्स सत्र उसी होस्टेड फ़्लो में वही चरण चलाते हैं, और डिवाइस या ब्राउज़र अभी भी एक वास्तविक स्थान की रिपोर्ट करता है।
सैंडबॉक्स सत्र कभी भी IP लुकअप सेवा तक नहीं पहुँचते हैं, इसलिए IP तुलना केवल उसी का उपयोग करती है जो सत्र में पहले से मौजूद है।
उपयोग 0 की कीमत पर रिकॉर्ड किया जाता है, इसलिए सैंडबॉक्स सत्र के लिए कभी कोई शुल्क नहीं लिया जाता है।
इस चरण के लिए कोई विशेष इनपुट नहीं हैं।

## संबंधित

* [स्थान सत्यापन रिपोर्ट](https://docs.didit.me/hi/core-technology/location-verification/report-location-verification.md) - `geolocation_checks[]` और `geolocation_attempts[]` का प्रत्येक फ़ील्ड।
* [स्थान सत्यापन चेतावनियाँ](https://docs.didit.me/hi/core-technology/location-verification/warnings-location-verification.md) - प्रत्येक `LOCATION_*` कोड और उसकी कार्रवाई।
* [वर्कफ़्लो सुविधा कॉन्फ़िगरेशन](https://docs.didit.me/hi/management-api/workflows/feature-configs.md#स्थान-सत्यापन) - प्रत्येक `geolocation_*` कुंजी।
* [डिवाइस और IP विश्लेषण](https://docs.didit.me/hi/core-technology/ip-analysis/overview.md) - सत्र के लिए IP जियोलोकेशन और VPN जाँच।


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