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

# लाइवनेस डिटेक्शन चेतावनियाँ और एरर कोड

> Didit के लाइवनेस डिटेक्शन मॉड्यूल की सभी चेतावनियाँ, कारण और समाधान — फ़ेस अटैक, लो-स्कोर, ब्लॉकलिस्ट मैच व डुप्लिकेट चेहरे।

## विवरण

लाइवनेस रिपोर्ट पर चेतावनियाँ लाइवनेस जांच चलाते समय Didit द्वारा देखी गई प्रत्येक स्थिति को फ़्लैग करती हैं। वे `liveness_checks[]` के प्रत्येक आइटम पर `warnings[]` ऐरे में आती हैं (देखें [लाइवनेस रिपोर्ट](https://docs.didit.me/hi/core-technology/liveness/report-liveness.md)), जिसमें `feature` `"LIVENESS"` पर सेट होता है। प्रत्येक प्रविष्टि साझा [चेतावनी ऑब्जेक्ट](https://docs.didit.me/hi/reference/data-models.md#चेतावनी-ऑब्जेक्ट) संरचना का अनुसरण करती है: `feature`, `risk`, `additional_data`, `log_type`, `short_description`, `long_description`, `node_id`।

प्रत्येक चेतावनी के तीन स्तर होते हैं:

1. **`risk` कोड** — एक स्थिर पहचानकर्ता जिसे आप अपने कोड में मैच कर सकते हैं (नीचे सूचीबद्ध कोड)।
2. **`log_type`** — `information`, `warning`, या `error` में से एक। ऑटो-डिक्लाइन जोखिम हमेशा `error` ले जाते हैं। कॉन्फ़िगर करने योग्य जोखिमों के लिए यह कॉन्फ़िगर की गई कार्रवाई से प्राप्त होता है: **कोई कार्रवाई नहीं** → `information`, **समीक्षा** → `warning`, **अस्वीकार करें** → `error`। थ्रेशोल्ड-आधारित जोखिमों (`LOW_LIVENESS_SCORE`, `LOW_FACE_QUALITY`) के लिए यह तब `error` होता है जब मान अस्वीकार थ्रेशोल्ड को पार करता है और तब `warning` होता है जब यह केवल समीक्षा थ्रेशोल्ड को पार करता है।
3. **निर्णय पर प्रभाव** — यही रूटिंग लाइवनेस रिपोर्ट के `status` को निर्धारित करती है: समीक्षा (Review) कार्रवाई इसे `In Review` में ले जाती है, अस्वीकार करें (Decline) कार्रवाई (या कोई भी ऑटो-डिक्लाइन जोखिम) इसे `Declined` में ले जाती है, और कोई कार्रवाई नहीं (No action) इसे अप्रभावित छोड़ देती है।

कुछ जोखिम केवल तभी जारी किए जाते हैं जब लाइवनेस विधि `PASSIVE` हो (मल्टीपल-फ़ेस, गुणवत्ता और चमक जांच)। नीचे दी गई तालिकाएँ लाइवनेस जोखिम कोड और उनकी गंभीरता का पूरा सेट सूचीबद्ध करती हैं — कोई अन्य लाइवनेस जोखिम कोड मौजूद नहीं हैं।

## ऑटो-डिक्लाइन शर्तें

निम्नलिखित जोखिम हमेशा लाइवनेस रिपोर्ट (और सत्र) को `log_type: "error"` के साथ `Declined` करने के लिए बाध्य करते हैं:

| जोखिम | ट्रिगर |
| - | - |
| `NO_FACE_DETECTED` | लाइवनेस कैप्चर के दौरान कोई चेहरा नहीं मिला, या उपयोगकर्ता ने पुनः प्रयासों की सीमा पूरी कर ली। |
| `LIVENESS_FACE_ATTACK` | मॉडल ने प्रेज़ेंटेशन अटैक (मास्क, स्क्रीन रीप्ले, डीपफ़ेक-क्लास स्पूफिंग) का पता लगाया। |
| `FACE_IN_BLOCKLIST` | चेहरे का मिलान आपके एप्लिकेशन की फ़ेस ब्लॉकलिस्ट की किसी प्रविष्टि से हुआ। |
| `AGE_BELOW_MINIMUM` | अनुमानित आयु कॉन्फ़िगर किए गए न्यूनतम से कम है। केवल अनुकूली आयु सत्यापन वर्कफ़्लो और `AGE_ESTIMATION` नोड्स पर जारी किया जाता है। |
| `AGE_NOT_DETECTED` | आयु का अनुमान नहीं लगाया जा सका। केवल पहचान सत्यापन फ़ॉलबैक अक्षम होने वाले आयु-अनुमान फ़्लो पर जारी किया जाता है। |

जब `NO_FACE_DETECTED` ट्रिगर होता है, तो `LOW_LIVENESS_SCORE` को दबा दिया जाता है (स्कोर करने के लिए कोई चेहरा नहीं होता है)।

## कॉन्फ़िगर करने योग्य सत्यापन सेटिंग्स

Didit कंसोल में, लाइवनेस जोखिमों को निम्नलिखित वर्कफ़्लो सेटिंग्स के अंतर्गत समूहीकृत किया गया है:

| समूह | जोखिम | कॉन्फ़िगरेशन |
| - | - | - |
| **लाइवनेस स्कोर थ्रेशोल्ड** | `LOW_LIVENESS_SCORE` | `score` पर समीक्षा थ्रेशोल्ड + अस्वीकार थ्रेशोल्ड। समीक्षा थ्रेशोल्ड पर या उससे नीचे → `In Review`; अस्वीकार थ्रेशोल्ड पर या उससे नीचे → `Declined`। |
| **डुप्लिकेट चेहरे की कार्रवाई** | `DUPLICATED_FACE`, `POSSIBLE_DUPLICATED_FACE` | एक साझा सेटिंग: कोई कार्रवाई नहीं (डिफ़ॉल्ट) / समीक्षा / अस्वीकार करें। जब मेल खाने वाला चेहरा आपकी फ़ेस अनुमत सूची में हो, तो इसे पूरी तरह छोड़ दिया जाता है। |
| **डुप्लिकेट चेहरे की पहचान का बेमेल** | `DUPLICATED_FACE_NAME_MISMATCH` | अलग सेटिंग (`face_liveness_duplicated_face_name_mismatch_action`): कोई कार्रवाई नहीं / समीक्षा (डिफ़ॉल्ट) / अस्वीकार करें। केवल तभी मूल्यांकित किया जाता है जब `DUPLICATED_FACE` भी ट्रिगर होता है — नीचे देखें। |
| **लाइवनेस अटैक के साथ चेहरा मिलान** | `FACE_MATCHES_LIVENESS_ATTACK` | अलग सेटिंग (`face_liveness_attack_face_match_action`): कोई कार्रवाई नहीं (डिफ़ॉल्ट) / समीक्षा। यहां सेट किया गया अस्वीकार करें (Decline) स्वीकार किया जाता है लेकिन समीक्षा (Review) के रूप में लागू होता है। आयु अनुमान नोड पर भी उपलब्ध है। |
| **संभावित ब्लॉकलिस्ट किया गया चेहरा** | `POSSIBLE_FACE_IN_BLOCKLIST` | वर्कफ़्लो में कॉन्फ़िगर करने योग्य नहीं है — हमेशा समीक्षा (`log_type: "warning"`) पर रूट किया जाता है। |
| **एकाधिक चेहरों की कार्रवाई** *(केवल निष्क्रिय विधि पर)* | `MULTIPLE_FACES_DETECTED` | कोई कार्रवाई नहीं (डिफ़ॉल्ट) / समीक्षा / अस्वीकार करें। |
| **चेहरे की गुणवत्ता के थ्रेशोल्ड** *(केवल निष्क्रिय विधि पर)* | `LOW_FACE_QUALITY` | समीक्षा थ्रेशोल्ड (डिफ़ॉल्ट 15) + अस्वीकार थ्रेशोल्ड (डिफ़ॉल्ट 0, यानी अस्वीकार अक्षम)। |
| **चेहरे की चमक** *(केवल निष्क्रिय विधि पर)* | `LOW_FACE_LUMINANCE`, `HIGH_FACE_LUMINANCE` | न्यूनतम / अधिकतम थ्रेशोल्ड (सामान्यीकृत 0–100 पैमाने पर डिफ़ॉल्ट 20 / 80) + प्रति-दिशा कार्रवाई (डिफ़ॉल्ट समीक्षा)। |
| **आयु थ्रेशोल्ड** *(अनुकूली वर्कफ़्लो / `AGE_ESTIMATION` नोड)* | `AGE_BELOW_MINIMUM`, `AGE_NOT_DETECTED` | न्यूनतम और सीमावर्ती आयु थ्रेशोल्ड; दोनों जोखिम लाइवनेस चरण को स्वतः अस्वीकार कर देते हैं। पहचान सत्यापन फ़ॉलबैक सक्षम होने पर, वर्कफ़्लो सत्र को समाप्त करने के बजाय उपयोगकर्ता को दस्तावेज़ जांच के लिए रूट करता है। |

## उत्पन्न चेतावनियाँ

### कोर लाइवनेस

| जोखिम | कारण | गंभीरता | क्या स्थिति प्रभावित होती है? | समाधान |
| - | - | - | - | - |
| `NO_FACE_DETECTED` | कैप्चर के दौरान कोई चेहरा नहीं मिला, या उपयोगकर्ता ने पुनः प्रयास सीमा समाप्त कर दी (`MAX_ATTEMPTS_REACHED`)। | `error` | **स्वतः-अस्वीकार** | बेहतर रोशनी में पुनः कैप्चर करें; सुनिश्चित करें कि चेहरा केंद्र में हो। |
| `LIVENESS_FACE_ATTACK` | मॉडल ने प्रेज़ेंटेशन अटैक का पता लगाया। | `error` | **स्वतः-अस्वीकार** | इसे धोखाधड़ी समझें। सत्र स्वतः अस्वीकृत हो जाता है। |
| `LOW_LIVENESS_SCORE` | `score` वर्कफ़्लो के समीक्षा थ्रेशोल्ड पर या उससे नीचे है। जब `NO_FACE_DETECTED` भी मौजूद होता है, तो इसे दबा दिया जाता है। | `warning`; यदि स्कोर अस्वीकार थ्रेशोल्ड पर या उससे नीचे है, तो यह `error` में बदल जाता है | कॉन्फ़िगर करने योग्य (समीक्षा / अस्वीकार थ्रेशोल्ड) | पुनः कैप्चर करें; यदि आप फ़ॉल्स पॉज़िटिव देखते हैं, तो थ्रेशोल्ड ट्यून करें। |

### कैप्चर चैनल अखंडता

कैप्चर के समय क्लाइंट द्वारा रिपोर्ट किए गए इंजेक्शन अटैक संकेत। प्रेज़ेंटेशन अटैक (असली कैमरे के सामने रखी गई कोई कृत्रिम वस्तु) के विपरीत, ये कैमरा फ़ीड को ही बदले जाने या इंटरसेप्ट किए जाने को दर्शाते हैं।

प्रत्येक वर्कफ़्लो के लिए कॉन्फ़िगर करने योग्य है और डिफ़ॉल्ट रूप से **कोई कार्रवाई नहीं** पर सेट होता है, इसलिए जब तक आप ऑप्ट इन नहीं करते, इस सुविधा को सक्षम करने से कोई निर्णय नहीं बदलता है।

| जोखिम | कारण | कॉन्फ़िग कुंजी | डिफ़ॉल्ट |
| - | - | - | - |
| `VIRTUAL_CAMERA_DETECTED` | कैप्चर डिवाइस की पहचान भौतिक कैमरे के बजाय सॉफ़्टवेयर वर्चुअल कैमरे (OBS, ManyCam, Snap Camera, DroidCam और इसी तरह) के रूप में की गई थी। | `virtual_camera_action` | `NO_ACTION` |
| `EXTERNAL_CAPTURE_DEVICE_DETECTED` | कैप्चर डिवाइस बिल्ट-इन कैमरे के बजाय बाहरी कैमरा या कैप्चर कार्ड था। | `external_capture_device_action` | `NO_ACTION` |
| `FRAME_INJECTION_SUSPECTED` | कैप्चर किए गए फ़्रेम वास्तविक लाइव कैप्चर के बजाय सॉफ़्टवेयर कंपोज़िटिंग या कैमरा पाइपलाइन में इंजेक्शन के संकेतक दिखाते हैं, **या** कैप्चर एमुलेटेड या वर्चुअलाइज़्ड हार्डवेयर (एक Android एमुलेटर, या डेस्कटॉप वर्चुअल मशीन) पर किया गया था, जहाँ कोई भौतिक कैमरा सेंसर मौजूद नहीं होता है और प्रत्येक फ़्रेम होस्ट द्वारा प्रदान किया जाता है। | `frame_injection_action` | `NO_ACTION` |
| `INJECTION_ATTACK_DETECTED` | कैप्चर डिवाइस के अपने कैमरे द्वारा कैप्चर किए जाने के बजाय इंजेक्ट किया गया था: एक सॉफ़्टवेयर वर्चुअल कैमरा, पेज या ब्राउज़र ऑटोमेशन द्वारा जनरेट किया गया कैमरा फ़ीड, एक हुक्ड कैमरा, या ऐप से जुड़ा इंस्ट्रूमेंटेशन टूल। `additional_data.reasons` केवल उन कारणों को सूचीबद्ध करता है जो इसे साबित करते हैं। वास्तविक व्यक्ति द्वारा उत्पन्न किए जा सकने वाले संकेत इसे कभी ट्रिगर नहीं करते हैं। लाइवनेस और चेहरा मिलान के लिए यह `frame_injection_action` का पालन करता है, इसलिए सेल्फ़ी निर्णय नहीं बदलते हैं। | `frame_injection_action` | `NO_ACTION` |
| `SCREEN_CAPTURE_DURING_CAPTURE` | बायोमेट्रिक कैप्चर के दौरान डिवाइस पर स्क्रीन रिकॉर्डिंग या स्क्रीन शेयरिंग सक्रिय थी। | `screen_capture_action` | `NO_ACTION` |

> [!NOTE]
>
> ब्राउज़र किसी भी वेंडर को OS-स्तरीय कैमरा-स्रोत अटेस्टेशन प्रदान नहीं करते हैं, इसलिए वेब पर ये संकेत प्रमाण के बजाय पुष्टि करने वाले साक्ष्य होते हैं। वेब पर, `null` निर्णय का अर्थ है **निर्धारित नहीं** (कैमरा अनुमति दिए जाने तक डिवाइस लेबल अनुपलब्ध होते हैं) और यह कभी भी जोखिम ट्रिगर नहीं करता है।

वर्चुअल कैमरे की पहचान उसके डिवाइस नाम से की जाती है, इसलिए ऑपरेटिंग सिस्टम सामान्य नाम के तहत जिस कैमरे को प्रस्तुत करता है, उसे इस तरह से नहीं पहचाना जाता है। Android एमुलेटर के अंदर रीमैप किए गए कैमरे को किसी भी बिल्ट-इन कैमरे की तरह लेबल किया जाता है, यही कारण है कि एमुलेटेड-हार्डवेयर केस को इसके बजाय `FRAME_INJECTION_SUSPECTED` के माध्यम से रिपोर्ट किया जाता है: इसका पता कैमरे के नाम के बजाय डिवाइस एनवायरनमेंट - रेंडरिंग स्टैक और यूज़र एजेंट में रिपोर्ट किए गए डिवाइस मॉडल - से लगाया जाता है। डिवाइस एनवायरनमेंट से मिलने वाले निष्कर्षों में `additional_data.reason: "emulated_capture_device"` शामिल होता है, जो उन्हें लाइवनेस मॉडल के अपने फ़्रेम विश्लेषण से अलग करता है।

> [!NOTE]
>
> ब्राउज़र से मशीन का पता लगाना साक्ष्य है, अटेस्टेशन नहीं, और एक दृढ़ हमलावर इसमें हस्तक्षेप कर सकता है। नेटिव मोबाइल SDK अधिक मज़बूत, ऑपरेटिंग-सिस्टम-स्तरीय अखंडता संकेत रिपोर्ट करते हैं जिन्हें कोई ब्राउज़र नहीं देख सकता (एमुलेटर, रूटेड या जेलब्रोकन डिवाइस, रनटाइम हुकिंग, अटैच्ड डिबगर), जिनमें से प्रत्येक की अपनी कॉन्फ़िगर करने योग्य कार्रवाई [डिवाइस और रनटाइम अखंडता](https://docs.didit.me/hi/core-technology/ip-analysis/warnings-ip-analysis.md#डिवाइस-और-रनटाइम-इंटीग्रिटी) के अंतर्गत होती है। ये संकेत हमलावर की लागत को काफी बढ़ा देते हैं, लेकिन अपने आप में वे यह साबित नहीं करते कि कैप्चर किसी वास्तविक डिवाइस से आया था। डिवाइस अखंडता संकेत लाइवनेस विधि से स्वतंत्र होते हैं, इसलिए वे Passive, 3D Flash या 3D Action & Flash में से किसी के साथ भी संयोजित होते हैं।

### रिकॉर्डिंग सैनिटी फोरेंसिक्स

`LIVENESS_VIDEO_ANOMALY` की गणना लाइवनेस मॉडल से स्वतंत्र रूप से, **संग्रहीत लाइवनेस रिकॉर्डिंग पर सर्वर-साइड** की जाती है। यह एकाधिक चक्रों में दोहराए गए एक गतिमान अनुक्रम का पता लगाता है, जो लूप किए गए फ़ीड के अनुरूप होता है।

| जोखिम | कारण | कॉन्फ़िग कुंजी | डिफ़ॉल्ट |
| - | - | - | - |
| `LIVENESS_VIDEO_ANOMALY` | रिकॉर्डिंग में दोहराया गया एक गतिमान अनुक्रम शामिल है। अकेले कैमरा रुकना, दोहराए गए स्थिर फ़्रेम, डार्क लीड-इन और धीमी फ़्रेम डिलीवरी इस संकेत को ट्रिगर नहीं करते हैं। | `face_liveness_video_anomaly_action` | `NO_ACTION` |

अपने लाइवनेस या आयु अनुमान नोड पर कार्रवाई सेट करें: `NO_ACTION` एक सूचनात्मक निष्कर्ष रिकॉर्ड करता है, `REVIEW` जिस सत्यापन पर निर्णय हो चुका हो, उसे समीक्षाधीन में एस्केलेट कर सकता है, और `DECLINE` इसे अस्वीकृत में एस्केलेट कर सकता है। यह जाँच एसिंक्रोनस रूप से चलती है, इसलिए प्रारंभिक परिणाम के बाद एस्केलेशन आ सकता है। अधिक गंभीर मौजूदा निर्णय को डाउनग्रेड नहीं किया जाता है, और मैन्युअल समीक्षा निर्णय सुरक्षित रखे जाते हैं।

संस्करण 2 के निष्कर्षों में `forensics_version: 2`, `repeated_sequence` साक्ष्य और `anomaly_reasons` में `repeated_moving_sequence` शामिल हैं। `unique_frame_ratio`, `static_pair_ratio`, `decoded_fps_ratio` और `max_frame_gap_seconds` जैसे डिलीवरी माप केवल डायग्नोस्टिक्स बने रहते हैं; वे अपने दम पर रीप्ले स्थापित नहीं कर सकते। पुराने निष्कर्ष उस समय उपयोग किए गए डिटेक्टर संस्करण का वर्णन करते हैं और उन्हें पिछली तारीख से पुनर्वर्गीकृत नहीं किया जाता है।

> [!NOTE]
>
> यह एक रूढ़िवादी अतिरिक्त संकेत है, सिंथेटिक मीडिया या इंजेक्टेड वीडियो का पूर्ण पता लगाना नहीं। बिना किसी विसंगति वाली रिकॉर्डिंग लाइवनेस का प्रमाण नहीं है। छोटे या अस्पष्ट कैप्चर और बिना किसी उपयोग योग्य रीप्ले साक्ष्य वाले कैप्चर इस जाँच द्वारा अनफ़्लैग्ड रहते हैं। गायब या अपठनीय रिकॉर्डिंग इस जाँच से कोई निष्कर्ष उत्पन्न नहीं करती हैं; अन्य सत्यापन जाँचें अभी भी लागू होती हैं।

### क्रॉस-सत्र चेहरा मिलान

| जोखिम | कारण | अतिरिक्त डेटा | गंभीरता |
| - | - | - | - |
| `FACE_IN_BLOCKLIST` | चेहरा किसी ब्लॉकलिस्ट किए गए चेहरे से मेल खा गया। | `blocklisted_session_id`, `blocklisted_session_number`, `api_service` | `error` — **स्वचालित अस्वीकृति** |
| `POSSIBLE_FACE_IN_BLOCKLIST` | चेहरा कम-विश्वास बैंड पर किसी ब्लॉकलिस्ट किए गए चेहरे से मेल खा गया। | `blocklisted_session_id`, `blocklisted_session_number`, `api_service` | `warning` — वर्कफ़्लो में हमेशा Review पर भेजा जाता है |
| `FACE_IN_ALLOWLIST` | चेहरा किसी अलाउलिस्ट किए गए चेहरे से मेल खा गया। | `allowlisted_session_id`, `allowlisted_session_number`, `api_service` | `information` — डुप्लिकेट-चेहरा कार्रवाई छोड़ दी गई |
| `POSSIBLE_FACE_IN_ALLOWLIST` | चेहरा कम-विश्वास बैंड पर किसी अलाउलिस्ट किए गए चेहरे से मेल खा गया। | `allowlisted_session_id`, `allowlisted_session_number`, `api_service` | `information` — संभावित डुप्लिकेट-चेहरा कार्रवाई छोड़ दी गई |
| `DUPLICATED_FACE` | चेहरा किसी अन्य उपयोगकर्ता के पहले से स्वीकृत चेहरे (अलग `vendor_data` वाला एक `Approved` सत्र, या आपके किसी वेंडर उपयोगकर्ता के विरुद्ध इंपोर्ट किया गया चेहरा) से मेल खा गया। | `duplicated_session_id`, `duplicated_session_number`, `api_service` | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `information` |
| `POSSIBLE_DUPLICATED_FACE` | चेहरा कम-विश्वास बैंड पर किसी अन्य स्वीकृत या इंपोर्ट किए गए चेहरे से मेल खा गया। | `duplicated_session_id`, `duplicated_session_number`, `api_service` | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `information` |
| `DUPLICATED_FACE_NAME_MISMATCH` | `DUPLICATED_FACE` के साथ तब जारी किया जाता है जब मेल खाने वाले सत्र की पहचान इस सत्र के रिज़ॉल्व किए गए नाम (पहचान दस्तावेज़, `expected_details`, या लिंक किए गए वेंडर उपयोगकर्ता) से मेल नहीं खाती, जिसमें पहचान सत्यापन के समान नाम-मिलान स्कोरिंग और थ्रेशोल्ड का उपयोग किया जाता है। किसी भिन्न नाम के तहत दोबारा उपयोग किया गया चेहरा एक सामान्य डुप्लिकेट की तुलना में धोखाधड़ी का अधिक मजबूत संकेत होता है, इसलिए इसमें इसकी अपनी कॉन्फ़िगर करने योग्य कार्रवाई शामिल होती है। | `duplicated_session_id`, `duplicated_session_number`, `api_service`, `name_match_score` | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `warning`। कभी भी `DUPLICATED_FACE` के अपने कॉन्फ़िगर किए गए परिणाम को शिथिल नहीं करता, केवल इसे बढ़ाता है। |
| `DUPLICATED_FACE_DOCUMENT_MISMATCH` | `DUPLICATED_FACE` के साथ तब जारी किया जाता है जब मेल खाने वाले उपयोगकर्ता का पहचान दस्तावेज़ इस सत्र के दस्तावेज़ से भिन्न जन्म तिथि दिखाता है। एक ही व्यक्ति द्वारा भिन्न दस्तावेज़ (उदाहरण के लिए ID कार्ड के बाद पासपोर्ट) या नवीनीकृत दस्तावेज़ प्रस्तुत करने पर फ़्लैग नहीं किया जाता है, और एक ही देश के समान दस्तावेज़ संख्या साझा करने वाले दो सत्रों को कभी फ़्लैग नहीं किया जाता है। | `duplicated_session_id`, `duplicated_session_number`, `api_service`, `mismatch_dimensions` | कॉन्फ़िगर करने योग्य (`face_liveness_duplicated_face_document_mismatch_action`) - डिफ़ॉल्ट रूप से `Review`। कभी भी `DUPLICATED_FACE` के अपने कॉन्फ़िगर किए गए परिणाम को शिथिल नहीं करता, केवल इसे बढ़ाता है। |
| `FACE_MATCHES_LIVENESS_ATTACK` | चेहरा इस एप्लिकेशन के किसी पूर्व सत्र के, किसी अन्य उपयोगकर्ता के चेहरे से मेल खाता है, जिसके स्वयं के लाइवनेस कैप्चर को उच्च विश्वास के साथ अटैक माना गया था। समीक्षा के लिए साक्ष्य, किसी अटैक का प्रमाण नहीं। | `liveness_attack_session_id`, `liveness_attack_session_number`, `similarity_percentage`, `liveness_attack_sessions_count` | कॉन्फ़िगर करने योग्य - डिफ़ॉल्ट रूप से `information` (कोई कार्रवाई नहीं) |

इंपोर्ट किए गए चेहरों या सूची-प्रविष्टि चेहरों (जिनका कोई सत्र नहीं होता है) के मिलान के लिए, `additional_data` में `*_session_id`, `*_session_number`, और `api_service` मान `null` होते हैं।

समान उपयोगकर्ता (समान `vendor_data`, या उपलब्ध होने पर समान वेंडर उपयोगकर्ता) से संबंधित चेहरों को **संपूर्ण** इंडेक्स खोज से बाहर रखा जाता है — डुप्लिकेट डिटेक्शन और ब्लॉकलिस्ट स्क्रीनिंग दोनों। मिलान की प्राथमिकता है: ब्लॉकलिस्ट सटीक → अलाउलिस्ट सटीक → डुप्लिकेट सटीक → ब्लॉकलिस्ट संभावित → अलाउलिस्ट संभावित → डुप्लिकेट संभावित — प्रति रिपोर्ट इन छह परस्पर अनन्य कोडों में से केवल एक ही दिखाई देता है। `DUPLICATED_FACE_NAME_MISMATCH` उस प्राथमिकता समूह का हिस्सा नहीं है: यह पहचान जांच विफल होने पर भी `DUPLICATED_FACE` के **अलावा** जारी होने वाला एक अतिरिक्त कोड है, कभी भी उसके स्थान पर नहीं। `additional_data.name_match_score` में कभी भी तुलना किए जा रहे नाम शामिल नहीं होते हैं — केवल आईडी और एक स्कोर होता है, ताकि कोई भी PII चेतावनी payload में न पहुंचे।

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

* दोनों दस्तावेज़ों में समान जारीकर्ता राज्य है।
* दोनों दस्तावेज़ों के बीच एक पहचानकर्ता बिल्कुल मेल खाता है। `document_number` और `personal_number` को एक-दूसरे के स्थान पर माना जाता है, क्योंकि दस्तावेज़ के प्रकार के आधार पर समान राष्ट्रीय संख्या दोनों में से किसी भी फ़ील्ड में हो सकती है।
* जहाँ दोनों दस्तावेज़ों में जन्म तिथि होती है, वह समान तिथि होती है।

यदि नाम समान लिपि में हैं, यदि पहचानकर्ता या जारीकर्ता राज्य भिन्न है या अनुपलब्ध है, या यदि जन्म तिथियाँ परस्पर विरोधी हैं, तो चेतावनी अभी भी ऊपर बताए अनुसार जारी की जाती है।

### पैसिव लाइवनेस गुणवत्ता (केवल जब `method = "PASSIVE"`)

| जोखिम | कारण | गंभीरता | समाधान |
| - | - | - | - |
| `MULTIPLE_FACES_DETECTED` | कैप्चर के दौरान एक से अधिक चेहरे दिखाई दे रहे थे। स्कोरिंग और मिलान के लिए हमेशा सबसे बड़े चेहरे का उपयोग किया जाता है। | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `information` | अकेले दोबारा कैप्चर करें। |
| `LOW_FACE_QUALITY` | चेहरे की गुणवत्ता समीक्षा थ्रेशोल्ड से नीचे है (डिफ़ॉल्ट 15)। | `warning`; अस्वीकृति थ्रेशोल्ड से नीचे होने पर `error` (डिफ़ॉल्ट 0 — अस्वीकृति अक्षम) | बेहतर फ़ोकस / कम रुकावट / केंद्रित चेहरा। |
| `LOW_FACE_LUMINANCE` | सामान्यीकृत ल्यूमिनेंस न्यूनतम थ्रेशोल्ड से नीचे है (डिफ़ॉल्ट 20)। | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `warning` (कार्रवाई डिफ़ॉल्ट रूप से Review होती है) | बेहतर प्रकाश व्यवस्था। |
| `HIGH_FACE_LUMINANCE` | सामान्यीकृत ल्यूमिनेंस अधिकतम थ्रेशोल्ड से ऊपर है (डिफ़ॉल्ट 80)। | कॉन्फ़िगर करने योग्य — डिफ़ॉल्ट रूप से `warning` (कार्रवाई डिफ़ॉल्ट रूप से Review होती है) | प्रकाश कम करें; बैकलाइट से बचें। |

`LOW_FACE_LUMINANCE` और `HIGH_FACE_LUMINANCE` परस्पर अनन्य हैं — ल्यूमिनेंस या तो न्यूनतम से नीचे होता है या अधिकतम से ऊपर, कभी भी दोनों नहीं।

### आयु अनुमान (अनुकूली वर्कफ़्लो और `AGE_ESTIMATION` नोड)

| जोखिम | कारण | गंभीरता | समाधान |
| - | - | - | - |
| `AGE_BELOW_MINIMUM` | अनुमानित आयु कॉन्फ़िगर किए गए न्यूनतम से कम है (या पहचान सत्यापन फ़ॉलबैक सक्षम होने पर बॉर्डरलाइन थ्रेशोल्ड से कम)। | `error` | कॉन्फ़िगर होने पर वर्कफ़्लो पहचान सत्यापन पर फ़ॉलबैक करता है। |
| `AGE_NOT_DETECTED` | आयु का अनुमान नहीं लगाया जा सका और पहचान सत्यापन फ़ॉलबैक अक्षम है। | `error` | फ़ॉलबैक सक्षम करें या पुनः कैप्चर करें। |

## सटीक विवरण स्ट्रिंग्स

API प्रत्येक जोखिम के लिए ये सटीक `short_description` और `long_description` स्ट्रिंग्स लौटाता है:

| `risk` | `short_description` | `long_description` |
| - | - | - |
| `NO_FACE_DETECTED` | लाइवनेस में कोई चेहरा नहीं मिला | सिस्टम लाइवनेस जांच के दौरान किसी चेहरे की पहचान नहीं कर सका, जो खराब छवि गुणवत्ता, अनुचित स्थिति या तकनीकी समस्याओं के कारण हो सकता है। |
| `LIVENESS_FACE_ATTACK` | लाइवनेस फ़ेस अटैक | सिस्टम ने लाइवनेस जांच को बायपास करने के संभावित प्रयास का पता लगाया। |
| `LOW_LIVENESS_SCORE` | कम लाइवनेस स्कोर | लाइवनेस जांच का परिणाम कम स्कोर रहा, जो गैर-जीवंत चेहरे के निरूपण या खराब गुणवत्ता वाले बायोमेट्रिक डेटा के संभावित उपयोग का संकेत देता है। |
| `LIVENESS_VIDEO_ANOMALY` | लाइवनेस वीडियो स्ट्रीम विसंगति | रिकॉर्ड किए गए लाइवनेस वीडियो में लूप किए गए फ़ीड के अनुरूप दोहराया जाने वाला गति क्रम शामिल है। केवल कैमरा रुकना, दोहराए गए स्थिर फ़्रेम और धीमी फ़्रेम डिलीवरी अकेले इस सिग्नल को ट्रिगर नहीं करते हैं। यह एक स्वतंत्र रिकॉर्डिंग जांच है, न कि कैप्चर के जीवंत होने का संपूर्ण मूल्यांकन। |
| `FACE_IN_BLOCKLIST` | ब्लॉकलिस्ट में चेहरा | सिस्टम ने ब्लॉकलिस्ट में एक चेहरे की पहचान की, जिसका अर्थ है कि चेहरे को सत्यापित करने की अनुमति नहीं है। |
| `POSSIBLE_FACE_IN_BLOCKLIST` | ब्लॉकलिस्ट में संभावित चेहरा | सिस्टम ने ब्लॉकलिस्ट में एक संभावित चेहरे की पहचान की, जिसका अर्थ है कि चेहरे को सत्यापित करने की अनुमति नहीं है। |
| `FACE_IN_ALLOWLIST` | अलाउलिस्ट में चेहरा | चेहरा एप्लिकेशन की फ़ेस अलाउलिस्ट से मेल खाता है, इसलिए इस सिग्नल के लिए डुप्लिकेट-चेहरे की कार्रवाइयों को छोड़ दिया गया था। |
| `POSSIBLE_FACE_IN_ALLOWLIST` | अलाउलिस्ट में संभावित चेहरा | चेहरा संभवतः एप्लिकेशन की फ़ेस अलाउलिस्ट से मेल खाता है, इसलिए इस सिग्नल के लिए संभावित डुप्लिकेट-चेहरे की कार्रवाइयों को छोड़ दिया गया था। |
| `DUPLICATED_FACE` | अन्य स्वीकृत सत्र से डुप्लिकेट चेहरा | सिस्टम ने किसी अन्य स्वीकृत सत्र से एक डुप्लिकेट चेहरे की पहचान की, जिसके लिए आगे की जांच की आवश्यकता है। |
| `POSSIBLE_DUPLICATED_FACE` | अन्य स्वीकृत सत्र से संभावित डुप्लिकेट चेहरा | सिस्टम ने किसी अन्य स्वीकृत सत्र से एक संभावित डुप्लिकेट चेहरे की पहचान की, जिसके लिए आगे की जांच की आवश्यकता है। |
| `DUPLICATED_FACE_NAME_MISMATCH` | एक अलग नाम के तहत डुप्लिकेट चेहरा | वही चेहरा किसी अन्य सत्र में पहले ही स्वीकृत हो चुका था, लेकिन एक अलग नाम के तहत। डुप्लिकेट के पीछे की पहचान इस सत्र में घोषित पहचान से मेल नहीं खाती, जो पहचान धोखाधड़ी का एक मजबूत संकेतक है। |
| `FACE_MATCHES_LIVENESS_ATTACK` | चेहरा लाइवनेस अटैक से मेल खाता है | इस लाइवनेस कैप्चर का चेहरा इस एप्लिकेशन के पिछले सत्र के चेहरे से मेल खाता है, जिसके स्वयं के कैप्चर को लाइवनेस इंजन ने किसी अन्य उपयोगकर्ता के सत्र में उच्च विश्वास के साथ हमला माना था। एक वास्तविक उपयोगकर्ता को गलती से अस्वीकार किया जा सकता है, इसलिए यह समीक्षा के लिए एक संकेत है, किसी हमले का प्रमाण नहीं। |
| `MULTIPLE_FACES_DETECTED` | कई चेहरे पाए गए | लाइवनेस छवि में कई चेहरों का पता चला। सिस्टम लाइवनेस सत्यापन और चेहरे की तुलना के लिए सबसे बड़े चेहरे का उपयोग करता है, लेकिन कई चेहरों की उपस्थिति के लिए अतिरिक्त समीक्षा की आवश्यकता हो सकती है। |
| `LOW_FACE_QUALITY` | चेहरे की कम गुणवत्ता | चेहरे की छवि गुणवत्ता स्वीकार्य थ्रेशोल्ड से कम है, जो लाइवनेस डिटेक्शन की विश्वसनीयता को प्रभावित कर सकती है। यह कैमरा रिज़ॉल्यूशन, फ़ोकस या कम्प्रेशन आर्टिफ़ैक्ट्स के कारण हो सकता है। |
| `LOW_FACE_LUMINANCE` | चेहरे की कम चमक | चेहरे की छवि बहुत गहरी है, जो लाइवनेस डिटेक्शन की सटीकता को प्रभावित कर सकती है। बेहतर प्रकाश स्थितियों की अनुशंसा की जाती है। |
| `HIGH_FACE_LUMINANCE` | चेहरे की अत्यधिक चमक | चेहरे की छवि बहुत उज्ज्वल या ओवरएक्सपोज़्ड है, जो लाइवनेस डिटेक्शन की सटीकता को प्रभावित कर सकती है। कम प्रकाश या सीधे प्रकाश से बचने की अनुशंसा की जाती है। |
| `AGE_BELOW_MINIMUM` | आयु न्यूनतम से कम | चेहरे की आयु एप्लिकेशन के लिए न्यूनतम आयु थ्रेशोल्ड से कम है। |
| `AGE_NOT_DETECTED` | आयु का पता नहीं चला | सिस्टम चेहरे की आयु की पहचान नहीं कर सका, जो दस्तावेज़ सत्यापन के लिए आवश्यक है। |

## स्टैंडअलोन पैसिव लाइवनेस API

स्टैंडअलोन [Liveness API](https://docs.didit.me/hi/standalone-apis/passive-liveness.md) व्यवहार में कुछ अंतरों के साथ उन्हीं जोखिम कोडों का पुनः उपयोग करता है:

* `NO_FACE_DETECTED` और `LOW_LIVENESS_SCORE` परस्पर अनन्य हैं — स्कोर की जांच केवल तभी चलती है जब कोई चेहरा पाया गया हो। `LOW_LIVENESS_SCORE` अनुरोध के `face_liveness_score_decline_threshold` (डिफ़ॉल्ट 30) के विरुद्ध सक्रिय होता है और हमेशा `log_type: "error"` रखता है।
* `POSSIBLE_FACE_IN_BLOCKLIST` को समीक्षा के बजाय अस्वीकृति (`log_type: "error"`) माना जाता है।
* `MULTIPLE_FACES_DETECTED` में `log_type: "warning"` होता है, जबकि डुप्लिकेट-चेहरे के जोखिम सूचनात्मक रहते हैं। केवल `error`-स्तरीय चेतावनियाँ स्टैंडअलोन रिस्पॉन्स की `status` को `Declined` में बदलती हैं।
* स्टैंडअलोन चेतावनी प्रविष्टियों में `feature` शामिल होता है लेकिन कोई `node_id` नहीं होता।

## उदाहरण

### डिटेक्ट किए गए अटैक पर ऑटो-डिक्लाइन

```json theme={null}
"warnings": [
  {
    "feature": "LIVENESS",
    "risk": "LIVENESS_FACE_ATTACK",
    "additional_data": null,
    "log_type": "error",
    "short_description": "Liveness Face Attack",
    "long_description": "The system detected a potential attempt to bypass the liveness check.",
    "node_id": "liveness_primary"
  }
]
```

### पैसिव कैप्चर पर कॉन्फ़िगर करने योग्य चेतावनियाँ

```json theme={null}
"warnings": [
  {
    "feature": "LIVENESS",
    "risk": "LOW_FACE_QUALITY",
    "additional_data": null,
    "log_type": "warning",
    "short_description": "Low face quality",
    "long_description": "The facial image quality is below the acceptable threshold, which may affect the reliability of liveness detection. This could be due to camera resolution, focus, or compression artifacts.",
    "node_id": "liveness_primary"
  },
  {
    "feature": "LIVENESS",
    "risk": "LOW_FACE_LUMINANCE",
    "additional_data": null,
    "log_type": "warning",
    "short_description": "Low face luminance",
    "long_description": "The facial image is too dark, which may affect the accuracy of liveness detection. Better lighting conditions are recommended.",
    "node_id": "liveness_primary"
  },
  {
    "feature": "LIVENESS",
    "risk": "MULTIPLE_FACES_DETECTED",
    "additional_data": null,
    "log_type": "information",
    "short_description": "Multiple faces detected",
    "long_description": "Multiple faces were detected in the liveness image. The system uses the largest face for liveness verification and face comparison, but the presence of multiple faces may require additional review.",
    "node_id": "liveness_primary"
  }
]
```

### payload के साथ डुप्लिकेट चेहरा

```json theme={null}
"warnings": [
  {
    "feature": "LIVENESS",
    "risk": "DUPLICATED_FACE",
    "additional_data": {
      "duplicated_session_id": "8d2f1c4e-6b7a-4c8d-9e0f-1a2b3c4d5e6f",
      "duplicated_session_number": 123,
      "api_service": null
    },
    "log_type": "warning",
    "short_description": "Duplicated face from other approved session",
    "long_description": "The system identified a duplicated face from another approved session, requiring further investigation.",
    "node_id": "liveness_primary"
  }
]
```

यहाँ डुप्लिकेट-चेहरा कार्रवाई Review पर सेट है, इसलिए चेतावनी में `log_type: "warning"` शामिल है और लाइवनेस रिपोर्ट की स्थिति `In Review` है। डिफ़ॉल्ट (No action) के साथ इसमें इसके बजाय `log_type: "information"` शामिल होगा। `api_service` `null` है क्योंकि मिलान किया गया चेहरा एक वर्कफ़्लो सत्र से आया था, न कि स्टैंडअलोन API कॉल से।

### अलग नाम के तहत डुप्लिकेट चेहरा

```json theme={null}
"warnings": [
  {
    "feature": "LIVENESS",
    "risk": "DUPLICATED_FACE",
    "additional_data": {
      "duplicated_session_id": "8d2f1c4e-6b7a-4c8d-9e0f-1a2b3c4d5e6f",
      "duplicated_session_number": 123,
      "api_service": null
    },
    "log_type": "information",
    "short_description": "Duplicated face from other approved session",
    "long_description": "The system identified a duplicated face from another approved session, requiring further investigation.",
    "node_id": "liveness_primary"
  },
  {
    "feature": "LIVENESS",
    "risk": "DUPLICATED_FACE_NAME_MISMATCH",
    "additional_data": {
      "duplicated_session_id": "8d2f1c4e-6b7a-4c8d-9e0f-1a2b3c4d5e6f",
      "duplicated_session_number": 123,
      "api_service": null,
      "name_match_score": 42.5
    },
    "log_type": "warning",
    "short_description": "Duplicated face under a different name",
    "long_description": "The same face was already approved on another session, but under a different name. The identity behind the duplicate does not match the identity declared on this session, which is a strong indicator of identity fraud.",
    "node_id": "liveness_primary"
  }
]
```

`DUPLICATED_FACE` अपनी स्वयं की कॉन्फ़िगर की गई कार्रवाई पर रहता है (यहाँ, No action — `log_type: "information"`), जबकि `DUPLICATED_FACE_NAME_MISMATCH` अपनी स्वयं की कार्रवाई रखता है, जो डिफ़ॉल्ट रूप से Review (`log_type: "warning"`) होती है। लाइवनेस रिपोर्ट की स्थिति दोनों कार्रवाइयों में से अधिक गंभीर वाली के अनुसार होती है: यहाँ `In Review`, भले ही अकेले सामान्य डुप्लिकेट-चेहरा सेटिंग ने इसे फ़्लैग न किया होता।

### अपने मापों के साथ रिकॉर्डिंग सैनिटी विसंगति

```json theme={null}
"warnings": [
  {
    "feature": "LIVENESS",
    "risk": "LIVENESS_VIDEO_ANOMALY",
    "additional_data": {
      "forensics_version": 2,
      "duration_seconds": 6.0,
      "repeated_sequence": {
        "period_frames": 6,
        "cycles": 3,
        "matched_pairs": 12
      },
      "anomaly_reasons": ["repeated_moving_sequence"]
    },
    "log_type": "information",
    "short_description": "Liveness video stream anomaly",
    "long_description": "The recorded liveness video contains a repeated moving sequence consistent with a looped feed. Camera stalls, repeated still frames and slow frame delivery alone do not raise this signal. This is an independent recording check, not a complete assessment of whether the capture is live.",
    "node_id": "liveness_primary"
  }
]
```

यह उदाहरण किसी मूविंग सीक्वेंस की तीन प्रतियों वाली रिकॉर्डिंग से रीप्ले साक्ष्य दिखाता है। `log_type` `information` है क्योंकि कॉन्फ़िगर की गई कार्रवाई `NO_ACTION` है। संक्षिप्तता के लिए इस उदाहरण से छोड़े गए फ़्रेम-डिलीवरी डायग्नोस्टिक्स, इस डिटेक्शन को ट्रिगर नहीं करते हैं।

## चेतावनी प्रकार

प्रत्येक जोखिम को आपके एप्लिकेशन के कॉन्फ़िगरेशन के आधार पर एक गंभीरता सौंपी जाती है। तीन गंभीरता स्तर हैं:

## संबंधित

* [लाइवनेस रिपोर्ट](https://docs.didit.me/hi/core-technology/liveness/report-liveness.md) — संपूर्ण रिपोर्ट स्कीमा और स्थितियाँ।
* [चेहरा मिलान चेतावनियाँ](https://docs.didit.me/hi/core-technology/face-match/warnings-face-match.md) — संबंधित 1:1 चेहरा मिलान चेतावनियाँ।
* [Webhooks](https://docs.didit.me/hi/integration/webhooks.md) — लाइवनेस चरण पूरा होते ही `session.status.updated` चेतावनियों को शामिल करता है।
* [डेटा मॉडल — लाइवनेस चेक](https://docs.didit.me/hi/reference/data-models.md#लाइवनेस-जाँच) — प्रत्येक फ़ील्ड के साथ कैनोनिकल स्कीमा।
* [डेटा मॉडल — चेतावनी ऑब्जेक्ट](https://docs.didit.me/hi/reference/data-models.md#चेतावनी-ऑब्जेक्ट) — `warnings[]` में प्रत्येक प्रविष्टि का स्वरूप।


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