मुख्य सामग्री पर जाएं

प्रक्रिया बनाएं

MarkdownChatGPTClaude

यह endpoint तीन उत्पादों को संभालता है जो एक ही path साझा करते हैं लेकिन body पैरामीटर, क्षमताओं और प्रतिक्रिया फ़ील्ड में भिन्न हैं:

  • ऑनबोर्डिंग — Unico के पहचान आधार के विरुद्ध उनका चेहरा तुलना करके यह सत्यापित करता है कि उपयोगकर्ता कौन है (subject.duiType + subject.code आवश्यक)।
  • Transactional — पिछली प्रक्रिया से चेहरे की तुलना करके यह सत्यापित करता है कि यह वही व्यक्ति है (referenceProcessId OR selfie / process id के साथ references array आवश्यक)।
  • Cardholder Verification — बिना किसी selfie कैप्चर के यह पुष्टि करता है कि कोई कार्ड उसके घोषित धारक का है (subject.code + card आवश्यक)। वैकल्पिक रूप से referenceProcessId के माध्यम से पहले से सत्यापित प्रक्रिया का पुनः उपयोग करके पुनः उपयोग गेट को ट्रिगर करता है; इसके बिना, प्रतिक्रिया डिफ़ॉल्ट रूप से unsure परिणाम देती है। Cardholder Verification क्षमता देखें।

सक्रिय उत्पाद request header में भेजी गई APIKEY द्वारा निर्धारित होता है।

संपूर्ण एकीकरण प्रवाह के लिए, API अवलोकन देखें।

Endpoint​

वातावरणURL
ProductionPOST https://api.id.unico.app/processes/v1
SandboxPOST https://api.id.uat.unico.app/processes/v1

अनुरोध​

