EU डिजिटल आइडेंटिटी वॉलेट स्वीकार करने के लिए तैयार हो जाइए।
प्रत्येक EU सदस्य राज्य को 24 दिसंबर 2026 तक EU डिजिटल आइडेंटिटी (EUDI) वॉलेट प्रदान करना होगा, और विनियमित व्यवसायों को इसे 24 दिसंबर 2027 तक स्वीकार करना होगा। Didit आज पाँच राष्ट्रीय इलेक्ट्रॉनिक ID (eID) चलाता है, और EUDI वॉलेट की स्वीकृति उसी वर्कफ़्लो में जल्द ही आ रही है।
प्रति व्यक्ति एक वॉलेट। केवल वही डेटा जो आप मांगते हैं।
EUDI वॉलेट एक मुफ़्त ऐप है जिसे प्रत्येक EU सदस्य राज्य को विनियमन (EU) 2024/1183, जिसे eIDAS 2 के नाम से जाना जाता है, के तहत उपलब्ध कराना होगा। इसमें व्यक्ति पहचान डेटा (PID) होता है, यानी नाम, जन्म की तारीख और स्थान तथा राष्ट्रीयता, साथ ही ड्राइविंग लाइसेंस या डिप्लोमा जैसी विशेषताओं के इलेक्ट्रॉनिक प्रमाणन (अटेस्टेशन)। इसका उपयोग स्वैच्छिक है।
जब कोई व्यवसाय डेटा मांगता है, तो व्यक्ति देखता है कि कौन मांग रहा है और केवल अनुरोधित विशेषताओं को साझा करता है। इसे चयनात्मक प्रकटीकरण कहा जाता है: एक साइट यह जान सकती है कि कोई व्यक्ति 18 वर्ष से अधिक का है बिना जन्मतिथि देखे। वॉलेट उच्च आश्वासन स्तर पर काम करता है, जो तीन eIDAS स्तरों में सबसे मजबूत है, और व्यवसाय डेटा पर भरोसा करने से पहले जारीकर्ता के हस्ताक्षर की जांच करता है।
अंतिम समीक्षा: 5 अक्टूबर 2026। कानूनी सलाह नहीं।
मुख्य तिथियां
2026 के अंत तक वॉलेट। 24 दिसंबर 2027 तक स्वीकृति।
ये विनियमन (EU) 2024/1183 और इसके कार्यान्वयन अधिनियमों में वे तिथियां हैं जिनके आसपास एक व्यवसाय को योजना बनानी चाहिए।
30 अप्रैल 2024
eIDAS 2 प्रकाशित
विनियमन (EU) 2024/1183, जो eIDAS विनियमन (EU) संख्या 910/2014 में संशोधन करता है, EU के आधिकारिक जर्नल में प्रकाशित होता है। यह प्रकाशन के बीसवें दिन लागू होता है।
24 दिसंबर 2024
पहले वॉलेट नियम लागू
वॉलेट के लिए पहले पांच कार्यान्वयन नियम लागू होते हैं: व्यक्ति पहचान डेटा, मुख्य कार्य, सूचनाएं, प्रमाणन, और प्रोटोकॉल और इंटरफेस। वे नीचे 24-महीने और 36-महीने की घड़ियों को शुरू करते हैं।
15 जुलाई 2026
वॉलेट नियम अपडेट किए गए
आयोग कार्यान्वयन विनियमन (EU) 2026/1731 को अपनाता है। यह दो क्रेडेंशियल प्रारूप, SD-JWT VC और ISO/IEC mdoc निर्धारित करता है, और 2028 के लिए अनिवार्य पोर्ट्रेट को निर्धारित करता है।
23 जुलाई 2026
ARF v3.0.0
आर्किटेक्चर एंड रेफरेंस फ्रेमवर्क (ARF), तकनीकी ब्लूप्रिंट जिस पर वॉलेट और रिलाइंग पार्टीज़ बनते हैं, संस्करण 3.0.0 तक पहुंचता है।
24 दिसंबर 2026
प्रत्येक सदस्य राज्य में वॉलेट
प्रत्येक सदस्य राज्य को कम से कम एक EUDI वॉलेट प्रदान करना होगा। रिलाइंग पार्टीज़ को पंजीकृत करने के नियम, कार्यान्वयन विनियमन (EU) 2025/848, उसी दिन से लागू होते हैं।
24 दिसंबर 2027
निजी व्यवसायों को इसे स्वीकार करना होगा
निजी व्यवसायों को, जिन्हें कानून या अनुबंध द्वारा मजबूत उपयोगकर्ता प्रमाणीकरण का उपयोग करना चाहिए, सूक्ष्म और छोटे उद्यमों के अलावा, उपयोगकर्ता द्वारा इसका उपयोग करने का अनुरोध करने पर वॉलेट को स्वीकार करना होगा (अनुच्छेद 5f(2))। यह समय सीमा पहले कार्यान्वयन अधिनियमों के 24 दिसंबर 2024 को लागू होने के 36 महीने बाद की है, यानी 24 दिसंबर 2027 तक।
11 अगस्त 2028
पोर्ट्रेट और पंजीकरण जांच
पोर्ट्रेट अनिवार्य व्यक्ति पहचान डेटा का हिस्सा बन जाता है, और वॉलेट को प्रत्येक रिलाइंग पार्टी के पंजीकरण प्रमाणपत्र को प्रमाणित और मान्य करना होगा।
किसे इसे स्वीकार करना होगा
किसे वॉलेट स्वीकार करना होगा, और कब।
eIDAS विनियमन का अनुच्छेद 5f, जैसा कि विनियमन (EU) 2024/1183 द्वारा संशोधित किया गया है, स्वीकृति कर्तव्यों को निर्धारित करता है। हर मामले में उपयोगकर्ता वॉलेट का उपयोग करना चुनता है, और आप लोगों की पहचान करने के अपने अन्य तरीकों को बनाए रखते हैं।
कौन
सीधे शब्दों में इसका क्या मतलब है
अनुच्छेद · तारीख
कौन
सार्वजनिक क्षेत्र के निकाय
सीधे शब्दों में इसका क्या मतलब है
यदि कोई सदस्य राज्य किसी सार्वजनिक ऑनलाइन सेवा तक पहुँचने के लिए इलेक्ट्रॉनिक पहचान की आवश्यकता रखता है, तो उस सेवा को EUDI वॉलेट को भी स्वीकार करना होगा।
अनुच्छेद · तारीख
अनुच्छेद 5f(1)
कौन
निजी सेवाएँ जिन्हें मजबूत उपयोगकर्ता प्रमाणीकरण का उपयोग करना चाहिए
सीधे शब्दों में इसका क्या मतलब है
यदि कोई कानून या अनुबंध आपको ऑनलाइन पहचान के लिए मजबूत उपयोगकर्ता प्रमाणीकरण का उपयोग करने के लिए बाध्य करता है, तो आपको EUDI वॉलेट को भी स्वीकार करना होगा। इसका कारण यह आवश्यकता है, न कि आपका क्षेत्र।
अनुच्छेद · तारीख
अनुच्छेद 5f(2) · 24 दिसंबर 2027
कौन
अनुच्छेद में उल्लिखित क्षेत्र
सीधे शब्दों में इसका क्या मतलब है
परिवहन, ऊर्जा, बैंकिंग, वित्तीय सेवाएँ, सामाजिक सुरक्षा, स्वास्थ्य, पेयजल, डाक सेवाएँ, डिजिटल इंफ्रास्ट्रक्चर, शिक्षा और दूरसंचार। अनुच्छेद में “सहित” कहा गया है, इसलिए सूची उदाहरण देती है और बंद नहीं है।
अनुच्छेद · तारीख
अनुच्छेद 5f(2)
कौन
सूक्ष्म और लघु उद्यम
सीधे शब्दों में इसका क्या मतलब है
आयोग की सिफारिश 2003/361/EC में परिभाषित निजी-क्षेत्र के कर्तव्य से छूट प्राप्त है। वे चाहें तो वॉलेट को अभी भी स्वीकार कर सकते हैं।
अनुच्छेद · तारीख
अनुच्छेद 5f(2)
कौन
केवल उपयोगकर्ता के अनुरोध पर
सीधे शब्दों में इसका क्या मतलब है
स्वीकृति तब देय होती है जब उपयोगकर्ता वॉलेट का उपयोग करने का अनुरोध करता है। इसका उपयोग लोगों के लिए स्वैच्छिक है, और सेवाओं को अन्य पहचान और प्रमाणीकरण साधनों के लिए खुला रहना चाहिए।
अनुच्छेद · तारीख
अनुच्छेद 5f(2), 5a(15)
कौन
बहुत बड़े ऑनलाइन प्लेटफॉर्म
सीधे शब्दों में इसका क्या मतलब है
डिजिटल सेवा अधिनियम के तहत नामित प्लेटफॉर्म जिन्हें उपयोगकर्ता प्रमाणीकरण की आवश्यकता होती है, उन्हें उपयोगकर्ता के अनुरोध पर वॉलेट को स्वीकार करना होगा, सेवा को आवश्यक न्यूनतम डेटा के लिए। यह पाठ इस कर्तव्य के लिए कोई अलग तारीख निर्धारित नहीं करता है।
अनुच्छेद · तारीख
अनुच्छेद 5f(3)
निर्भर करने वाले पक्षों को उस सदस्य राज्य में भी पंजीकरण करना होगा जहाँ वे स्थापित हैं, और केवल वही डेटा का अनुरोध कर सकते हैं जो उन्होंने पंजीकृत किया है (अनुच्छेद 5b)। अंतिम समीक्षा: 5 अक्टूबर 2026। कानूनी सलाह नहीं।
एक व्यवसाय इसे कैसे स्वीकार करता है
एक निर्भर करने वाला पक्ष EUDI वॉलेट को पाँच चरणों में कैसे स्वीकार करता है।
चरण 01 / 05
01
एक निर्भर करने वाले पक्ष के रूप में पंजीकरण करें
उस सदस्य राज्य में पंजीकरण करें जहाँ आप स्थापित हैं, अपने विवरण और उस डेटा के साथ जिसका आप अनुरोध करना चाहते हैं। आपको एक एक्सेस प्रमाणपत्र प्राप्त होता है, जो आपको वॉलेट के लिए प्रमाणित करता है, और, यदि आपका सदस्य राज्य एक जारी करता है, तो एक पंजीकरण प्रमाणपत्र जो आपके द्वारा पंजीकृत विशेषताओं को सूचीबद्ध करता है।
केवल वही अनुरोध करें जिसकी आपको आवश्यकता है
विशिष्ट विशेषताओं का अनुरोध करें, उदाहरण के लिए 18 वर्ष से अधिक आयु, OpenID for Verifiable Presentations (OpenID4VP) और एक Digital Credentials Query Language (DCQL) क्वेरी के साथ, या ISO/IEC 18013-7 के साथ। आप अपने पंजीकरण से अधिक डेटा का अनुरोध नहीं कर सकते।
उपयोगकर्ता वॉलेट में सहमति देता है
उसी फोन पर, ब्राउज़र वॉलेट ऐप को सौंप देता है। कंप्यूटर पर, उपयोगकर्ता एक QR कोड स्कैन करता है। वॉलेट दिखाता है कि कौन अनुरोध कर रहा है, जाँचता है कि आप अपने द्वारा पंजीकृत से अधिक नहीं मांग रहे हैं, और उपयोगकर्ता स्वीकार या अस्वीकार करता है।
प्रस्तुति को सत्यापित करें
विश्वसनीय सूचियों के विरुद्ध जारीकर्ता के हस्ताक्षर की जाँच करें, जाँच करें कि क्रेडेंशियल रद्द नहीं किया गया है, और डिवाइस बाइंडिंग की जाँच करें, जो दिखाता है कि क्रेडेंशियल कॉपी या रीप्ले नहीं किया गया था।
विशेषताओं को प्राप्त करें और निर्णय लें
आपको केवल वही विशेषताएँ प्राप्त होती हैं जो उपयोगकर्ता ने साझा की हैं, जारीकर्ता द्वारा हस्ताक्षरित। ऑनबोर्डिंग या एक्सेस निर्णय, और आपके द्वारा रखा गया रिकॉर्ड, आपके पास रहता है।
जब EUDI वॉलेट स्वीकृति शुरू होगी (जल्द ही आ रहा है) तो Didit आपके लिए ये कदम चलाएगा।
आपको क्या मिलता है बनाम KYC को अभी भी क्या चाहिए
वॉलेट साबित करता है कि कोई व्यक्ति कौन है। ड्यू डिलिजेंस को और अधिक चाहिए।
एंटी-मनी लॉन्ड्रिंग रेगुलेशन (AMLR), रेगुलेशन (EU) 2024/1624 के तहत, आश्वासन स्तर पर्याप्त या उच्च पर इलेक्ट्रॉनिक पहचान पहचान को सत्यापित करने के दो तरीकों में से एक है (अनुच्छेद 22(6))। यह वह सब कुछ नहीं रखता है जो अपने ग्राहक को जानें (KYC) जाँचें मांगती हैं। यहाँ वह है जो व्यक्ति पहचान डेटा (PID) रखता है, और Didit आज प्रत्येक आइटम को कैसे कवर करता है।
ड्यू डिलिजेंस की आवश्यकताएँ
EUDI वॉलेट PID में
Didit आज इसे कैसे कवर करता है
ड्यू डिलिजेंस की आवश्यकताएँ
सभी नाम और उपनाम
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
पारिवारिक नाम और दिया गया नाम, दोनों अनिवार्य।
Didit आज इसे कैसे कवर करता है
लाइव राष्ट्रीय eID पूरा नाम लौटाते हैं। डॉक्यूमेंट रूट इसे 14,000+ डॉक्यूमेंट प्रकारों से पढ़ता है।
ड्यू डिलिजेंस की आवश्यकताएँ
जन्म स्थान और पूरी जन्मतिथि
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
जन्म तिथि और जन्म स्थान, दोनों अनिवार्य।
Didit आज इसे कैसे कवर करता है
लाइव राष्ट्रीय eID जन्म तिथि लौटाते हैं। डॉक्यूमेंट रूट जन्म स्थान को वहां से पढ़ता है जहां डॉक्यूमेंट इसे प्रिंट करता है।
ड्यू डिलिजेंस की आवश्यकताएँ
राष्ट्रीयताएँ
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
राष्ट्रीयता, अनिवार्य, एक या अधिक देश।
Didit आज इसे कैसे कवर करता है
डॉक्यूमेंट रूट पहचान डॉक्यूमेंट या उसकी चिप से राष्ट्रीयता पढ़ता है।
ड्यू डिलिजेंस की आवश्यकताएँ
राष्ट्रीय पहचान संख्या, जहाँ लागू हो
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
व्यक्तिगत प्रशासनिक संख्या, वैकल्पिक। प्रत्येक सदस्य राज्य यह तय करता है कि इसे जारी करना है या नहीं।
Didit आज इसे कैसे कवर करता है
लाइव राष्ट्रीय eID एक स्कीम पहचानकर्ता लौटाते हैं: स्वीडिश पर्सननुमर, फिनिश व्यक्तिगत पहचान कोड या बाल्टिक व्यक्तिगत कोड। MitID एक छद्म-पहचानकर्ता लौटाता है, CPR नंबर नहीं।
ड्यू डिलिजेंस की आवश्यकताएँ
सामान्य निवास स्थान
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
पता फ़ील्ड वैकल्पिक हैं और अक्सर गायब होते हैं। AMLA के अंतिम ड्राफ्ट मानक कहते हैं कि गायब विशेषताओं को अन्य माध्यमों से प्राप्त किया जाना चाहिए।
Didit आज इसे कैसे कवर करता है
कोई भी लाइव राष्ट्रीय eID पता नहीं लौटाता है। पते का प्रमाण एक यूटिलिटी बिल, बैंक स्टेटमेंट या सरकारी पत्र की जाँच करता है।
ड्यू डिलिजेंस की आवश्यकताएँ
कर पहचान संख्या, जहाँ उपलब्ध हो
AMLR Art. 22(1)(a)
EUDI वॉलेट PID में
PID का हिस्सा नहीं।
Didit आज इसे कैसे कवर करता है
उसी वर्कफ़्लो में एक प्रश्नावली चरण के साथ इसे एकत्र करें।
ड्यू डिलिजेंस की आवश्यकताएँ
व्यक्ति पहचान से मेल खाता है
ARF · उपयोगकर्ता बाइंडिंग
EUDI वॉलेट PID में
पोर्ट्रेट 11 अगस्त 2028 को अनिवार्य होने तक वैकल्पिक रहता है।
Didit आज इसे कैसे कवर करता है
पूर्ण KYC चेक के भीतर $0.33 पर डॉक्यूमेंट फोटो या चिप पोर्ट्रेट के खिलाफ निष्क्रिय जीवंतता और 1:1 फेस मैच।
ड्यू डिलिजेंस की आवश्यकताएँ
एक कंपनी के लाभकारी मालिक
AMLR Art. 20(1)(b)
EUDI वॉलेट PID में
PID में नहीं। एक वॉलेट एक व्यक्ति की पहचान करता है, न कि कंपनी का मालिक कौन है।
Didit आज इसे कैसे कवर करता है
बिजनेस वेरिफिकेशन रजिस्ट्री डेटा और मालिकों को खींचता है जहां रजिस्ट्री उन्हें रखती है, प्रत्येक मालिक के लिए एक पहचान जांच के साथ।
ड्यू डिलिजेंस की आवश्यकताएँ
प्रतिबंध और राजनीतिक रूप से उजागर व्यक्ति (PEPs)
AMLR Art. 20(1)(d), (g)
EUDI वॉलेट PID में
PID में नहीं।
Didit आज इसे कैसे कवर करता है
1,300+ प्रतिबंधों, PEP और वॉचलिस्ट के खिलाफ AML स्क्रीनिंग, प्रति चेक $0.20 पर।
ड्यू डिलिजेंस की आवश्यकताएँ
संबंध का उद्देश्य और चल रही निगरानी
AMLR Arts. 25, 26
EUDI वॉलेट PID में
PID में नहीं।
Didit आज इसे कैसे कवर करता है
प्रश्नावली संबंध के उद्देश्य को रिकॉर्ड करती है। चल रही निगरानी प्रति व्यक्ति प्रति वर्ष $0.07 पर ग्राहकों को हर दिन फिर से जांचती है।
ग्राहक की ड्यू डिलिजेंस आपकी जिम्मेदारी है। Didit आपको चेक और सबूत देता है, लेकिन आपको कंप्लायंट नहीं बनाता। AMLR 10 जुलाई 2027 से लागू होगा, और AMLA के तकनीकी मानक 30 सितंबर 2026 की अंतिम ड्राफ्ट हैं, कानून नहीं।
देश के हिसाब से तैयारी
राष्ट्रीय वॉलेट की मौजूदा स्थिति, तारीख और स्रोत के साथ।
यह वह जानकारी है जो हर देश ने प्रकाशित की है, या किसी नामित स्रोत ने बताई है, हर पंक्ति के लिए तारीख और लिंक के साथ।
5 अक्टूबर 2026 तक की स्थिति
देश
वॉलेट या ऐप
स्थिति
तारीख
क्या जानकारी है
देश
इटली
वॉलेट या ऐप
IT-Wallet (app IO)
स्थिति
लाइव ऐप
तारीख
17 फ़रवरी 2026
क्या जानकारी है
IO ऐप में लाइव, 17 फरवरी 2026 तक 10.1 मिलियन एक्टिवेशन और 17.3 मिलियन डॉक्यूमेंट लोड किए गए। वयस्कों के लिए मुफ्त और वैकल्पिक, जो CIE या SPID से साइन इन करते हैं।
AltID डिजिटल ID कार्ड और उम्र के प्रमाण के साथ उपलब्ध है, और 4 अगस्त 2026 तक 281,390 लोग इसे बना चुके थे। डिजिटल सरकार एजेंसी वॉलेट को चरणों में लागू कर रही है।
दिसंबर 2025 से पब्लिक सैंडबॉक्स। ऐप 2027 की शुरुआत में आने वाला है, जो ID फंक्शन से शुरू होगा। लागू करने वाले कानून का पहला बुंडेस्टैग पठन 23 सितंबर 2026 को हुआ था।
सूचीबद्ध नहीं: ऑस्ट्रिया, बेल्जियम, एस्टोनिया, हंगरी, लातविया, लिथुआनिया, लग्ज़मबर्ग, माल्टा, पुर्तगाल, स्लोवेनिया। हमें इस तारीख तक उनके लिए कोई सार्वजनिक स्थिति नहीं मिली। राष्ट्रीय ऐप लॉन्च होने पर हम इस तालिका को अपडेट करते हैं।
Didit आपको वहां कैसे पहुंचाता है · पांच पंक्तियाँ
अभी राष्ट्रीय eID स्वीकार करें। फिर EUDI वॉलेट जोड़ें।
EUDI वॉलेट एक नया रास्ता जोड़ता है; यह दूसरों की जगह नहीं लेता। वर्कफ़्लो एक बार बनाएँ: आज राष्ट्रीय eID और दस्तावेज़, और जब EUDI वॉलेट लॉन्च हो, तो उसी ID वेरिफिकेशन स्टेप में उसकी स्वीकृति भी शामिल करें।
अपने ग्राहकों द्वारा पहले से उपयोग किए जा रहे राष्ट्रीय eID स्वीकार करें।
Didit पर सात देशों में पाँच राष्ट्रीय eID लाइव हैं: MitID, BankID Sweden, Finnish Trust Network, Smart-ID और Mobile-ID। उपयोगकर्ता अपने eID से साइन इन करता है, और सेशन को हस्ताक्षरित विशेषताएँ मिलती हैं: पूरा नाम, जन्मतिथि, एक स्कीम पहचानकर्ता (उदाहरण के लिए स्वीडिश personnummer; MitID एक छद्मनामित पहचानकर्ता लौटाता है) और स्कीम द्वारा घोषित आश्वासन का स्तर। केवल पूर्ण साइन-इन का बिल लिया जाता है।
Didit द्वारा लेबल किए गए स्तर। कोई पता या पोर्ट्रेट वापस नहीं किया जाता है।
02 · EUDI वॉलेट, जल्द आ रहा है
EUDI वॉलेट की स्वीकृति, उसी वर्कफ़्लो पर।
EUDI वॉलेट की स्वीकृति जल्द ही आने वाली है। हमारा वॉलेट कैटलॉग इसे 30 EEA देशों के लिए सूचीबद्ध करता है, राष्ट्रीय eID के समान ID वेरिफिकेशन स्टेप में। अभी तक कोई तारीख या कीमत तय नहीं हुई है।
EUDI वॉलेट स्वीकार्यता के लिए अभी तक कोई तारीख या कीमत नहीं है।
03 · दस्तावेज़ मार्ग
बिना वॉलेट वाले सभी के लिए एक दस्तावेज़ मार्ग।
हर किसी के पास वॉलेट नहीं होगा या वे उसका उपयोग नहीं करेंगे, और कानून अन्य साधनों को खुला रखता है। दस्तावेज़ मार्ग NFC ($0.15) द्वारा पासपोर्ट और ID कार्ड में चिप को पढ़ता है, निष्क्रिय जीवंतता चलाता है और 220+ देशों और क्षेत्रों में 14,000+ दस्तावेज़ प्रकारों में चेहरे को दस्तावेज़ फोटो से मिलाता है।
EUDI वॉलेट जन्मतिथि के बिना यह साबित कर सकता है कि कोई 18 वर्ष से अधिक का है। जब तक वॉलेट सामान्य नहीं हो जाते, सेल्फी से आयु का अनुमान लगाने में प्रति चेक $0.10 का खर्च आता है और सीमावर्ती परिणामों को ID वेरिफिकेशन फॉलबैक पर भेजता है। एक लाइव eID साइन-इन दस्तावेज़ फोटो के बिना एक हस्ताक्षरित जन्मतिथि भी लौटाता है।
पहचान ग्राहक उचित परिश्रम का एक हिस्सा है। उसी वर्कफ़्लो में, लोगों को 1,300+ प्रतिबंधों, PEP और वॉचलिस्ट के खिलाफ स्क्रीन करें (प्रति चेक $0.20), उन्हें हर दिन चल रही निगरानी के साथ फिर से स्क्रीन करें (प्रति व्यक्ति प्रति वर्ष $0.07), और कंपनियों और उनके मालिकों को सत्यापित करें।
एक क्रॉस-डिवाइस प्रस्तुति जैसा कि ARF इसका वर्णन करता है: व्यक्ति कंप्यूटर पर शुरू करता है और उस फोन पर समाप्त करता है जिसमें वॉलेट होता है।
01जारी रखने के लिए स्कैन करें
QR कोड स्कैन करें
सेवा एक QR कोड दिखाती है, और व्यक्ति इसे वॉलेट ऐप से स्कैन करता है।
02ऑनलाइन दुकान पूछती है: 18 वर्ष से अधिक आयु
अनुरोध की समीक्षा करें
वॉलेट दिखाता है कि कौन पूछ रहा है और कौन सी विशेषताएँ।
031 विशेषता साझा करें
साझा करें
व्यक्ति स्वीकृति देता है, और केवल अनुरोधित विशेषताएँ फोन से बाहर निकलती हैं।
04सत्यापित
सत्यापित
सेवा जारीकर्ता के हस्ताक्षर की जाँच करती है और जारी रखती है। कुछ और साझा नहीं किया गया था।
मानक फ़्लो का एक चित्रण। Didit की EUDI वॉलेट स्वीकृति जल्द ही आ रही है।
आज ही इंटीग्रेट करें
आज ही इंटीग्रेट करें, और वॉलेट आने पर भी इसे बनाए रखें।
अभी तक कोई EUDI-विशिष्ट Didit API नहीं है। एक वर्कफ़्लो के लिए एक सेशन बनाएँ जो लाइव राष्ट्रीय eID और दस्तावेज़ स्वीकार करता है, फिर परिणाम पढ़ें। EUDI वॉलेट स्वीकृति उसी ID वेरिफिकेशन स्टेप के लिए प्लान की गई है।
इस प्रॉम्प्ट को अपने कोडिंग एजेंट में कॉपी करें। यह उस वर्कफ़्लो को बनाता है जिसे आप आज चला सकते हैं, दस्तावेज़ फ़ॉलबैक के साथ लाइव राष्ट्रीय eID, साथ ही सेशन कॉल और हस्ताक्षरित वेबहुक। यह कोई EUDI एंडपॉइंट नहीं बनाता है, क्योंकि अभी तक कोई मौजूद नहीं है।
didit-integration-prompt.md
# Didit: get ready for the EUDI Wallet with the ID Verification step you run today
You are adding electronic identification to my_stack so the product is ready
for the EU Digital Identity (EUDI) Wallet. Every URL, header and enum value
below is canonical. Do not paraphrase or "improve" them.
## 0. What exists today, and what does not
- EUDI Wallet acceptance on Didit is coming soon. There is NO EUDI-specific
endpoint, wallet id, field or flag to integrate yet. Do not invent one, do
not send any EUDI identifier in a workflow, and do not build an OpenID4VP
verifier yourself as part of this task.
- What is live: national digital ID wallets inside the ID Verification step,
with document capture (chip reading, liveness, face match) as the fallback.
EUDI Wallet acceptance is planned for the same ID Verification step, so the
workflow, session call and webhook you build now are the ones you keep.
- The live wallets, as listed by the methods catalog:
- MitID: wallet id mitid, country keys DNK (Denmark)
- BankID: wallet id bankid_se, country keys SWE (Sweden)
- Finnish Trust Network: wallet id ftn, country keys FIN (Finland)
- Smart-ID: wallet id smart_id, country keys EST (Estonia), LVA (Latvia), LTU (Lithuania), BEL (Belgium)
- Mobile-ID: wallet id mobile_id, country keys EST (Estonia), LTU (Lithuania)
Check the catalog for your environment before you go live. Never
hard-code dates.
## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Copy the API key of your application from the console.
## 2. Read the methods catalog
Availability is server-driven per country. Only wallets marked available can
be enabled on a live application.
- Business Console: your application -> Workflows -> the ID Verification
step -> Countries -> "Wallets accepted". Coming-soon wallets are listed
but cannot be switched on. https://docs.didit.me/console/id-verification-methods
- Didit MCP server (https://mcp.didit.me/mcp), tool
didit_workflow_get_id_verification_methods_catalog; pass country as ISO
3166-1 alpha-3 to narrow it. The MCP server signs in with "Log in with
Didit" (OAuth). It does not accept the x-api-key.
https://docs.didit.me/integration/mcp/tools
- Public coverage table (no sign-in, read-only):
https://docs.didit.me/core-technology/id-verification/digital-id-wallets#supported-wallets
If your code holds only an API key, it cannot read the catalog itself: use the
wallet ids listed in this prompt, and treat the answer of the workflow save as
the check. A live application answers 400 for a wallet that is not available
in that country ("<wallet> is not offered in <ISO3>", "unknown wallet").
## 3. Create the workflow (ID Verification = feature OCR)
POST https://verification.didit.me/v3/workflows/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
{
"workflow_label": "eID onboarding",
"features": [
{
"feature": "OCR",
"config": {
"methods": {
"DNK": {
"document": { "enabled": true },
"wallet": {
"enabled": true,
"providers": ["mitid"],
"on_failure": "fallback_to_document"
}
},
"EST": {
"document": { "enabled": true },
"wallet": {
"enabled": true,
"providers": ["smart_id", "mobile_id"],
"on_failure": "fallback_to_document"
}
}
}
}
}
]
}
Response: 201. The workflow id is uuid (workflow_id carries the same value);
the workflow is published straight away. Create it once and keep the id:
every call to this endpoint makes a new workflow.
is_desktop_allowed defaults to false: on a desktop browser the hosted flow
then shows a QR code to continue on a phone. Add "is_desktop_allowed": true
next to workflow_label to let people finish on desktop.
Rules the API enforces:
- OCR is UPPERCASE; ID_VERIFICATION is rejected in this body (the decision
later lists the step as ID_VERIFICATION in its features)
- country keys are ISO 3166-1 alpha-3; method keys are document, id_lookup, wallet
- providers is an accept-list, not a ranking; the end user picks
- on_failure is fallback_to_document or decline
- a wallet the catalog does not mark available rejects the whole save (400)
- every other country keeps document capture, so people without an eID
can still verify
- this body runs document capture only. Chip reading, liveness and face
match are their own features: add { "feature": "NFC" },
{ "feature": "LIVENESS" } and { "feature": "FACE_MATCH" } to features
when your policy needs them
## 4. Create a session
POST https://verification.didit.me/v3/session/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
-d '{ "workflow_id": "<id from step 3>", "vendor_data": "<your user id>" }'
Response: 201 with session_id, session_token, url and status "Not Started".
Redirect the user to url (hosted flow) or open it in the Web, iOS, Android,
React Native or Flutter SDK. The field is named url on this response.
One unfinished session exists per workflow_id and vendor_data pair: calling
create again with the same pair answers 201 again with that same session.
## 5. Webhook
Register a destination in the console (API & Webhooks), or over the API:
POST https://verification.didit.me/v3/webhook/destinations/
-H "x-api-key: <your-api-key>"
-H "Content-Type: application/json"
-d '{
"label": "Verification webhooks",
"url": "https://<your-public-host>/webhooks/didit",
"webhook_version": "v3",
"subscribed_events": ["status.updated", "data.updated"]
}'
label, url and subscribed_events are required. url must be a public HTTPS
address: Didit does not deliver to localhost or private addresses. Response:
201 with uuid and secret_shared_key. Store secret_shared_key as the webhook
secret (DIDIT_WEBHOOK_SECRET); it is unique to this destination. Remove a
destination with DELETE /v3/webhook/destinations/{uuid}/ (204).
What arrives:
- webhook_type is "status.updated" (the session changed status) or
"data.updated" (verification data was corrected after the fact)
- a destination receives the events of every session of the application,
so filter on workflow_id or vendor_data when several flows share it
- creating a session already sends status.updated with status
"Not Started". The decision key is present only when status is Approved,
Declined, In Review or Abandoned.
Verify every delivery:
Header: X-Signature-V2 (not X-Signature, not X-Signature-Simple)
Algorithm: HMAC-SHA256, hex digest, over the canonical JSON of the payload
(Python json.dumps(sort_keys=True, separators=(",", ":"),
ensure_ascii=False) after whole-valued floats become ints).
Never hash the raw request bytes under this header.
Freshness: the signed body field timestamp is the dispatch time (Unix
seconds). Reject when abs(now - timestamp) > 300 seconds, and
reject when the X-Timestamp header does not equal it.
Idempotency: event_id is the same on every retry of one event, so store it
and skip a delivery you already processed. One session can
still send the same status under two event ids, and the
console's Try Webhook test deliveries carry no event_id, so
also make the handler safe to run twice for one
(session_id, status, webhook_type).
Compare: constant-time (crypto.timingSafeEqual)
Reference handler (Express). Keep the verification lines as written.
The handler is a fragment. Put this above it and app.listen(process.env.PORT)
below it. It needs Express and Node 21 or newer (an older Node rejects
every delivery). It expects a JSON body: answer 400 yourself if you accept
anything else on this route, and refuse to start without the secret.
const express = require("express");
const app = express();
const SECRET = process.env.DIDIT_WEBHOOK_SECRET; // secret_shared_key of the destination
// Your endpoint receives a signed payload
const crypto = require("node:crypto"); // ESM: import crypto from "node:crypto"
// X-Signature-V2 = HMAC over the canonical JSON, never the raw bytes. Match the sender byte for
// byte: keys sorted by code point, integers digit for digit, floats in Python's repr.
class Num { constructor(src) { this.src = src; } } // a number as written on the wire, not a double
const num = (s) => { if (/^-?\d+$/.test(s)) return BigInt(s).toString(); const n = +s; // ints stay exact
if (Number.isInteger(n)) return BigInt(n).toString(); const [m, e] = n.toExponential().split("e"); // 27.0 -> 27
return +e >= -4 ? String(n) : `${m}e-${String(-e).padStart(2, "0")}`; }; // 1e-05, not 0.00001
const byCodePoint = (a, b) => Buffer.compare(Buffer.from(a), Buffer.from(b)); // UTF-8 order = Python's
const canon = (v) => Array.isArray(v) ? `[${v.map(canon)}]` : v instanceof Num ? num(v.src)
: v && typeof v === "object" ? `{${Object.keys(v).sort(byCodePoint).map((k) => `${JSON.stringify(k)}:${canon(v[k])}`)}}`
: JSON.stringify(v);
// Read the body as text: express.json() would round 1000000000000000129 to a double first.
// Register this route ABOVE any global app.use(express.json()): the first parser to run
// consumes the stream, and a body it already parsed has lost the digits the signature covers.
app.post("/webhooks/didit", express.text({ type: "application/json" }), (req, res) => {
const exact = JSON.parse(req.body, (k, v, c) => typeof v === "number" ? new Num(c.source) : v); // Node 21+
const body = JSON.parse(req.body);
const mac = crypto.createHmac("sha256", SECRET).update(canon(exact), "utf8").digest("hex");
const sig = Buffer.from(String(req.headers["x-signature-v2"] ?? ""));
// Freshness comes from the signed body timestamp; the header alone is unsigned and replayable.
const ts = body.timestamp, fresh = String(ts) === req.headers["x-timestamp"]
&& Math.abs(Date.now() / 1000 - ts) <= 300;
if (!fresh || sig.length !== mac.length
|| !crypto.timingSafeEqual(sig, Buffer.from(mac))) return res.sendStatus(401);
const { status, decision } = body;
// One entry per ID Verification node; pick yours by node_id when you run several.
const [idv] = decision?.id_verifications ?? [];
// idv.verification_method: "document" | "id_lookup" | "wallet"
res.sendStatus(200);
});
Status values (exact strings): Not Started, In Progress, Approved, Declined,
In Review, Resubmitted, Expired, Abandoned, Kyc Expired. Awaiting User only
appears on business verification sessions.
## 6. Read the result
The same V3 decision reaches you two ways:
- webhook body: body.decision.id_verifications[]
- GET https://verification.didit.me/v3/session/{session_id}/decision/
-H "x-api-key: <your-api-key>"
This response IS the decision object. Read id_verifications at the top
level: there is no decision wrapper here.
Until the user finishes the ID step, status is "Not Started" or "In Progress"
and id_verifications is null, not an empty array. Guard for it.
id_verifications[] has one entry per ID Verification node; with a single step
take index 0. A wallet sign-in sets:
verification_method "wallet"
assurance "cryptographic"
wallet_provider the catalog wallet id the user picked
wallet_verification provider, provider_name, issuing_authority,
issuing_country, credential_type, level_of_assurance,
verified_at, signature_valid, attributes, portrait
(null for the live wallets), face_match_score
fallback_from { method, reason, action } when the wallet sign-in failed
and on_failure declined the session; otherwise
null. After a document fallback that succeeds the
entry reads verification_method "document" with
fallback_from null
full_name, the normalised identity fields, on the entry itself
date_of_birth
On a live application, check wallet_verification.signature_valid before you
trust attributes. The
live wallets return name, date of birth and a scheme identifier (for example
the Swedish personnummer; MitID returns a pseudonymised identifier), never an
address or a portrait: collect those through other steps if your policy
needs them.
Reference: https://docs.didit.me/core-technology/id-verification/digital-id-wallets
## 7. Billing
Only completed wallet sign-ins are billed; cancelled, timed-out and failed
ones are free. Prices per wallet: https://didit.me/pricing
## 8. Verify your integration
Sandbox (an application in sandbox mode: nothing is billed and no real eID is
called). https://docs.didit.me/integration/sandbox-testing
- a sandbox application can enable every wallet in the catalog, the
coming-soon ones included. A workflow that saves in sandbox can still be
refused on a live application, so only use wallets marked available.
- open the session url, pick the wallet and confirm: the default approve
scenario simulates the sign-in. The entry then has verification_method
"wallet", assurance "cryptographic" and wallet_provider set, and the
normalised full_name and date_of_birth are filled. But
wallet_verification.signature_valid and level_of_assurance are null and
attributes is { "sandbox": true }: no real credential was checked.
Assert signature_valid === true and the level of assurance only against
a live application.
- to exercise on_failure, create the session with
"sandbox_scenario": "wallet_cancelled" (also wallet_timeout and
wallet_provider_error). The wallet sign-in then fails and the flow moves
to document capture or declines, as on_failure says. A fallback that
ends in an approved document reads verification_method "document".
- POST /v3/session/{session_id}/simulate/ forces a final status but writes
no id_verifications entry, so it cannot stand in for a sign-in.
Checks:
- create the workflow, create a session, and read its decision: expect 201,
201 with url, and 200 with status "Not Started"
- run one sandbox session per accepted wallet through the hosted flow and
assert verification_method is "wallet" and wallet_provider is the wallet
you picked
- run one session with sandbox_scenario "wallet_cancelled" and assert the
flow offers document capture
- assert the webhook accepts a correctly signed payload and rejects a wrong
X-Signature-V2, a changed body, and a payload whose signed timestamp is
older than 300 seconds, even when X-Timestamp is refreshed
- on a live application, assert wallet_verification.signature_valid is true
Docs: https://docs.didit.me/core-technology/id-verification/digital-id-wallets
डिज़ाइन द्वारा कंप्लायंट
एक क्लिक में एक नया देश खोलें। हम मुश्किल काम करते हैं।
हम स्थानीय सहायक कंपनियाँ खोलते हैं, लाइसेंस सुरक्षित करते हैं, पेनेट्रेशन टेस्ट चलाते हैं, सर्टिफिकेशन हासिल करते हैं, और हर नए रेगुलेशन के साथ अलाइन करते हैं। एक नए देश में वेरिफिकेशन शिप करने के लिए, बस एक टॉगल फ्लिप करें। 220+ देश लाइव, हर तिमाही ऑडिट और पेन-टेस्टेड, एकमात्र आइडेंटिटी प्रोवाइडर जिसे EU सदस्य-राज्य सरकार ने औपचारिक रूप से इन-पर्सन वेरिफिकेशन से ज़्यादा सुरक्षित बताया है।
मुफ़्त में शुरू करें। ज़रूरत के हिसाब से भुगतान करें। एंटरप्राइज़ तक स्केल करें।
हर महीने 500 मुफ़्त वेरिफिकेशन, हमेशा के लिए। फिर, केवल तभी भुगतान करें जब कोई मॉड्यूल चले। एंटरप्राइज़ के लिए कस्टम कॉन्ट्रैक्ट, डेटा रेज़िडेंसी और सर्विस लेवल एग्रीमेंट (SLAs) उपलब्ध हैं।