प्रक्रिया बनाएं
यह हर Web & SDK इंटीग्रेशन का प्रवेश बिंदु है। आपका बैक-एंड प्रक्रिया बनाने के लिए इसे कॉल करता है; आपका फ्रंट-एंड iFrame रेंडर करने, उपयोगकर्ता को रीडायरेक्ट करने, या native SDK इनिशियलाइज़ करने के लिए लौटाए गए टोकन का उपयोग करता है।
पूर्ण इंटीग्रेशन फ्लो के लिए, देखें Web & SDK Overview।
एंडपॉइंट
| वातावरण | URL |
|---|---|
| प्रोडक्शन | POST https://api.idcloud.unico.app/client/v1/process |
| सैंडबॉक्स | POST https://api.idcloud.uat.unico.app/client/v1/process |
अनुरोध
हेडर
| हेडर | मान |
|---|---|
Authorization | Bearer <access_token> (देखें Authentication) |
Content-Type | application/json |
बॉडी पैरामीटर
| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
callbackUri | string | हाँ | वह URL जिस पर यात्रा समाप्त होने के बाद उपयोगकर्ता को रीडायरेक्ट किया जाता है। Native SDK फ्लो के लिए / उपयोग करें जहाँ कॉलबैक in-app संभाला जाता है। |
flow | string | हाँ | फ्लो पहचानकर्ता — निर्धारित करता है कि कौन सी क्षमताएं चलती हैं। उदाहरण: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart। देखें Available flows। |
purpose | string | हाँ | व्यावसायिक उद्देश्य। स्वीकृत मान: creditprocess, biometryonboarding, carpurchase, ageverification। |
person.duiType | enum | नहीं | दस्तावेज़ प्रकार। स्वीक ृत मान: DUI_TYPE_BR_CPF, DUI_TYPE_MX_CURP, DUI_TYPE_US_SSN, DUI_TYPE_BR_PASSPORT, DUI_TYPE_BR_CNPJ, DUI_TYPE_AR_PASSPORT, DUI_TYPE_AR_DNI, DUI_TYPE_AR_LNC, DUI_TYPE_NG_NIN, DUI_TYPE_CL_RUN, DUI_TYPE_CL_PASSPORT, DUI_TYPE_CL_LICENCIA_CONDUCIR, DUI_TYPE_EC_NI, DUI_TYPE_US_PASSPORT, DUI_TYPE_GT_CUI, DUI_TYPE_UY_CI, DUI_TYPE_ZZ_EMAIL, DUI_TYPE_ID_NIK, DUI_TYPE_ZZ_PHONE_NUMBER, DUI_TYPE_US_DRIVER_LICENSE, DUI_TYPE_US_PASSPORT_CARD, DUI_TYPE_US_POLYCARBONATE_PASSPORT, DUI_TYPE_US_ID_CARD, DUI_TYPE_NG_BVN, DUI_TYPE_NG_BVN_TOKEN, DUI_TYPE_NG_NIN_TOKEN, DUI_TYPE_MX_RFC_PERSONA_FISICA, DUI_TYPE_MX_LICENCIA_CONDUCIR, DUI_TYPE_CO_NIT, DUI_TYPE_CO_PASSPORT, DUI_TYPE_CO_LICENCIA_CONDUCCION, DUI_TYPE_CO_CC, DUI_TYPE_PE_RUC, DUI_TYPE_PE_DNI, DUI_TYPE_PE_PASSPORT, DUI_TYPE_CA_SIN, DUI_TYPE_DK_CPR, DUI_TYPE_GB_NINO, DUI_TYPE_PL_PESEL, DUI_TYPE_SE_PNR, DUI_TYPE_SE_SAMORDNINGSNUMMER, DUI_TYPE_AT_STNR, DUI_TYPE_CH_AHV, DUI_TYPE_FI_HETU, DUI_TYPE_NO_FNR, DUI_TYPE_DE_IDNR, DUI_TYPE_NL_BSN, DUI_TYPE_BE_NN, DUI_TYPE_IT_CF, DUI_TYPE_TR_TCKN, DUI_TYPE_PT_NIF, DUI_TYPE_FR_SPI, DUI_TYPE_IE_PPSN, DUI_TYPE_LU_MATRICULE, DUI_TYPE_ES_NIE, DUI_TYPE_ES_DNI। |
person.duiValue | string | नहीं | दस्तावेज़ संख्या, फ़ॉर्मेटि ंग के बिना। |
person.friendlyName | string | नहीं | यात्रा UI में दिखाया जाने वाला उपयोगकर्ता का डिस्प्ले नाम। अधिकतम 50 वर्ण। |
person.phone | string | नहीं | DDI + DDD + नंबर फ़ॉर्मेट में फ़ोन नंबर, बिना सेपरेटर के। SMS या WhatsApp के माध्यम से अधिसूचनाएं भेजते समय आवश्यक। |
person.email | string | नहीं | ईमेल पता। Electronic Signature वाले फ्लो के लिए आवश्यक। |
person.notifications | array | नहीं | यात्रा लिंक भेजने के लिए अधिसूचना चैनल। प्रत्येक आइटम में notificationChannel है: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS, या NOTIFICATION_CHANNEL_EMAIL। |
bioTokenId | string (UUID) | सशर्त | अप्रचलित। इसके बजाय references उपयोग करें। संदर्भ बायोमेट्रिक प्रक्रिया का ID। 1:1 सत्यापन फ्लो (idtoken, idtokentrust, idtokensign) और Smart Revalidation (idsmart) के लिए आवश्यक। |
references | array | सशर्त | 1:1 सत्यापन और Smart Revalidation फ्लो के लिए संदर्भ इनपुट, bioTokenId की जगह लेता है। प्रत्येक आइटम में referenceType (REFERENCE_TYPE_IMAGE_BASE64 या REFERENCE_TYPE_PROCESS_ID) और referenceContent (base64-एन्कोडेड छवि या प्रक्रिया UUID) है। |
useCase | string | सशर्त | Smart Revalidation परिस्थिति। idsmart के लिए आवश्यक। उदाहरण: USE_CASE_LOGIN, USE_CASE_IDENTITY_REVALIDATION_7_DAYS, USE_CASE_FIN_TRANSACTIONS। |
clientReference | string | सशर्त | आपके सिस्टम में उपयोगकर्ता का अद्वितीय पहचानकर्ता। मल्टी अकाउंट क्षमता के लिए आवश्यक। आपके आधार में अद्वितीय, अधिकतम 256 वर्ण, कोई स्पेस नहीं। |
companyBranchId | string (UUID) | नहीं | शाखा ID। केवल तब आवश्यक जब सेवा खाते से एक से अधिक शाखा जुड़ी हो। |
expiresIn | string | नहीं | निर्माण से प्रक्रिया वैधता विंडो। फ़ॉर्मेट: "3600s"। यदि छोड़ा जाए तो डिफ़ॉल्ट 7 दिन। |
flow_config | object | नहीं | प्रति-फ्लो कॉन्फ़िगरेशन ओवरराइड। |
flow_config.biometry_capture.enabled_back_camera | boolean | नहीं | डिवाइस का रियर कैमरा उपयोग करें। दस्तावेज़ कैप्चर या Electronic Signature फ्लो के साथ संगत नहीं। |
contextualization | object | नहीं | यात्रा के दौरान उपयोगकर्ता को कैप्चर समझाने के लिए दिखाया गया लेनदेन संदर्भ। |
contextualization.company_name | string | नहीं | यात्रा के दौरान दिखाया जाने वाला कंपनी का नाम। अधिकतम 20 वर्ण। |
contextualization.currency | string | नहीं | उपयोगकर्ता को दिखाया गया मुद्रा कोड। स्वीकृत मान: BRL, MXN, USD। |
contextualization.price | number | नहीं | उपयोगकर्ता को दिखाई गई लेनदेन राशि। |
contextualization.locale | object | नहीं | यात्रा के दौरान दिखाया जाने वाला स्थानीयकृत पाठ। कुंजियाँ: ptBr, enUs, esMx। |
contextualization.locale.{ptBr|enUs|esMx}.reason | string | नहीं | कैप्चर का संक्षिप्त कारण, यात्रा के दौरान दिखाया जाता है। अधिकतम 50 वर्ण। |
contextualization.locale.{ptBr|enUs|esMx}.title | string | नहीं | यात्रा के दौरान दिखाई जाने वाली ग्राहक सूचना का शीर्षक। अधिकतम 100 वर्ण। text के साथ मिलकर प्रदान किया जाना चाहिए। HTML टैग हटा दिए जाते हैं। |
contextualization.locale.{ptBr|enUs|esMx}.text | string | नहीं | यात्रा के दौरान दिखाई जाने वाली ग्राहक सूचना का मुख्य भाग। अधिकतम 210 वर्ण। title के साथ मिलकर प्रदान किया जाना चाहिए। HTML टैग हटा दिए जाते हैं। |
उदाहरण
- cURL
- Node.js
curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUri": "https://app.client.com/callback",
"flow": "idunicodocs",
"purpose": "biometryonboarding",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]"
}
}'
import fetch from 'node-fetch';
const res = await fetch('https://api.idcloud.unico.app/client/v1/process', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UNICO_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
callbackUri: 'https://app.client.com/callback',
flow: 'idunicodocs',
purpose: 'biometryonboarding',
person: {
duiType: 'DUI_TYPE_BR_CPF',
duiValue: '12345678909',
friendlyName: 'Luke Skywalker',
phone: '5511912345678',
}
})
});
const { process: proc } = await res.json();
// proc.userRedirectUrl, proc.token, proc.webAppToken
प्रतिक्रियाएं
200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_CREATED",
"flow": "idunicosign",
"purpose": "biometryonboarding",
"callbackUri": "https://app.client.com/callback",
"clientReference": "your-internal-id-123",
"companyBranchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userRedirectUrl": "https://cadastro.unico.app/process/53060f52-f146-4c12-a234-5bb5031f6f5b",
"token": "eyJhbGciOiJSUzI1NiIs...",
"webAppToken": "eyJhbGciOiJSUzI1NiIs...",
"createdAt": "2023-10-09T09:15:25.417105Z",
"expiresAt": "2023-10-09T16:15:25.417105Z",
"capacities": [],
"authenticationInfo": {},
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"notifications": []
},
"companyData": {
"branchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"countryCode": "BR"
}
}
}
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
process.id | string (UUID) | प्रक्रिया पहचानकर्ता। Get Process के माध्यम से परिणाम प्राप्त करने के लिए इसका उपयोग करें। |
process.state | enum | PROCESS_STATE_CREATED — प्रक्रिया बनाई गई, यात्रा अभी शुरू नहीं हुई। PROCESS_STATE_FAILED — प्रक्रिया निर्माण विफल। |
process.flow | string | निर्माण के समय भेजा गया फ्लो पहचानकर्ता। |
process.purpose | string | निर्माण के समय भेजा गया व्यावसायिक उद्देश्य। |
process.callbackUri | string | निर्माण के समय भेजा गया कॉलबैक URI। |
process.clientReference | string | निर्माण के समय भेजा गया आपका आंतरिक पहचानकर्ता। केवल तब उपस्थित जब अनुरोध में प्रदान किया गया हो। |
process.companyBranchId | string (UUID) | शाखा ID। केवल तब उपस्थित जब अनुरोध में प्रदान किया गया हो। |
process.userRedirectUrl | string | उपयोगकर्ता को रीडायरेक्ट करने का URL (Web Redirect और iFrame इंटीग्रेशन)। इस URL को संशोधित न करें। |
process.token | string | Web SDK iFrame इनिशियलाइज़ करने के लिए JWT। |
process.webAppToken | string | Native SDKs (Android, iOS, Flutter) इनिशियलाइज़ करने के लिए JWT। |
process.createdAt | string (date-time) | प्रक्रिया बनाए जाने का टाइमस्टैंप। |
process.expiresAt | string (date-time) | वह टाइमस्टैंप जिसके बाद प्रक्रिया समाप्त हो जाती है और अब पूरी नहीं की जा सकती। |
process.capacities | array | इस प्रक्रिया के लिए कॉन्फ़िगर की गई क्षमताएं। |
process.authenticationInfo | object | प्रक्रिया के लिए प्रमाणीकरण जानकारी (निर्माण के समय खाली)। |
process.person | object | निर्माण के समय भेजे गए person ऑब्जेक्ट की प्रतिध्वनि। |
process.companyData.branchId | string (UUID) | प्रक्रिया से जुड़ी शाखा ID। |
process.companyData.countryCode | string | शाखा से जुड़ा देश कोड (जैसे BR, MX)। |
त्रुटि कोड
- 400 Bad Request
- 401 Unauthorized
- 429 Too Many Requests
- 500 Internal Server Error
| कोड | संदेश | विवरण |
|---|---|---|
3 | invalid flow | जब निर्दिष्ट फ्लो मौजूद न हो। |
3 | invalid person: friendly name exceeds 50 characters. | जब friendly name 50 वर्ण से अधिक हो। |
3 | invalid purpose | जब प्रदान किया गया उद्देश्य अमान्य हो। |
3 | invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url: | जब प्रदान किया गया callbackUri अमान्य हो। |
3 | invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAIL | जब प्रदान किया गया ईमेल अमान्य हो और ईमेल अधिसूचना कॉन्फ़िगर हो। |
3 | invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPP | जब प्रदान किया गया फ़ोन नंबर अमान्य हो और SMS या WhatsApp अधिसूचना कॉन्फ़िगर हो। |
3 | idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui value | जब प्रदान किया गया पहचानकर्ता (duiValue) अमान्य हो। |
3 | invalid expiresIn argument | जब expiresIn मान अमान्य हो। |
3 | invalid company_name argument in process contextualization, max length is 20 | जब contextualization.company_name 20 वर्णों से अधिक हो। |
3 | title and text must be provided together in process contexts | जब किसी locale में केवल title या केवल text में से एक प्रदान किया गया हो। |
3 | invalid title argument in process contexts, max length is 100 | जब किसी locale का title 100 वर्णों से अधिक हो। |
3 | invalid text argument in process contexts, max length is 210 | जब किसी locale का text 210 वर्णों से अधिक हो। |
3 | invalid reason argument in process contexts, max length is 50 | जब किसी locale का reason 50 वर्णों से अधिक हो। |
9 | XX ID Apikeys are not set | जब API Key ठीक से कॉन्फ़िगर नहीं हो। |
Bearer टोकन अनुपस्थित, समाप्त, या अमान्य। देखें Authentication।
| संदेश | विवरण |
|---|---|
| Jwt header is an invalid JSON | जब उपयोग किए गए एक्सेस टोकन में गलत वर्ण हों। |
| Jwt is expired | जब उपयोग किया गया एक्सेस टोकन समाप्त हो गया हो। |
दर सीमा पहुँच गई। प्रतिक्रिया हेडर में दर्शाए गए अंतराल के बाद पुनः प्रयास करें।
| कोड | संदेश | विवरण |
|---|---|---|
99999 | Internal failure! Try again later | जब कोई आंतरिक त्रुटि हो। |
आगे क्या
- उपयोगकर्ता द्वारा यात्रा पूरी करने के बाद, परिणाम प्राप्त करने के लिए Get Process कॉल करें, या webhook की प्रतीक्षा करें।
- सभी recipe combinations और उनके संभावित result मानों को देखने के लिए, प्रवाह देखें।