Headers
HeaderValue
AuthorizationBearer <access_token> (Authentication देखें)
APIKEYप्रावधानित API key — सक्रिय उत्पाद और सक्षम capabilities को परिभाषित करता है।
Content-Typeapplication/json
Body parameters
FieldTypeRequiredविवरण
subject.duiTypeintegeryesदस्तावेज़ प्रकार पहचानकर्ता। नीचे duiType मान देखें।
subject.codestringyessubject.duiType द्वारा परिभाषित पहचानकर्ता मान। कोई बिंदु या डैश नहीं।
subject.namestringnoपूरा नाम।
subject.genderstringnoM या F।
subject.birthDatestring (ISO 8601)noजन्म तिथि (YYYY-MM-DD)।
subject.emailstringnoईमेल पता।
subject.phonestringnoE.164 phone number।
subject.clientReferencestringconditionalआपके सिस्टम में उपयोगकर्ता का अद्वितीय पहचानकर्ता। मल्टी अकाउंट क्षमता के लिए आवश्यक। आपके आधार में अद्वितीय, अधिकतम 256 वर्ण, कोई स्पेस नहीं।
useCasestringnoOperation context, जैसे Onboarding।
subsidiaryIdstringnoशाखा ID — केवल तभी आवश्यक जब एकाधिक शाखाएं हों।
imageBase64stringyesआपके front-end द्वारा capture की गई selfie, base64 में।
duiType मान
देशकोडविवरण
AR6अर्जेंटीनी पासपोर्ट
AR7अर्जेंटीनी DNI
AR49अर्जेंटीनी ड्राइविंग लाइसेंस (Licencia Nacional de Conducir)
AT34ऑस्ट्रियाई कर संख्या (STNR)
BE36बेल्जियन राष्ट्रीय नंबर (NN)
BR1ब्राज़ीलियाई CPF
BR5ब्राज़ीलियाई पासपोर्ट
BR14ब्राज़ीलियाई CNPJ
CA28कैनेडियन SIN
CH33स्विस AHV/AVS नंबर
CL9चिली RUN
CL52चिली पासपोर्ट
CL57चिली ड्राइविंग लाइसेंस (Licencia de Conducir)
CO26कोलंबियाई NIT
CO53कोलंबियाई पासपोर्ट
CO55कोलंबियाई ड्राइविंग लाइसेंस (Licencia de Conducción)
CO56कोलंबियाई नागरिकता कार्ड (Cédula de Ciudadanía)
DE41जर्मन कर पहचान संख्या (IdNr)
DK29डैनिश CPR
EC10इक्वाडोरी NI
ES50स्पेनिश विदेशी पहचान संख्या (NIE)
ES51स्पेनिश राष्ट्रीय पहचान दस्तावेज़ (DNI)
FI35फिनिश व्यक्तिगत पहचान कोड (HETU)
FR46फ्रेंच कर संदर्भ संख्या (SPI)
GB30ब्रिटिश राष्ट्रीय बीमा नंबर (NINO)
GT12ग्वाटेमाला CUI
ID16इंडोनेशियाई NIK
IE47आयरिश व्यक्तिगत सार्वजनिक सेवा नंबर (PPSN)
IT37इटालियन कोडिस फिस्काले (CF)
LU48लक्ज़मबर्ग राष्ट्रीय पहचान संख्या (Matricule)
MX2मैक्सिकन CURP
MX25मैक्सिकन RFC (व्यक्तिगत)
MX58मैक्सिकन ड्राइविंग लाइसेंस (Licencia de Conducir)
NG8नाइजीरियाई NIN
NG20नाइजीरियाई बैंक सत्यापन नंबर (BVN)
NG43नाइजीरियाई BVN टोकन (हैश्ड)
NG44नाइजीरियाई NIN टोकन (हैश्ड)
NL42डच नागरिक सेवा नंबर (BSN)
NO39नॉर्वेजियन राष्ट्रीय पहचान नंबर (Fødselsnummer)
PE27पेरूवियन RUC
PE40पेरूवियन DNI
PE54पेरूवियन पासपोर्ट
PL31पोलिश PESEL
PT45पॉर्चुगीज कर पहचान संख्या (NIF)
SE32स्वीडिश व्यक्तिगत नंबर (PNR)
SE38स्वीडिश समन्वय नंबर (Samordningsnummer)
TR24तुर्की पहचान संख्या (TCKN)
US4संयुक्त राज्य SSN
US11संयुक्त राज्य पासपोर्ट
US18संयुक्त राज्य ड्राइविंग लाइसेंस
US21संयुक्त राज्य पासपोर्ट कार्ड
US22संयुक्त राज्य पॉलीकार्बोनेट पासपोर्ट
US23संयुक्त राज्य पहचान पत्र (ID Card)
UY13उरुग्वे CI
ZZ15ईमेल पता
ZZ17फ़ोन नंबर
—0अनिर्दिष्ट
—3Unico आंतरिक पहचानकर्ता
इमेज आवश्यकताएं
  • न्यूनतम resolution: 640 × 480 (HD standard)
  • अधिकतम फ़ाइल आकार: 800 KB (JPEG92 compression अनुशंसित)
  • स्वीकृत formats: PNG, JPEG, WebP
  • SDK के JWT token 10 मिनट के बाद expire हो जाते हैं और केवल एक बार उपयोग किए जा सकते हैं
संपीड़ित अनुरोध

API स्टैंडर्ड Content-Encoding HTTP header का उपयोग करके संपीड़ित request body भेजने का समर्थन करता है। यह वैकल्पिक है और पूरी तरह से backward-compatible है: जो क्लाइंट यह header नहीं भेजते, वे पहले की तरह ही काम करते रहते हैं।

समर्थित प्रारूप
EncodingContent-Encoding headerस्थिति
Gzipgzip✅ अनुशंसित
Deflatedeflate✅ समर्थित
कोई संपीड़न नहीं(header अनुपस्थित)✅ समर्थित (डिफ़ॉल्ट व्यवहार)
सिफारिश

gzip का उपयोग करें। इसका भाषाओं और HTTP libraries में सबसे व्यापक समर्थन है, जो अन्य प्रारूपों में मौजूद implementation संबंधी अस्पष्टताओं से बचाता है।

