Lewati ke konten utama

Buat Proses

MarkdownChatGPTClaude

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​

LingkunganURL
ProduksiPOST https://api.idcloud.unico.app/client/v1/process
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

Permintaan​

Headers
HeaderNilai
AuthorizationBearer <access_token> (lihat Autentikasi)
Content-Typeapplication/json
Parameter body
Persyaratan field bergantung pada flow

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.

FieldTypeDescription
callbackUristringURL tempat pengguna diarahkan setelah perjalanan berakhir. Gunakan / untuk alur SDK native di mana callback ditangani di dalam aplikasi.
flowstringIdentifier flow — menentukan kapabilitas mana yang berjalan. Contoh: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. Lihat Alur yang tersedia.
purposestringTujuan bisnis. Nilai yang diterima: creditprocess, biometryonboarding, carpurchase, ageverification.
person.duiTypeenumTipe dokumen. Lihat nilai duiType di bawah.
person.duiValuestringNomor dokumen, tanpa format.
person.friendlyNamestringNama tampilan pengguna yang ditunjukkan di UI perjalanan. Maksimum 50 karakter.
person.phonestringNomor telepon dalam format DDI + DDD + nomor, tanpa pemisah. Wajib saat mengirim notifikasi melalui SMS atau WhatsApp.
person.emailstringAlamat email. Wajib untuk alur dengan Tanda Tangan Elektronik.
person.​notificationsarrayKanal notifikasi untuk mengirim link perjalanan. Setiap item memiliki notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS, atau NOTIFICATION_CHANNEL_EMAIL.
referencesarrayInput 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.
useCasestringSkenario Revalidasi Cerdas. Wajib untuk 🇧🇷 idsmart, idsmart_r2, idsmart_tp1. Contoh: USE_CASE_LOGIN, USE_CASE_FIN_TRANSACTIONS.
clientReferencestringIdentifier unik pengguna di sistem Anda. Wajib untuk kapabilitas Multi Akun. Unik dalam basis data Anda, maksimum 256 karakter, tanpa spasi.
companyBranchIdstring (UUID)ID cabang. Hanya wajib jika akun layanan memiliki lebih dari satu cabang terkait.
expiresInstringJendela validitas proses sejak dibuat. Format: "3600s". Default 7 hari jika dihilangkan.
flowConfigobjectOverride konfigurasi per flow.
flowConfig.​biometryCapture.​enabledBackCamerabooleanMenggunakan kamera belakang perangkat. Tidak kompatibel dengan alur pengambilan dokumen atau Tanda Tangan Elektronik.
contextualizationobjectKonteks 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_namestringNama perusahaan yang ditampilkan selama perjalanan. Maksimum 20 karakter.
contextualization.​currencystringKode mata uang yang ditampilkan kepada pengguna. Nilai yang diterima: BRL, MXN, USD.
contextualization.​pricenumberJumlah transaksi yang ditampilkan kepada pengguna.
contextualization.​localeobjectTeks 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}.reasonstringAlasan singkat untuk pengambilan gambar, ditampilkan selama perjalanan. Maksimum 50 karakter.
contextualization.locale.{ptBr|enUs|esMx}.titlestringJudul pemberitahuan pelanggan yang ditampilkan selama perjalanan. Maksimum 100 karakter. Harus disediakan bersama dengan text. Tag HTML akan dihapus.
contextualization.locale.{ptBr|enUs|esMx}.textstringIsi pemberitahuan pelanggan yang ditampilkan selama perjalanan. Maksimum 210 karakter. Harus disediakan bersama dengan title. Tag HTML akan dihapus.
imageBase64stringSelfie, dikirim secara langsung. Menerima JWT pengambilan dari SDK.
document.purposeenumUntuk 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[].​databytesPengambilan dokumen baru, berenkode base64. Tersedia secara global, tidak terbatas pada Brasil. Saling eksklusif dengan document.documentId.
document.documentIdstring (UUID)Menggunakan kembali dokumen yang sudah diambil oleh orang yang sama, sebagai pengganti pengambilan baru. Saling eksklusif dengan document.files[].
expectedResultobjectMensimulasikan hasil suatu kapabilitas di environment test/sandbox dan menandai respons dengan simulated: true. Lihat Simulasikan Hasil (Test Mock).
Nilai duiType
NegaraNilaiDeskripsi
ARDUI_TYPE_AR_PASSPORTPaspor Argentina
ARDUI_TYPE_AR_DNIDNI Argentina
ARDUI_TYPE_AR_LNCSIM Argentina (Licencia Nacional de Conducir)
ATDUI_TYPE_AT_STNRNomor Pajak Austria (STNR)
BEDUI_TYPE_BE_NNNomor Nasional Belgia (NN)
BRDUI_TYPE_BR_CPFCPF Brasil
BRDUI_TYPE_BR_PASSPORTPaspor Brasil
BRDUI_TYPE_BR_CNPJCNPJ Brasil
CADUI_TYPE_CA_SINSIN Kanada
CHDUI_TYPE_CH_AHVNomor AHV/AVS Swiss
CLDUI_TYPE_CL_RUNRUN Chili
CLDUI_TYPE_CL_PASSPORTPaspor Chili
CLDUI_TYPE_CL_LICENCIA_CONDUCIRSIM Chili (Licencia de Conducir)
CODUI_TYPE_CO_NITNIT Kolombia
CODUI_TYPE_CO_PASSPORTPaspor Kolombia
CODUI_TYPE_CO_LICENCIA_CONDUCCIONSIM Kolombia (Licencia de Conducción)
CODUI_TYPE_CO_CCKartu Kewarganegaraan Kolombia (Cédula de Ciudadanía)
DEDUI_TYPE_DE_IDNRNomor Identifikasi Pajak Jerman (IdNr)
DKDUI_TYPE_DK_CPRCPR Denmark
ECDUI_TYPE_EC_NINI Ekuador
ESDUI_TYPE_ES_NIENomor Identitas Warga Asing Spanyol (NIE)
ESDUI_TYPE_ES_DNIDokumen Identitas Nasional Spanyol (DNI)
FIDUI_TYPE_FI_HETUKode Identitas Pribadi Finlandia (HETU)
FRDUI_TYPE_FR_SPINomor Referensi Pajak Prancis (SPI)
GBDUI_TYPE_GB_NINONomor Asuransi Nasional Inggris (NINO)
GTDUI_TYPE_GT_CUICUI Guatemala
IDDUI_TYPE_ID_NIKNIK Indonesia
IEDUI_TYPE_IE_PPSNNomor Layanan Publik Pribadi Irlandia (PPSN)
ITDUI_TYPE_IT_CFCodice Fiscale Italia (CF)
LKDUI_TYPE_LK_NICNIC Sri Lanka
LUDUI_TYPE_LU_MATRICULENomor Identifikasi Nasional Luksemburg (Matricule)
MXDUI_TYPE_MX_CURPCURP Meksiko
MXDUI_TYPE_MX_RFC_PERSONA_FISICARFC Meksiko (Perorangan)
MXDUI_TYPE_MX_LICENCIA_CONDUCIRSIM Meksiko (Licencia de Conducir)
NGDUI_TYPE_NG_NINNIN Nigeria
NGDUI_TYPE_NG_BVNNomor Verifikasi Bank Nigeria (BVN)
NGDUI_TYPE_NG_BVN_TOKENToken BVN Nigeria (hash)
NGDUI_TYPE_NG_NIN_TOKENToken NIN Nigeria (hash)
NLDUI_TYPE_NL_BSNNomor Layanan Warga Negara Belanda (BSN)
NODUI_TYPE_NO_FNRNomor Identitas Nasional Norwegia (Fødselsnummer)
PEDUI_TYPE_PE_RUCRUC Peru
PEDUI_TYPE_PE_DNIDNI Peru
PEDUI_TYPE_PE_PASSPORTPaspor Peru
PLDUI_TYPE_PL_PESELPESEL Polandia
PTDUI_TYPE_PT_NIFNomor Identifikasi Pajak Portugal (NIF)
SEDUI_TYPE_SE_PNRNomor Pribadi Swedia (PNR)
SEDUI_TYPE_SE_SAMORDNINGSNUMMERNomor Koordinasi Swedia (Samordningsnummer)
TRDUI_TYPE_TR_TCKNNomor Identifikasi Turki (TCKN)
USDUI_TYPE_US_SSNSSN Amerika Serikat
USDUI_TYPE_US_PASSPORTPaspor Amerika Serikat
USDUI_TYPE_US_DRIVER_LICENSESIM Amerika Serikat
USDUI_TYPE_US_PASSPORT_CARDKartu Paspor Amerika Serikat
USDUI_TYPE_US_POLYCARBONATE_PASSPORTPaspor Polikarbonat Amerika Serikat
USDUI_TYPE_US_ID_CARDKartu Identitas Amerika Serikat
UYDUI_TYPE_UY_CICI Uruguay
ZZDUI_TYPE_ZZ_EMAILAlamat email
ZZDUI_TYPE_ZZ_PHONE_NUMBERNomor telepon
Membuat proses tanpa dokumen

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 -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"
}
}'

