रिज़ल्ट सिमुलेट करना (Test Mock)
sandbox में, आप बिना किसी असली बायोमेट्रिक कैप्चर पर निर्भर हुए किसी प्रोसेस के रिज़ल्ट को सिमुलेट कर सकते हैं। प्रोसेस बनाएं रिक्वेस्ट बॉडी में expected_result field जोड़ें — बाकी इंटीग्रेशन (SDK रेंडरिंग, बायोमेट्रिक कैप्चर, प्रोसेस प्राप्त करें) असली फ़्लो जैसा ही रहता है।
मॉक बायोमेट्रिक कैप्चर स्टेप को स्किप नहीं करता। यूज़र (या आपकी टेस्ट स्क्रिप्ट) को अब भी सामान्य फ़्लो पूरा करना होता है — जो बदलता है वह यह है कि पूरा होने पर, प्रोसेस असली मूल्यांकन रिज़ल्ट के बजाय expected_result में परिभाषित वैल्यू लौटाता है।
हर flow अपने कॉन्फ़ि गरेशन के आधार पर नीचे दिए गए दो फ़ॉर्मेट में से केवल एक को स्वीकार करता है:
| Format | When to use |
|---|---|
id_cloud_one_result | ऐसे फ़्लो जो एक सिंगल रिज़ल्ट लौटाते हैं (approved, denied, high risk, आदि) |
authentication_info | ऐसे फ़्लो जो अलग-अलग सिग्नल लौटाते हैं (UnicoId, Trust, लाइवनेस, IdAge, IdFace...) |
आपके flow से मेल न खाने वाला फ़ॉर्मेट भेजने, या दोनों को एक साथ भेजने पर एरर आता है — देखें त्रुटियाँ।
एंडपॉइंट
| Environment | URL |
|---|---|
| Sandbox | POST https://api.idcloud.uat.unico.app/client/v1/process |
मॉक केवल sandbox में उपलब्ध है। production में, expected_result field को रिजेक्ट कर दिया जाता है।
इसका इस्तेमाल तब करें जब आपका flow एक ही अप्रूवल-जैसा रिज़ल्ट लौटाता है।
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
expected_result.id_cloud_one_result | string | yes | सिमुलेट करने के लिए सिंगल रिज़ल्ट। यह ऐसा रिज़ल्ट होना चाहिए जो आपका flow वाकई प्रोड्यूस करता हो — जिन रिज़ल्ट को वह पहचानता है, उनके लिए अपने flow के कॉन्फ़िगरेशन की जाँच करें। |
उदाहरण
curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"id_cloud_one_result": "PROCESS_RESULT_APPROVED"
}
// ... the remaining parameters are the same ones you use on a real Create Process call
}'
रिस्पॉन्स (200 OK)
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDCHECK"],
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}
simulated: true इस प्रोसेस को एक सिमुलेटेड रिज़ल्ट के रूप में चिह्नित करता है, असली मूल्यांकन के रूप में नहीं।
id_cloud_one_result की संभावित वैल्यू वही प्रोसेस रिज़ल्ट वैल्यू हैं जो रिज़ल्ट की व्याख्या में डॉक्यूमेंटेड हैं — केवल वही रिज़ल्ट भेजें जिसे आपका flow वाकई पहचानता है।
इसका इस्तेमाल तब करें जब आपका flow एक सिंगल रिज़ल्ट के बजाय अलग-अलग सिग्नल लौटाता हो।
आपका flow सामान्य रूप से जो भी सिग्नल लौटाता है, वे सभी authentication_info में मौजूद होने चाहिए। इनमें से केवल कुछ भेजना रिजेक्ट कर दिया जाता है — आप एक सिग्नल को मॉक करके बाकी को असली मूल्यांकन पर नहीं छोड़ सकते।
trust_result बनाम identity_fraudsters_resulttrust_result और identity_fraudsters_result एक ही सिग्नल (आइडेंटिटी फ़्रॉड इंडिकेशन) को दर्शाते हैं: trust_result नेगेटिव पक्ष को कवर करता है, identity_fraudsters_result पॉज़िटिव पक्ष को। जो भी आपके सिमुलेट किए जाने वाले रिज़ल्ट से मेल खाता हो, उसका इस्तेमाल करें।
हर field की संभावित वैल्यू के लिए, देखें Capability results in authenticationInfo।
Frictionless फ़्लो इस फ़ॉर्मेट में सपोर्टेड नहीं हैं — देखें असमर्थित सिग्नल।
उदाहरण
curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"authentication_info": {
"authentication_result": "AUTHENTICATION_RESULT_POSITIVE",
"liveness_result": "LIVENESS_RESULT_LIVE",
"id_age_result": "ID_AGE_RESULT_POSITIVE"
}
}
// ... the remaining parameters are the same ones you use on a real Create Process call
}'
रिस्पॉन्स (200 OK)
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDUNICO", "PROCESS_CAPACITY_IDAGE"],
"authenticationInfo": {
"authenticationResult": "AUTHENTICATION_RESULT_POSITIVE",
"livenessResult": "LIVENESS_RESULT_LIVE",
"idAgeResult": "ID_AGE_RESULT_POSITIVE"
},
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}
असमर्थित सिग्नल
नीचे दिए गए सिग्नल मॉक द्वारा किसी भी फ़ॉर्मेट में सपोर्टेड नहीं हैं:
multi_accountsdata_mismatchserial_fraudstersmart_revalidation_resultpasskey_result(deprecated)
Frictionless फ़्लो (बिना बायोमेट्रिक कैप्चर के ऑथेंटिकेशन) केवल id_cloud_one_result फ़ॉर्मेट में सपोर्टेड हैं — ये authentication_info के साथ काम नहीं करते।
रिस्पॉन्स से जुड़े नोट्स
स्कोर तभी लौटाया जाता है जब आइडेंटिटी रिज़ल्ट अनिर्णायक (inconclusive) हो। score_engine_result field तभी कोई वैल्यू दिखाता है जब authentication_result, AUTHENTICATION_RESULT_INCONCLUSIVE हो। अगर आप authentication_result को POSITIVE या NEGATIVE के रूप में एक नॉन-ज़ीरो score_engine_result के साथ मॉक करते हैं, तो अंतिम रिस्पॉन्स भेजी गई वैल्यू की परवाह किए बिना score_enabled: SCORE_ENABLED_FALSE और score: 0 लौटाता है।
यह API का सामान्य व्यवहार है — यही नियम असली प्रोसेस पर भी लागू होता है, यह मॉक के लिए विशिष्ट नहीं है। अगर आप जिस सिनैरियो को टेस्ट करना चाहते हैं वह रिस्पॉन्स में स्कोर दिखने पर निर्भर करता है, तो authentication_result: AUTHENTICATION_RESULT_INCONCLUSIVE इस्तेमाल करें।
त्रुटियाँ
| Situation | Error |
|---|---|
expected_result sandbox के बाहर | PERMISSION_DENIED |
id_cloud_one_result और authentication_info एक साथ भेजे गए | INVALID_ARGUMENT |
खाली authentication_info: {} | INVALID_ARGUMENT |
authentication_info में flow द्वारा लौटाया जाने वाला कोई सिग्नल गायब है | वैलिडेशन एरर — हर सिग्नल शामिल करें |
id_cloud_one_result वैल्यू जिसे flow पहचानता नहीं है | वैलिडेशन एरर |
flow मॉकिंग सपोर्ट नहीं करता | वैलिडेशन एरर |
आगे क्या
मॉक्ड प्रोसेस बनाने के बाद, सामान्य रूप से बायोमेट्रिक कैप्चर पूरा करें और मॉक्ड रिज़ल्ट प्राप्त करने के लिए प्रोसेस प्राप्त करें का इस्तेमाल करें।