बड़े body वाले requests (जैसे, व्यापक JSON payloads, base64-encoded image uploads, batch submissions) के लिए संपीड़न की सिफारिश की जाती है। छोटे requests के लिए, संपीड़न का overhead कोई प्रासंगिक लाभ नहीं दे सकता।

संपीड़ित request कैसे भेजें
  1. चुने गए algorithm का उपयोग करके request body (जैसे, serialized JSON) को संपीड़ित करें।
  2. संपीड़ित body को request में binary bytes के रूप में भेजें।
  3. मिलान करने वाले value (gzip या deflate) के साथ Content-Encoding header शामिल करें।
  4. Content-Type को मूल content प्रारूप (जैसे, application/json) का वर्णन करने के लिए रखें, transport encoding का नहीं।
echo '{"subject":{"code":"12345678909"},"useCase":"Onboarding","imageBase64":"/9j/4AAQSkZJR..."}' | gzip > body.json.gz

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-H "Content-Encoding: gzip" \
--data-binary @body.json.gz
टिप

Python उदाहरण के लिए, json= के बजाय data= पैरामीटर का उपयोग करें। json= पैरामीटर पेलोड को स्वचालित रूप से सीरियलाइज़ करता है, लेकिन इसे संपीड़ित नहीं करता।

इसके बजाय deflate का उपयोग करना: ऊपर दिया गया फ़्लो पूरी तरह समान है — केवल compression कॉल और Content-Encoding का मान बदलता है।

भाषाdeflate
Bash / cURLzlib-flate -compress < body.json > body.json.deflate (qpdf से), फिर -H "Content-Encoding: deflate"
Pythongzip.compress(data) के बजाय zlib.compress(data)
.NET (C#)GZipStream के बजाय System.IO.Compression.DeflateStream
व्यवहार में deflate अस्पष्ट है

HTTP का deflate content encoding एक zlib stream (RFC 1950) के रूप में निर्दिष्ट है, लेकिन कुछ क्लाइंट और सर्वर ऐतिहासिक रूप से इसके बजाय raw DEFLATE (RFC 1951) भेजते या अपेक्षा करते हैं। यह API स्टैंडर्ड zlib-wrapped stream की अपेक्षा करता है — वही आउटपुट जो zlib.compress() (Python) या DeflateStream (.NET) डिफ़ॉल्ट रूप से produce करते हैं। संदेह होने पर, gzip को प्राथमिकता दें, जिसमें ऐसी कोई अस्पष्टता नहीं है।

त्रुटि व्यवहार

यदि Content-Encoding को किसी असमर्थित value के साथ भेजा जाता है, या body corrupted है या घोषित encoding के लिए अमान्य है, तो API 400 Bad Request लौटाता है जिसमें यह संदेश होता है कि request body को decompress करना विफल हो गया।

अक्सर पूछे जाने वाले प्रश्न

यदि मैं संपीड़न का उपयोग नहीं करना चाहता तो क्या मुझे कुछ बदलने की आवश्यकता है? नहीं। Content-Encoding समर्थन additive है — इस header के बिना requests को पहले की तरह ही सामान्य रूप से process किया जाता रहता है।

क्या यह API प्रतिक्रिया को प्रभावित करता है? नहीं। यह feature केवल क्लाइंट द्वारा भेजे गए body (request) से संबंधित है। प्रतिक्रिया संपीड़न (API जो लौटाता है) Accept-Encoding header द्वारा अलग से नियंत्रित होता है।

मुझे कौन सा प्रारूप चुनना चाहिए? gzip का उपयोग करें, जब तक कि आपके environment में कोई विशेष सीमा किसी अन्य प्रारूप की आवश्यकता न बताए।

उदाहरण​

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"imageBase64": "/9j/4AAQSkZJR..."
}'

प्रतिक्रियाएं​

200 OK

Contract अद्वितीय है — idCloud.result फ़ील्ड में उपयोग की गई capabilities का समेकित निर्णय होता है।