Respons​

200 OK
{
"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
}
}
FieldTypeDescription
process.idstring (UUID)Identifier proses. Gunakan untuk mengambil hasil melalui Dapatkan Proses.
process.stateenumPROCESS_STATE_CREATED — proses dibuat, perjalanan belum dimulai. PROCESS_STATE_FAILED — pembuatan proses gagal.
process.resultenumHasil verifikasi. Hanya ada saat state = PROCESS_STATE_FINISHED — lihat Alur untuk nilai hasil yang dapat dikembalikan oleh suatu flow.
process.flowstringIdentifier flow yang dikirim saat pembuatan.
process.purposestringTujuan bisnis yang dikirim saat pembuatan.
process.callbackUristringCallback URI yang dikirim saat pembuatan.
process.​clientReferencestringIdentifier internal Anda yang dikirim saat pembuatan. Hanya ada jika disediakan dalam permintaan.
process.​companyBranchIdstring (UUID)ID cabang. Hanya ada jika disediakan dalam permintaan.
process.​userRedirectUrlstringURL untuk mengarahkan pengguna (integrasi Web Redirect dan iFrame). Jangan mengubah URL ini.
process.tokenstringJWT untuk menginisialisasi Web SDK iFrame.
process.webAppTokenstringJWT untuk menginisialisasi SDK native (Android, iOS, Flutter).
process.createdAtstring (date-time)Timestamp saat proses dibuat.
process.expiresAtstring (date-time)Timestamp setelah proses kedaluwarsa dan tidak dapat lagi diselesaikan.
process.capacitiesarrayKapabilitas yang dikonfigurasi untuk proses ini.
process.​authenticationInfoobjectInformasi autentikasi untuk proses (kosong saat pembuatan).
process.personobjectCerminan dari objek person yang dikirim saat pembuatan.
process.​companyData.​branchIdstring (UUID)ID cabang yang terkait dengan proses.
process.​companyData.​countryCodestringKode negara yang terkait dengan cabang (misalnya, BR, MX).

