Buat Proses
Ini adalah titik masuk untuk setiap integrasi Unico API. Back-end Anda memanggilnya untuk membuat proses; front-end Anda menggunakan token yang dikembalikan untuk merender iFrame, mengarahkan pengguna, atau menginisialisasi SDK native.
Untuk alur integrasi lengkap, lihat Alur.
Endpoint
| Lingkungan | URL |
|---|---|
| Produksi | POST https://api.idcloud.unico.app/client/v1/process |
| Sandbox | POST https://api.idcloud.uat.unico.app/client/v1/process |
Permintaan
| Header | Nilai |
|---|---|
Authorization | Bearer <access_token> (lihat Autentikasi) |
Content-Type | application/json |
Apakah suatu field wajib, opsional, atau tidak berlaku bergantung pada flow yang Anda integrasikan — periksa Alur untuk recipe spesifik yang Anda gunakan, sebelum berasumsi tentang persyaratan suatu field hanya dari tabel ini.
| Field | Type | Description |
|---|---|---|
callbackUri | string | URL tempat pengguna diarahkan setelah perjalanan berakhir. Gunakan / untuk alur SDK native di mana callback ditangani di dalam aplikasi. |
flow | string | Identifier flow — menentukan kapabilitas mana yang berjalan. Contoh: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. Lihat Alur yang tersedia. |
purpose | string | Tujuan bisnis. Nilai yang diterima: creditprocess, biometryonboarding, carpurchase, ageverification. |
person.duiType | enum | Tipe dokumen. Lihat nilai duiType di bawah. |
person.duiValue | string | Nomor dokumen, tanpa format. |
person.friendlyName | string | Nama tampilan pengguna yang ditunjukkan di UI perjalanan. Maksimum 50 karakter. |
person.phone | string | Nomor telepon dalam format DDI + DDD + nomor, tanpa pemisah. Wajib saat mengirim notifikasi melalui SMS atau WhatsApp. |
person.email | string | Alamat email. Wajib untuk alur dengan Tanda Tangan Elektronik. |
person.notifications | array | Kanal notifikasi untuk mengirim link perjalanan. Setiap item memiliki notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS, atau NOTIFICATION_CHANNEL_EMAIL. |
references | array | Input referensi untuk alur Validasi 1:1 dan Revalidasi Cerdas. Setiap item berisi referenceType (REFERENCE_TYPE_IMAGE_BASE64 atau REFERENCE_TYPE_PROCESS_ID) dan referenceContent (gambar berenkode base64 atau UUID proses). Kirim maksimal satu item — array yang lebih panjang akan ditolak dengan 400, dan referenceContent tidak boleh kosong. |
useCase | string | Skenario Revalidasi Cerdas. Wajib untuk 🇧🇷 idsmart, idsmart_r2, idsmart_tp1. Contoh: USE_CASE_LOGIN, USE_CASE_FIN_TRANSACTIONS. |
clientReference | string | Identifier unik pengguna di sistem Anda. Wajib untuk kapabilitas Multi Akun. Unik dalam basis data Anda, maksimum 256 karakter, tanpa spasi. |
companyBranchId | string (UUID) | ID cabang. Hanya wajib jika akun layanan memiliki lebih dari satu cabang terkait. |
expiresIn | string | Jendela validitas proses sejak dibuat. Format: "3600s". Default 7 hari jika dihilangkan. |
flowConfig | object | Override konfigurasi per flow. |
flowConfig.biometryCapture.enabledBackCamera | boolean | Menggunakan kamera belakang perangkat. Tidak kompatibel dengan alur pengambilan dokumen atau Tanda Tangan Elektronik. |
contextualization | object | Konteks transaksi yang ditunjukkan kepada pengguna selama perjalanan untuk menjelaskan pengambilan gambar. Tersedia untuk klien di wilayah mana pun — tidak terbatas pada negara tertentu. |
contextualization.company_name | string | Nama perusahaan yang ditampilkan selama perjalanan. Maksimum 20 karakter. |
contextualization.currency | string | Kode mata uang yang ditampilkan kepada pengguna. Nilai yang diterima: BRL, MXN, USD. |
contextualization.price | number | Jumlah transaksi yang ditampilkan kepada pengguna. |
contextualization.locale | object | Teks lokal yang ditampilkan selama perjalanan. Kunci: ptBr, enUs, esMx — ini adalah satu-satunya bahasa yang didukung untuk teks, terlepas dari wilayah klien. |
contextualization.locale.{ptBr|enUs|esMx}.reason | string | Alasan singkat untuk pengambilan gambar, ditampilkan selama perjalanan. Maksimum 50 karakter. |
contextualization.locale.{ptBr|enUs|esMx}.title | string | Judul pemberitahuan pelanggan yang ditampilkan selama perjalanan. Maksimum 100 karakter. Harus disediakan bersama dengan text. Tag HTML akan dihapus. |
contextualization.locale.{ptBr|enUs|esMx}.text | string | Isi pemberitahuan pelanggan yang ditampilkan selama perjalanan. Maksimum 210 karakter. Harus disediakan bersama dengan title. Tag HTML akan dihapus. |
imageBase64 | string | Selfie, dikirim secara langsung. Menerima JWT pengambilan dari SDK. |
document.purpose | enum | Untuk apa dokumen tersebut. Kosakata tetap: DOCUMENT_PURPOSE_ONBOARDING, DOCUMENT_PURPOSE_CREDIT_PROCESS, DOCUMENT_PURPOSE_CAR_PURCHASE, DOCUMENT_PURPOSE_PAY_BY_PAYCHECK, DOCUMENT_PURPOSE_FGTS. Hanya digunakan dengan alur Face Document Match. |
document.files[].data | bytes | Pengambilan dokumen baru, berenkode base64. Tersedia secara global, tidak terbatas pada Brasil. Saling eksklusif dengan document.documentId. |
document.documentId | string (UUID) | Menggunakan kembali dokumen yang sudah diambil oleh orang yang sama, sebagai pengganti pengambilan baru. Saling eksklusif dengan document.files[]. |
expectedResult | object | Mensimulasikan hasil suatu kapabilitas di environment test/sandbox dan menandai respons dengan simulated: true. Lihat Simulasikan Hasil (Test Mock). |
Nilai duiType
| Negara | Nilai | Deskripsi |
|---|---|---|
| AR | DUI_TYPE_AR_PASSPORT | Paspor Argentina |
| AR | DUI_TYPE_AR_DNI | DNI Argentina |
| AR | DUI_TYPE_AR_LNC | SIM Argentina (Licencia Nacional de Conducir) |
| AT | DUI_TYPE_AT_STNR | Nomor Pajak Austria (STNR) |
| BE | DUI_TYPE_BE_NN | Nomor Nasional Belgia (NN) |
| BR | DUI_TYPE_BR_CPF | CPF Brasil |
| BR | DUI_TYPE_BR_PASSPORT | Paspor Brasil |
| BR | DUI_TYPE_BR_CNPJ | CNPJ Brasil |
| CA | DUI_TYPE_CA_SIN | SIN Kanada |
| CH | DUI_TYPE_CH_AHV | Nomor AHV/AVS Swiss |
| CL | DUI_TYPE_CL_RUN | RUN Chili |
| CL | DUI_TYPE_CL_PASSPORT | Paspor Chili |
| CL | DUI_TYPE_CL_LICENCIA_CONDUCIR | SIM Chili (Licencia de Conducir) |
| CO | DUI_TYPE_CO_NIT | NIT Kolombia |
| CO | DUI_TYPE_CO_PASSPORT | Paspor Kolombia |
| CO | DUI_TYPE_CO_LICENCIA_CONDUCCION | SIM Kolombia (Licencia de Conducción) |
| CO | DUI_TYPE_CO_CC | Kartu Kewarganegaraan Kolombia (Cédula de Ciudadanía) |
| DE | DUI_TYPE_DE_IDNR | Nomor Identifikasi Pajak Jerman (IdNr) |
| DK | DUI_TYPE_DK_CPR | CPR Denmark |
| EC | DUI_TYPE_EC_NI | NI Ekuador |
| ES | DUI_TYPE_ES_NIE | Nomor Identitas Warga Asing Spanyol (NIE) |
| ES | DUI_TYPE_ES_DNI | Dokumen Identitas Nasional Spanyol (DNI) |
| FI | DUI_TYPE_FI_HETU | Kode Identitas Pribadi Finlandia (HETU) |
| FR | DUI_TYPE_FR_SPI | Nomor Referensi Pajak Prancis (SPI) |
| GB | DUI_TYPE_GB_NINO | Nomor Asuransi Nasional Inggris (NINO) |
| GT | DUI_TYPE_GT_CUI | CUI Guatemala |
| ID | DUI_TYPE_ID_NIK | NIK Indonesia |
| IE | DUI_TYPE_IE_PPSN | Nomor Layanan Publik Pribadi Irlandia (PPSN) |
| IT | DUI_TYPE_IT_CF | Codice Fiscale Italia (CF) |
| LK | DUI_TYPE_LK_NIC | NIC Sri Lanka |
| LU | DUI_TYPE_LU_MATRICULE | Nomor Identifikasi Nasional Luksemburg (Matricule) |
| MX | DUI_TYPE_MX_CURP | CURP Meksiko |
| MX | DUI_TYPE_MX_RFC_PERSONA_FISICA | RFC Meksiko (Perorangan) |
| MX | DUI_TYPE_MX_LICENCIA_CONDUCIR | SIM Meksiko (Licencia de Conducir) |
| NG | DUI_TYPE_NG_NIN | NIN Nigeria |
| NG | DUI_TYPE_NG_BVN | Nomor Verifikasi Bank Nigeria (BVN) |
| NG | DUI_TYPE_NG_BVN_TOKEN | Token BVN Nigeria (hash) |
| NG | DUI_TYPE_NG_NIN_TOKEN | Token NIN Nigeria (hash) |
| NL | DUI_TYPE_NL_BSN | Nomor Layanan Warga Negara Belanda (BSN) |
| NO | DUI_TYPE_NO_FNR | Nomor Identitas Nasional Norwegia (Fødselsnummer) |
| PE | DUI_TYPE_PE_RUC | RUC Peru |
| PE | DUI_TYPE_PE_DNI | DNI Peru |
| PE | DUI_TYPE_PE_PASSPORT | Paspor Peru |
| PL | DUI_TYPE_PL_PESEL | PESEL Polandia |
| PT | DUI_TYPE_PT_NIF | Nomor Identifikasi Pajak Portugal (NIF) |
| SE | DUI_TYPE_SE_PNR | Nomor Pribadi Swedia (PNR) |
| SE | DUI_TYPE_SE_SAMORDNINGSNUMMER | Nomor Koordinasi Swedia (Samordningsnummer) |
| TR | DUI_TYPE_TR_TCKN | Nomor Identifikasi Turki (TCKN) |
| US | DUI_TYPE_US_SSN | SSN Amerika Serikat |
| US | DUI_TYPE_US_PASSPORT | Paspor Amerika Serikat |
| US | DUI_TYPE_US_DRIVER_LICENSE | SIM Amerika Serikat |
| US | DUI_TYPE_US_PASSPORT_CARD | Kartu Paspor Amerika Serikat |
| US | DUI_TYPE_US_POLYCARBONATE_PASSPORT | Paspor Polikarbonat Amerika Serikat |
| US | DUI_TYPE_US_ID_CARD | Kartu Identitas Amerika Serikat |
| UY | DUI_TYPE_UY_CI | CI Uruguay |
| ZZ | DUI_TYPE_ZZ_EMAIL | Alamat email |
| ZZ | DUI_TYPE_ZZ_PHONE_NUMBER | Nomor telepon |
Jika flow mengizinkan dokumen opsional, Anda dapat menghilangkan person.duiType dan person.duiValue. Setelah pengambilan gambar, proses menunggu dalam state AWAITING_FOR_DOCUMENT hingga back-end Anda mengirim dokumen dengan Tetapkan Dokumen Proses.
Contoh
- cURL
- Node.js
curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"flow": "idunicodocs_r2",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"callbackUri": "https://your-app.example.com/onboarding/callback",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
}
}'
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({
flow: 'idunicodocs_r2',
purpose: 'biometryonboarding',
clientReference: 'pedido-88216',
callbackUri: 'https://your-app.example.com/onboarding/callback',
person: {
duiType: 'DUI_TYPE_BR_CPF',
duiValue: '12345678909',
},
}),
});
const { process: proc } = await res.json();
// proc.userRedirectUrl, proc.token, proc.webAppToken
Respons
{
"process": {
"id": "b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"flow": "idunicodocs_r2",
"state": "PROCESS_STATE_CREATED",
"result": "PROCESS_RESULT_UNSPECIFIED",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
},
"capacities": [
"PROCESS_CAPACITY_IDLIVE",
"PROCESS_CAPACITY_IDUNICO",
"PROCESS_CAPACITY_IDDOCS"
],
"authenticationInfo": {
"authenticationId": ""
},
"companyData": {
"branchId": "",
"countryCode": "BRA"
},
"callbackUri": "https://your-app.example.com/onboarding/callback",
"userRedirectUrl": "https://cadastro.unico.app/flow?id=b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…",
"webAppToken": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiZGlyIn0…",
"simulated": false
}
}
| Field | Type | Description |
|---|---|---|
process.id | string (UUID) | Identifier proses. Gunakan untuk mengambil hasil melalui Dapatkan Proses. |
process.state | enum | PROCESS_STATE_CREATED — proses dibuat, perjalanan belum dimulai. PROCESS_STATE_FAILED — pembuatan proses gagal. |
process.result | enum | Hasil verifikasi. Hanya ada saat state = PROCESS_STATE_FINISHED — lihat Alur untuk nilai hasil yang dapat dikembalikan oleh suatu flow. |
process.flow | string | Identifier flow yang dikirim saat pembuatan. |
process.purpose | string | Tujuan bisnis yang dikirim saat pembuatan. |
process.callbackUri | string | Callback URI yang dikirim saat pembuatan. |
process.clientReference | string | Identifier internal Anda yang dikirim saat pembuatan. Hanya ada jika disediakan dalam permintaan. |
process.companyBranchId | string (UUID) | ID cabang. Hanya ada jika disediakan dalam permintaan. |
process.userRedirectUrl | string | URL untuk mengarahkan pengguna (integrasi Web Redirect dan iFrame). Jangan mengubah URL ini. |
process.token | string | JWT untuk menginisialisasi Web SDK iFrame. |
process.webAppToken | string | JWT untuk menginisialisasi SDK native (Android, iOS, Flutter). |
process.createdAt | string (date-time) | Timestamp saat proses dibuat. |
process.expiresAt | string (date-time) | Timestamp setelah proses kedaluwarsa dan tidak dapat lagi diselesaikan. |
process.capacities | array | Kapabilitas yang dikonfigurasi untuk proses ini. |
process.authenticationInfo | object | Informasi autentikasi untuk proses (kosong saat pembuatan). |
process.person | object | Cerminan dari objek person yang dikirim saat pembuatan. |
process.companyData.branchId | string (UUID) | ID cabang yang terkait dengan proses. |
process.companyData.countryCode | string | Kode negara yang terkait dengan cabang (misalnya, BR, MX). |
Kode Error
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
| Code | Message | Description |
|---|---|---|
3 | invalid flow | Ketika flow yang ditentukan tidak ada. |
3 | invalid person: friendly name exceeds 50 characters. | Ketika friendly name melebihi 50 karakter. |
3 | invalid purpose | Ketika purpose yang diberikan tidak valid. |
3 | invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url: | Ketika callbackUri yang diberikan tidak valid. |
3 | invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAIL | Ketika email yang diberikan tidak valid dan notifikasi email dikonfigurasi. |
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 | Ketika nomor telepon yang diberikan tidak valid dan notifikasi SMS atau WhatsApp dikonfigurasi. |
3 | idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui value | Ketika identifier (duiValue) yang diberikan tidak valid. |
3 | invalid expiresIn argument | Ketika nilai expiresIn tidak valid. |
3 | invalid company_name argument in process contextualization, max length is 20 | Ketika contextualization.company_name melebihi 20 karakter. |
3 | title and text must be provided together in process contexts | Ketika hanya salah satu dari title atau text yang disediakan dalam suatu locale. |
3 | invalid title argument in process contexts, max length is 100 | Ketika title suatu locale melebihi 100 karakter. |
3 | invalid text argument in process contexts, max length is 210 | Ketika text suatu locale melebihi 210 karakter. |
3 | invalid reason argument in process contexts, max length is 50 | Ketika reason suatu locale melebihi 50 karakter. |
3 | The references array must contain at most one element. | Ketika lebih dari satu item dikirim dalam references. |
3 | The references[].referenceContent field is missing. | Ketika referenceContent kosong. |
3 | The references[].referenceType field must be IMAGE_BASE64 or PROCESS_ID. | Ketika referenceType bukan salah satu nilai yang didukung. |
3 | A reference is required for this flow. | Ketika flow memerlukan referensi dan tidak ada yang dikirim. Kirim references[0] dengan referenceType PROCESS_ID atau IMAGE_BASE64. |
9 | The referenceProcessId field is invalid. | Ketika proses referensi tidak ada atau tidak dapat digunakan kembali. Menyebutkan nama field yang Anda kirim — bioTokenId jika itu yang Anda kirim. |
3 | INVALID_IMAGE | Ketika gambar bukan base64 yang valid, atau terlihat seperti upaya injeksi. |
3 | INVALID_DUI | Ketika nomor dokumen tidak standar atau tidak ada. |
3 | IMAGE_TOO_LARGE | Ketika gambar melebihi ukuran maksimum 800 KB. |
3 | UNSUPPORTED_IMAGE_FORMAT | Ketika format gambar bukan PNG, JPEG, atau WebP. |
3 | MISSING_IMAGE | Ketika gambar wajib untuk flow ini dan tidak dikirim. |
3 | MISSING_NAME | Ketika nama wajib untuk flow ini dan tidak dikirim. |
3 | MISSING_DUI | Ketika nomor dokumen wajib untuk flow ini dan tidak dikirim. |
3 | MISSING_PERSON | Ketika objek person wajib untuk flow ini dan tidak dikirim. |
3 | INVALID_REQUEST | Ketika body permintaan bernilai null atau tidak dapat diinterpretasikan. |
3 | TOKEN_ALREADY_USED | Ketika token pengambilan gambar sudah digunakan. Token ini hanya untuk sekali pakai. |
3 | TOKEN_EXPIRED | Ketika token pengambilan gambar sudah kedaluwarsa. Token harus digunakan dalam waktu 10 menit. |
3 | INVALID_BUNDLE | Ketika permintaan tidak memenuhi persyaratan keamanan. |
3 | INVALID_NAME | Ketika nama lebih panjang dari maksimum yang diizinkan. |
3 | INVALID_EMAIL | Ketika alamat email salah format atau terlalu panjang. |
3 | INVALID_PHONE | Ketika nomor telepon lebih panjang dari 20 karakter. |
3 | INVALID_DUI_TYPE | Ketika tipe dokumen bukan salah satu nilai yang didukung. |
3 | INVALID_CLIENT_REFERENCE | Ketika clientReference terlalu panjang, atau mengandung spasi atau #. |
3 | INVALID_CONSENT_TYPE | Ketika consentType bukan NONE, DIRECT, atau INDIRECT. |
3 | INVALID_USE_CASE | Ketika useCase tidak dikenali, atau terlalu panjang. |
3 | INVALID_DEVICE_TRUST_TOKEN | Ketika token device-trust tidak valid atau sudah digunakan. |
3 | TOO_MANY_REFERENCES | Ketika lebih dari satu item dikirim dalam references. |
3 | INVALID_REFERENCE_TYPE | Ketika referenceType bukan IMAGE_BASE64 atau PROCESS_ID. |
3 | INVALID_REFERENCE_PROCESS | Ketika ID proses referensi bukan identifier yang valid. |
3 | REFERENCE_PROCESS_NOT_FOUND | Ketika proses yang dirujuk tidak ada. |
3 | REFERENCE_PROCESS_NOT_READY | Ketika proses yang dirujuk tidak memiliki hasil yang dapat digunakan kembali, atau sudah digunakan. |
3 | REFERENCE_SELFIE_NOT_FOUND | Ketika proses yang dirujuk tidak membawa selfie untuk digunakan kembali. |
3 | INVALID_CAPTURE_TOKEN | Ketika gambar yang diambil bukan token valid yang dihasilkan oleh SDK pengambilan gambar. |
3 | INVALID_CAPTURE_SIGNATURE | Ketika signature token pengambilan gambar tidak valid. |
3 | PRIOR_CAPTURE_NOT_FOUND | Ketika pengambilan gambar sebelumnya yang menjadi dasar permintaan ini tidak dapat ditemukan. Mulai ulang proses. |
3 | PRIOR_CAPTURE_IN_PROGRESS | Ketika pengambilan gambar sebelumnya belum selesai. Coba lagi sesaat lagi. |
3 | PRIOR_CAPTURE_FAILED | Ketika pengambilan gambar sebelumnya tidak dapat diselesaikan. Mulai ulang proses. |
3 | INVALID_DOCUMENT | Ketika file dokumen tidak dapat dibaca, dilindungi kata sandi, atau dalam format yang tidak didukung. |
3 | INVALID_AUTH_PROCESS | Ketika document.authProcessId tidak valid, sudah kedaluwarsa, atau milik orang lain. |
3 | INVALID_DOCUMENT_PURPOSE | Ketika document.purpose bukan salah satu nilai yang didukung. |
3 | PROCESS_REUSE_NOT_ENABLED | Ketika flow tidak mengizinkan penggunaan kembali proses sebelumnya tanpa gambar. Kirim gambar sebagai gantinya. |
9 | PROCESS_FAILED | Ketika proses mengalami kegagalan terminal saat dibuat. |
9 | Tenant API key is not configured | Ketika API Key tidak dikonfigurasi dengan benar. |
Bearer token tidak ada, sudah kedaluwarsa, atau tidak valid. Lihat Autentikasi.
| Message | Description |
|---|---|
| Jwt header is an invalid JSON | Ketika access token yang digunakan mengandung karakter yang salah. |
| Jwt is expired | Ketika access token yang digunakan sudah kedaluwarsa. |
| Code | Message | Description |
|---|---|---|
7 | INVALID_API_KEY | Ketika API key tidak valid atau tidak ada. |
7 | INVALID_AUTH_TOKEN | Ketika token autentikasi tidak valid. |
7 | PERMISSION_DENIED | Ketika kredensial valid tetapi tidak memiliki hak untuk tindakan ini. |
7 | TOKEN_TENANT_MISMATCH | Ketika token pengambilan gambar diterbitkan untuk tenant yang berbeda. |
7 | MISSING_ACCESS_TOKEN | Ketika header authorization tidak ada. |
| Code | Message | Description |
|---|---|---|
5 | NO_RESULTS_FOUND | Ketika dokumen yang dirujuk oleh permintaan tidak dapat ditemukan. |
Batas rate tercapai. Ketika sistem Anda menerima error HTTP 429, Anda harus mengimplementasikan mekanisme untuk mencegah kegagalan berantai dan menghindari memperburuk pembatasan.
Praktik terbaik:
- Periode pendinginan (backoff): Segera hentikan atau kurangi permintaan berikutnya dari sistem Anda. Jangan terus-menerus mencoba ulang permintaan yang gagal dalam loop yang ketat.
- Antrean & pembatasan (Queueing & throttling): Buffer atau antrean permintaan keluar dari sisi Anda untuk mengontrol aliran lalu lintas sebelum mengirimnya kembali.
- Exponential backoff dengan jitter: Saat mencoba ulang, tingkatkan waktu tunggu secara eksponensial antar percobaan (misalnya, 1 s, 2 s, 4 s, 8 s) dan tambahkan penundaan acak kecil ("jitter") untuk mencegah efek kawanan di mana semua permintaan yang diantrean mencoba ulang pada milidetik yang sama persis.
Terus-menerus mengirim permintaan ke endpoint yang dibatasi rate tanpa menerapkan backoff dapat memperpanjang periode pembatasan dan sangat memengaruhi throughput operasional sistem Anda. Membatasi permintaan dengan benar dari sisi Anda memastikan integrasi yang lebih lancar dan lebih tangguh.
Untuk batas default, peningkatan permintaan, dan detail tambahan, lihat Batas Rate.
| Code | Message | Description |
|---|---|---|
13 | Internal failure! Try again later | Ketika terjadi error internal. |
Selanjutnya
- Setelah pengguna menyelesaikan perjalanan, panggil Dapatkan Proses untuk mengambil hasilnya, atau tunggu webhook.
- Untuk melihat semua kombinasi recipe dan nilai hasil yang mungkin, lihat Alur.
- Untuk menguji suatu hasil tanpa pengambilan biometrik sungguhan, lihat Simulasikan Hasil (Test Mock).