Unico निष्पादित capabilities के परिणामों को एकल idCloud.result में समेकित करता है, जो आपके flow के अगले चरण को तय करने के लिए तैयार होता है — व्यक्तिगत परिणामों को व्यवस्थित करने की आवश्यकता के बिना।

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"idCloud": {
"result": "approved"
}
}
FieldTypeविवरण
idstring (UUID)Process identifier। पुनः-क्वेरी के लिए Get Process के साथ उपयोग करें।
statusinteger1 (processing), 3 (सफलतापूर्वक समाप्त), 5 (त्रुटि)।
Possible result values
idCloud.resultअर्थअनुशंसित कार्रवाई
approvedवास्तविक व्यक्ति और सत्यापित पहचान।flow के साथ आगे बढ़ें।
deniedपहचान सत्यापित नहीं हुई, लाइवनेस जाँच विफल रही, या अत्यधिक जोखिम की पहचान हुई।flow समाप्त करें या किसी वैकल्पिक flow पर रीडायरेक्ट करें।
critical-riskगंभीर जोखिम स्तर की पहचान हुई।flow समाप्त करें या मैन्युअल समीक्षा पर भेजें।
high-riskउच्च जोखिम स्तर की पहचान हुई।मैन्युअल समीक्षा या किसी वैकल्पिक flow पर भेजें।
retryमूल्यांकन के लिए अपर्याप्त कैप्चर या स्कोर।उपयोगकर्ता से नया कैप्चर माँगें।
inconclusiveनिर्णय के लिए पर्याप्त साक्ष्य नहीं।मैन्युअल समीक्षा या किसी वैकल्पिक flow पर भेजें।

लौटाए गए मान आपकी APIKey में configured recipe पर निर्भर करते हैं। प्रत्येक recipe जो परिणाम मान लौटा सकती है, उसके लिए प्रवाह देखें।

Brazilब्राज़ील में क्लाइंट प्रति-capability प्रतिक्रिया प्राप्त कर सकते हैं

समग्र प्रतिक्रिया संरचना वही रहती है — एकल परिणाम डिफ़ॉल्ट है।

ब्राज़ील में integrations प्रति-capability खुले परिणाम प्राप्त कर सकती हैं। APIKey में सक्षम प्रत्येक capability प्रतिक्रिया में अपना स्वयं का ब्लॉक जोड़ती है — अक्षम capabilities के फ़ील्ड पूरी तरह छोड़ दिए जाते हैं।

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": { "result": "yes" },
"riskLevel": { "result": "inconclusive" },
"idFace": {
"personId": "a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890",
"result": "FOUND"
},
"government": { "serpro": 87 },
"liveness": 1
}
प्रतिक्रिया फ़ील्ड आपकी APIKey पर निर्भर करते हैं

ऊपर दिया गया उदाहरण सभी संभावित capability फ़ील्ड दिखाता है। आपकी वास्तविक प्रतिक्रिया में केवल वे फ़ील्ड शामिल होंगे जो आपकी APIKey कॉन्फ़िगरेशन में सक्षम capabilities के लिए हैं — अक्षम capabilities के फ़ील्ड पूरी तरह से छोड़ दिए जाते हैं। capabilities को सक्षम करने या समायोजित करने के लिए अपने Unico प्रोजेक्ट मैनेजर से संपर्क करें।