Kode Error​

CodeMessageDescription
3invalid flowKetika flow yang ditentukan tidak ada.
3invalid person: friendly name exceeds 50 characters.Ketika friendly name melebihi 50 karakter.
3invalid purposeKetika purpose yang diberikan tidak valid.
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:Ketika callbackUri yang diberikan tidak valid.
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILKetika email yang diberikan tidak valid dan notifikasi email dikonfigurasi.
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPPKetika nomor telepon yang diberikan tidak valid dan notifikasi SMS atau WhatsApp dikonfigurasi.
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueKetika identifier (duiValue) yang diberikan tidak valid.
3invalid expiresIn argumentKetika nilai expiresIn tidak valid.
3invalid company_name argument in process contextualization, max length is 20Ketika contextualization.​company_name melebihi 20 karakter.
3title and text must be provided together in process contextsKetika hanya salah satu dari title atau text yang disediakan dalam suatu locale.
3invalid title argument in process contexts, max length is 100Ketika title suatu locale melebihi 100 karakter.
3invalid text argument in process contexts, max length is 210Ketika text suatu locale melebihi 210 karakter.
3invalid reason argument in process contexts, max length is 50Ketika reason suatu locale melebihi 50 karakter.
3The references array must contain at most one element.Ketika lebih dari satu item dikirim dalam references.
3The references[].referenceContent field is missing.Ketika referenceContent kosong.
3The references[].referenceType field must be IMAGE_BASE64 or PROCESS_ID.Ketika referenceType bukan salah satu nilai yang didukung.
3A 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.
9The 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.
3INVALID_IMAGEKetika gambar bukan base64 yang valid, atau terlihat seperti upaya injeksi.
3INVALID_DUIKetika nomor dokumen tidak standar atau tidak ada.
3IMAGE_TOO_LARGEKetika gambar melebihi ukuran maksimum 800 KB.
3UNSUPPORTED_IMAGE_FORMATKetika format gambar bukan PNG, JPEG, atau WebP.
3MISSING_IMAGEKetika gambar wajib untuk flow ini dan tidak dikirim.
3MISSING_NAMEKetika nama wajib untuk flow ini dan tidak dikirim.
3MISSING_DUIKetika nomor dokumen wajib untuk flow ini dan tidak dikirim.
3MISSING_PERSONKetika objek person wajib untuk flow ini dan tidak dikirim.
3INVALID_REQUESTKetika body permintaan bernilai null atau tidak dapat diinterpretasikan.
3TOKEN_ALREADY_USEDKetika token pengambilan gambar sudah digunakan. Token ini hanya untuk sekali pakai.
3TOKEN_EXPIREDKetika token pengambilan gambar sudah kedaluwarsa. Token harus digunakan dalam waktu 10 menit.
3INVALID_BUNDLEKetika permintaan tidak memenuhi persyaratan keamanan.
3INVALID_NAMEKetika nama lebih panjang dari maksimum yang diizinkan.
3INVALID_EMAILKetika alamat email salah format atau terlalu panjang.
3INVALID_PHONEKetika nomor telepon lebih panjang dari 20 karakter.
3INVALID_DUI_TYPEKetika tipe dokumen bukan salah satu nilai yang didukung.
3INVALID_CLIENT_REFERENCEKetika clientReference terlalu panjang, atau mengandung spasi atau #.
3INVALID_CONSENT_TYPEKetika consentType bukan NONE, DIRECT, atau INDIRECT.
3INVALID_USE_CASEKetika useCase tidak dikenali, atau terlalu panjang.
3INVALID_DEVICE_TRUST_TOKENKetika token device-trust tidak valid atau sudah digunakan.
3TOO_MANY_REFERENCESKetika lebih dari satu item dikirim dalam references.
3INVALID_REFERENCE_TYPEKetika referenceType bukan IMAGE_BASE64 atau PROCESS_ID.
3INVALID_REFERENCE_PROCESSKetika ID proses referensi bukan identifier yang valid.
3REFERENCE_PROCESS_NOT_FOUNDKetika proses yang dirujuk tidak ada.
3REFERENCE_PROCESS_NOT_READYKetika proses yang dirujuk tidak memiliki hasil yang dapat digunakan kembali, atau sudah digunakan.
3REFERENCE_SELFIE_NOT_FOUNDKetika proses yang dirujuk tidak membawa selfie untuk digunakan kembali.
3INVALID_CAPTURE_TOKENKetika gambar yang diambil bukan token valid yang dihasilkan oleh SDK pengambilan gambar.
3INVALID_CAPTURE_SIGNATUREKetika signature token pengambilan gambar tidak valid.
3PRIOR_CAPTURE_NOT_FOUNDKetika pengambilan gambar sebelumnya yang menjadi dasar permintaan ini tidak dapat ditemukan. Mulai ulang proses.
3PRIOR_CAPTURE_IN_PROGRESSKetika pengambilan gambar sebelumnya belum selesai. Coba lagi sesaat lagi.
3PRIOR_CAPTURE_FAILEDKetika pengambilan gambar sebelumnya tidak dapat diselesaikan. Mulai ulang proses.
3INVALID_DOCUMENTKetika file dokumen tidak dapat dibaca, dilindungi kata sandi, atau dalam format yang tidak didukung.
3INVALID_AUTH_PROCESSKetika document.authProcessId tidak valid, sudah kedaluwarsa, atau milik orang lain.
3INVALID_DOCUMENT_PURPOSEKetika document.purpose bukan salah satu nilai yang didukung.
3PROCESS_REUSE_NOT_ENABLEDKetika flow tidak mengizinkan penggunaan kembali proses sebelumnya tanpa gambar. Kirim gambar sebagai gantinya.
9PROCESS_FAILEDKetika proses mengalami kegagalan terminal saat dibuat.
9Tenant API key is not configuredKetika API Key tidak dikonfigurasi dengan benar.

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).