Simulasikan Hasil (Test Mock)
Di sandbox, Anda dapat mensimulasikan hasil proses tanpa bergantung pada pengambilan biometrik sungguhan. Tambahkan field expected_result ke body permintaan Buat Proses — sisa integrasi (rendering SDK, pengambilan biometrik, Dapatkan Proses) tetap persis sama seperti flow sungguhan.
Mock ini tidak melewatkan langkah pengambilan biometrik. Pengguna (atau skrip pengujian Anda) tetap perlu menyelesaikan flow normal — yang berubah adalah, setelah selesai, proses mengembalikan nilai yang ditentukan dalam expected_result, bukan hasil evaluasi sungguhan.
Setiap flow hanya menerima salah satu dari dua format di bawah ini, tergantung bagaimana flow tersebut dikonfigurasi:
| Format | Kapan digunakan |
|---|---|
id_cloud_one_result | Flow yang mengembalikan hasil tunggal (disetujui, ditolak, risiko tinggi, dst.) |
authentication_info | Flow yang mengembalikan sinyal individual (UnicoId, Trust, Liveness, IdAge, IdFace...) |
Mengirim format yang tidak sesuai dengan flow Anda, atau mengirim keduanya sekaligus, akan menghasilkan error — lihat Error.
Endpoint
| Lingkungan | URL |
|---|---|
| Sandbox | POST https://api.idcloud.uat.unico.app/client/v1/process |
Mock ini hanya tersedia di sandbox. Di production, field expected_result akan ditolak.
Gunakan ini ketika flow Anda mengembalikan hasil tunggal bergaya persetujuan.
Parameter body
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
expected_result.id_cloud_one_result | string | ya | Hasil tunggal yang akan disimulasikan. Harus berupa hasil yang benar-benar dihasilkan oleh flow Anda — periksa konfigurasi flow Anda untuk hasil yang dikenalinya. |
Contoh
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"
}
// ... parameter lainnya sama dengan yang digunakan pada panggilan Buat Proses sungguhan
}'
Respons (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 menandai proses ini sebagai memiliki hasil simulasi, bukan evaluasi sungguhan.
Nilai yang memungkinkan untuk id_cloud_one_result sama dengan nilai hasil proses yang didokumentasikan di Menafsirkan hasil — hanya kirim hasil yang benar-benar dikenali oleh flow Anda.
Gunakan ini ketika flow Anda mengembalikan sinyal terpisah, bukan hasil tunggal.
Setiap sinyal yang biasanya dikembalikan oleh flow Anda harus ada di authentication_info. Mengirim hanya sebagian akan ditolak — Anda tidak dapat mem-mock satu sinyal dan membiarkan sisanya menggunakan evaluasi sungguhan.
trust_result vs. identity_fraudsters_resulttrust_result dan identity_fraudsters_result merepresentasikan sinyal yang sama (indikasi penipuan identitas): trust_result mencakup sisi negatif, identity_fraudsters_result sisi positif. Gunakan salah satu yang sesuai dengan hasil yang ingin Anda simulasikan.
Untuk nilai yang memungkinkan pada setiap field, lihat Hasil kapabilitas dalam authenticationInfo.
Flow frictionless tidak didukung dalam format ini — lihat Sinyal tidak didukung.
Contoh
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"
}
}
// ... parameter lainnya sama dengan yang digunakan pada panggilan Buat Proses sungguhan
}'
Respons (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" }
}
}
Sinyal tidak didukung
Sinyal di bawah ini tidak didukung oleh mock, dalam format apa pun:
multi_accountsdata_mismatchserial_fraudstersmart_revalidation_resultpasskey_result(sudah usang)
Flow frictionless (autentikasi tanpa pengambilan biometrik) hanya didukung dalam format id_cloud_one_result — tidak berfungsi dengan authentication_info.
Catatan tentang respons
Skor hanya dikembalikan ketika hasil identitas tidak meyakinkan (inconclusive). Field score_engine_result hanya mencerminkan nilai ketika authentication_result adalah AUTHENTICATION_RESULT_INCONCLUSIVE. Jika Anda mem-mock authentication_result sebagai POSITIVE atau NEGATIVE bersamaan dengan score_engine_result yang bukan nol, respons akhir mengembalikan score_enabled: SCORE_ENABLED_FALSE dan score: 0, terlepas dari nilai yang dikirim.
Ini adalah perilaku normal API — aturan yang sama berlaku untuk proses sungguhan, tidak spesifik untuk mock. Jika skenario yang ingin Anda uji bergantung pada munculnya skor dalam respons, gunakan authentication_result: AUTHENTICATION_RESULT_INCONCLUSIVE.
Error
| Situasi | Error |
|---|---|
expected_result di luar sandbox | PERMISSION_DENIED |
id_cloud_one_result dan authentication_info dikirim bersamaan | INVALID_ARGUMENT |
authentication_info: {} kosong | INVALID_ARGUMENT |
authentication_info tidak menyertakan sinyal yang dikembalikan oleh flow | Error validasi — sertakan setiap sinyal |
Nilai id_cloud_one_result yang tidak dikenali oleh flow | Error validasi |
flow tidak mendukung mocking | Error validasi |
Selanjutnya
Setelah membuat proses yang di-mock, selesaikan pengambilan biometrik secara normal dan gunakan Dapatkan Proses untuk mengambil hasil yang di-mock.