FieldTypeविवरण
unicoId.resultstringyes, no, inconclusive — पहचान सत्यापन देखें।
riskLevel.resultstringapproved, reproved, risk-critical, risk-high, inconclusive — नीचे संभावित मान देखें या धोखाधड़ी जोखिम वर्गीकरण देखें।
idFace.resultstringFOUND — फेस आइडेंटिफायर देखें।
idFace.personIdstringचेहरे के लिए स्थिर अपारदर्शी पहचानकर्ता, जो idFace.result = FOUND के साथ लौटाया जाता है। जब छवि में किसी चेहरे की पहचान नहीं की जा सकती, तो request 20532 error के साथ विफल हो जाता है, idFace block लौटाने के बजाय।
identityFraudsters.resultstringबहिष्कृत. इसके बजाय riskLevel का उपयोग करें। जारी एकीकरण वाले ग्राहक प्रोजेक्ट टीम के साथ माइग्रेशन का समन्वय करते हुए इसका उपयोग जारी रख सकते हैं।
government.serprointegerSerpro similarity score (0–100, -1, -2)। केवल ब्राज़ील में उपलब्ध। सेर्प्रो समानता रिटर्न देखें।
livenessinteger1 (passed), 2 (failed) — लाइवनेस देखें।
riskLevel.result — संभावित मान
मानअर्थ
approvedयह ID धारक का चेहरा है, और धोखाधड़ी से संबंधित कोई साक्ष्य नहीं मिला।
reprovedअस्वीकृति की अनुशंसा की जाती है, क्योंकि कई धोखाधड़ी संकेतक पाए गए।
risk-criticalअस्वीकृति की अनुशंसा की जाती है, लेकिन अंतिम निर्णय आपके विवेक पर निर्भर है। क्रिटिकल जोखिम इंगित करता है कि हमें धोखाधड़ी के कम से कम 2 मजबूत साक्ष्य मिले हैं।
risk-highअस्वीकृति की भी अनुशंसा की जाती है, लेकिन निर्णय आपका है। उच्च जोखिम इंगित करता है कि हमें धोखाधड़ी का कम से कम एक मजबूत साक्ष्य मिला है।
inconclusiveधोखाधड़ी का कोई मजबूत साक्ष्य नहीं मिला। इसलिए, यह निष्कर्ष निकालना संभव नहीं है कि कोई प्रासंगिक जोखिम है या नहीं।
जानकारी

जब unicoId.result = inconclusive और धोखाधड़ी जोखिम वर्गीकरण orchestration सक्रिय हो, तो प्रक्रिया status: 1 (processing) लौटा सकती है। अंतिम परिणाम प्राप्त करने के लिए Get Process को poll करें या webhooks का उपयोग करें।

Mexicoमेक्सिको में क्लाइंट RENAPO Verification block प्राप्त कर सकते हैं

प्रतिक्रिया की संरचना वही रहती है और उसमें idGov block जुड़ जाता है।

RENAPO Verification सक्षम होने पर मेक्सिको में integrations को एक अतिरिक्त idGov block मिलता है, जिसमें उपयोगकर्ता के CURP के लिए RENAPO के पास मौजूद रिकॉर्ड होता है। यह पहचान परिणाम से एक अलग उत्तर है।

{
"id": "11111111-2222-3333-4444-555555555555",
"status": 3,
"idCloud": { "result": "approved" },
"idGov": {
"government_valid": true,
"curp": "PUEA880304MDFRJN04",
"government_name": "ANA PRUEBA EJEMPLO",
"date_of_birth": "1988-03-04",
"age": 38,
"gender": "F",
"deceased": false,
"is_mexican": true,
"citizenship": "MEXICO",
"state_of_birth": "Ciudad de México",
"state_iso": "MX-CMX",
"issuing_entity_code": "DF",
"municipality_registration": ""
}
}
FieldTypeविवरण
idGovobjectCURP के लिए RENAPO रिकॉर्ड। capability सक्षम न होने पर अनुपस्थित। RENAPO के उत्तर न देने पर {}। केवल मेक्सिको में। RENAPO Verification देखें।

त्रुटि कोड​

कोडसंदेशविवरण
40221This flow does not support reusing a prior process (referenceProcessId or bioTokenId) without an image; send an image (imageBase64, or references[0] with type IMAGE_BASE64) instead.पुन:उपयोग फ़्लो (referenceProcessId/bioTokenId, बिना इमेज के) अस्वीकृत कर दिया गया क्योंकि इस API कुंजी के लिए प्रोसेस पुन:उपयोग सक्षम नहीं है।
20900O base64 informado não é válido.base64 पैरामीटर अमान्य है। संभावित कारण: यह छवि नहीं है या injection का प्रयास है।
20807A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.अपलोड की गई छवि का रिज़ॉल्यूशन बहुत कम है।
20532No face detected in image.सबमिट की गई छवि में कोई चेहरा नहीं पाया जा सका।
20513The referenced process was not found.referenceProcessId एक ऐसी प्रक्रिया की ओर इंगित करता है जो मौजूद नहीं है या अब उपलब्ध नहीं है।
20512The referenced process is not available for reuse.संदर्भित प्रक्रिया मौजूद है लेकिन पुन:उपयोग के लिए उपलब्ध नहीं है।
20509The subject.name field is invalid.subject.name में अमान्य वर्ण हैं।
20508The subject.gender field is invalid.subject.gender का मान M या F होना चाहिए।
20507O parâmetro subject.code é inválido.गैर-मानक या अस्तित्वहीन CPF।
20506O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.छवि आकार 800 KB से अधिक है; JPEG92 में संपीड़ित करें।
20505O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.base64 प्रारूप अमान्य या असमर्थित है।
20065The referenceProcessId field is invalid.referenceProcessId वैध UUID नहीं है।
20062The useCase field is invalid.useCase फ़ील्ड में अपरिचित मान।
20024The referenceProcessId field is missing.referenceProcessId पैरामीटर प्रदान नहीं किया गया और references को विकल्प के रूप में नहीं भेजा गया। Cardholder Verification पर लागू नहीं होता — इसका referenceProcessId कभी भी आवश्यक के रूप में सत्यापित नहीं होता; एक असंतुष्ट पुनः उपयोग गेट इसके बजाय unsure जवाब देता है।
20533The card field is missing.Cardholder Verification: card object प्रदान नहीं किया गया।
20534The card.bin field is missing.Cardholder Verification: card.bin प्रदान नहीं किया गया।
20535The card.last4 field is missing.Cardholder Verification: card.last4 प्रदान नहीं किया गया।
20536The card data is invalid.Cardholder Verification: कार्ड डेटा को अमान्य के रूप में अस्वीकृत कर दिया गया।
20021The subject.phone field is invalid.subject.phone प्रारूप अमान्य (IDD + area code + number, 13 वर्ण)।
20019The subject.birthDate field is invalid.subject.birthDate ISO 8601 प्रारूप (YYYY-MM-DD) से बाहर है।
20009O parâmetro imagebase64 não foi informado.selfie छवि पैरामीटर अनुपस्थित।
20008The subject.email field is invalid.subject.email में अमान्य ईमेल प्रारूप।
20006O parâmetro subject.name não foi informado.subject.name पैरामीटर अनुपस्थित।
20005O parâmetro subject.code não foi informado.subject.code पैरामीटर अनुपस्थित।
20004O parâmetro subject não foi informado.subject पैरामीटर अनुपस्थित।
20003The request body is missing or invalid.Null या अमान्य payload।
20002O parâmetro APIKey não foi informado.APIKEY पैरामीटर अनुरोध header से अनुपस्थित।
20001O parâmetro authtoken não foi informado.integration token पैरामीटर अनुरोध header से अनुपस्थित।
10508The JWT with the captured face has already been used.JWT केवल एक बार उपयोग किया जा सकता है।
10507The JWT with the captured face is expired.JWT समाप्त हो गया; 10 मिनट के भीतर भेजना होगा।
10506The imageBase64 field is not a valid JWT from SDK.imageBase64 SDK द्वारा उत्पन्न वैध JWT नहीं है।

आगे क्या है​

  • किसी ऑनबोर्डिंग प्रक्रिया के परिणाम को query करने के लिए, Get Process देखें।
  • सभी recipe combinations और उनके संभावित result मानों को देखने के लिए, प्रवाह देखें।
  • Document और आयु सत्यापन operations के लिए, इस अनुभाग के संबंधित पृष्ठ देखें।