Lewati ke konten utama

Dapatkan Proses

peringatan

Sebelum mengambil proses, tinjau konfigurasi webhook dan strategi fallback kami — klik di sini.

Endpoint

LingkunganURL
ProductionGET https://api.idcloud.unico.app/client/v1/process/{processId}
SandboxGET https://api.idcloud.uat.unico.app/client/v1/process/{processId}

Permintaan

Headers
HeaderNilai
AuthorizationBearer <access_token>
Parameter path
ParameterTipeWajibDeskripsi
processIdstring (UUID)yaIdentifier proses yang dikembalikan oleh Buat Proses.

Contoh

curl -X GET https://api.idcloud.unico.app/client/v1/process/$PROCESS_ID \
-H "Authorization: Bearer $TOKEN"

Respons

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"flow": "idchecktrust",
"callbackUri": "https://example.com/callback",
"userRedirectUrl": "https://example.com/redirect",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"createdAt": "2024-01-01T10:00:00Z",
"finishedAt": "2024-01-01T10:15:00Z",
"expiresAt": "2024-01-08T10:00:00Z",
"purpose": "VERIFICATION",
"clientReference": "client-ref-abc",
"useCase": "smart_revalidation",
"capacities": ["liveness", "face_match"],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"notifications": [
{
"notificationChannel": "email"
}
]
},
"authenticationInfo": {
"authenticationId": "auth-123",
"livenessResult": "LIVENESS_RESULT_LIVE",
"authenticationResult": "AUTHENTICATION_RESULT_INCONCLUSIVE",
"identityFraudstersResult": "TRUST_RESULT_INCONCLUSIVE",
"bioTokenEngineResult": "BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED",
"smartRevalidationResult": "SMART_REVALIDATION_RESULT_UNSPECIFIED",
"idAgeResult": "ID_AGE_RESULT_UNSPECIFIED",
"scoreEngineResult": {
"scoreEnabled": "SCORE_ENABLED_TRUE",
"score": 85.5
}
},
"companyData": {
"branchId": "branch-123",
"countryCode": "BR"
},
"bioTokenData": {
"referenceProcessId": "ref-proc-123",
"authenticationId": "auth-ref-123"
},
"services": [
{
"envelopeId": "4d4f3d90-04a3-4259-b63b-930ab10d2e47",
"documentIds": ["doc-abc-123"],
"consent_granted": true,
"documents": [
{
"doc_id": "doc-abc-123",
"typified": true,
"cpf_match": true,
"face_match": true,
"validate_doc": true,
"reused_doc": false,
"signed_url": "https://example.com/doc?token=xyz",
"doc": {
"version": 1,
"code": "CNH",
"data": {
"numero": "044589731564",
"cpfNumero": "12345678909",
"nomeCivil": "Luke Skywalker",
"dataNascimento": "1990-05-12T00:00:00Z",
"dataExpiracao": "2027-12-07T00:00:00Z",
"categoria": "B"
}
}
}
]
}
]
}
}
Field tingkat atas
FieldTipeDeskripsi
process.idstring (UUID)Identifier proses.
process.flowstringIdentifier flow yang dikirim saat pembuatan.
process.callbackUristringURL callback yang dikonfigurasi untuk event proses.
process.userRedirectUrlstringURL untuk mengarahkan pengguna setelah journey selesai.
process.stateenumStatus proses saat ini. Lihat nilai di bawah.
process.resultenumHasil verifikasi. Muncul hanya ketika state = PROCESS_STATE_FINISHED.
process.createdAtstring (datetime)Timestamp ISO 8601 ketika proses dibuat.
process.finishedAtstring (datetime)Timestamp ISO 8601 ketika proses selesai. Muncul hanya ketika state = PROCESS_STATE_FINISHED.
process.expiresAtstring (datetime)Timestamp ISO 8601 ketika proses kedaluwarsa.
process.purposestringTujuan proses seperti yang dikonfigurasi dalam flow.
process.clientReferencestringReferensi sisi klien opsional untuk pengindeksan di portal.
process.useCasestringIdentifier use case yang terkait dengan flow.
process.capacitiesarray of stringsDaftar kapabilitas yang diaktifkan dalam proses ini.
process.tokenstringJWT yang ditandatangani untuk integrasi SDK.
process.personobjectIdentifikasi yang diberikan saat pembuatan.
process.person.notificationsarraySaluran notifikasi yang dikonfigurasi untuk journey (misalnya email).
process.authenticationInfoobjectHasil per kapabilitas. Lihat di bawah.
process.companyDataobjectKonteks perusahaan dan cabang.
process.companyData.branchIdstringIdentifier cabang.
process.companyData.countryCodestringKode negara ISO 3166-1 alpha-2.
process.bioTokenDataobjectInfo proses referensi — muncul hanya dalam alur Validasi 1:1 dan Revalidasi Cerdas.
process.servicesarrayEnvelope yang ditandatangani, dokumen yang ditangkap, dan output layanan lainnya. Lihat di bawah.
Nilai process.state
NilaiArti
PROCESS_STATE_CREATEDProses dibuat; pengguna belum menyelesaikan journey.
AWAITING_FOR_DOCUMENTProses dibuat tanpa dokumen identifikasi; menunggu untuk diatur melalui Set Process Document. Hanya muncul ketika Custom Flow mengizinkan dokumen opsional.
PROCESS_STATE_FINISHEDJourney selesai. Periksa result dan authenticationInfo.
PROCESS_STATE_FAILEDError pemrosesan.
Inkonsistensi penamaan state

AWAITING_FOR_DOCUMENT tidak mengikuti konvensi prefiks PROCESS_STATE_* yang digunakan oleh state lainnya. Ini adalah inkonsistensi penamaan yang diketahui dalam API saat ini.

Nilai process.result
NilaiArti
PROCESS_RESULT_OKSemua kapabilitas mengembalikan hasil positif.
PROCESS_RESULT_INVALID_IDENTITYSetidaknya satu kapabilitas mengembalikan hasil negatif definitif (misalnya liveness gagal, identitas tidak cocok).
PROCESS_RESULT_ERRORError selama pemrosesan hasil.
PROCESS_RESULT_EXPIREDProses kedaluwarsa sebelum journey selesai.
PROCESS_RESULT_UNSPECIFIEDProses belum selesai.
Hasil kapabilitas dalam authenticationInfo

Semua field selalu dikembalikan terlepas dari flow. Field untuk kapabilitas yang tidak digunakan dalam flow mengembalikan *_UNSPECIFIED.

Nilai enum yang disingkat

Nilai singkat (misalnya livenessResult = LIVE, authenticationResult = INCONCLUSIVE) dipetakan langsung ke nilai enum lengkap yang didokumentasikan di sini (LIVENESS_RESULT_LIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, dll.) — prefiks dihilangkan untuk singkatnya.

FieldKapabilitasNilai yang mungkin
authenticationIdIdentifier unik untuk percobaan autentikasi ini.
livenessResultDeteksi KehidupanLIVENESS_RESULT_LIVE, LIVENESS_RESULT_NOT_LIVE, LIVENESS_RESULT_UNSPECIFIED
authenticationResultVerifikasi IdentitasAUTHENTICATION_RESULT_POSITIVE, AUTHENTICATION_RESULT_NEGATIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, AUTHENTICATION_RESULT_UNSPECIFIED
identityFraudstersResultKlasifikasi Risiko PenipuanTRUST_RESULT_YES, TRUST_RESULT_INCONCLUSIVE, TRUST_RESULT_UNSPECIFIED
bioTokenEngineResultValidasi 1:1BIO_TOKEN_ENGINE_RESULT_POSITIVE, BIO_TOKEN_ENGINE_RESULT_NEGATIVE, BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED
smartRevalidationResultRevalidasi CerdasSMART_REVALIDATION_RESULT_POSITIVE, SMART_REVALIDATION_RESULT_NEGATIVE, SMART_REVALIDATION_RESULT_UNSPECIFIED
idAgeResultVerifikasi UsiaID_AGE_RESULT_POSITIVE, ID_AGE_RESULT_NEGATIVE, ID_AGE_RESULT_INCONCLUSIVE, ID_AGE_RESULT_UNSPECIFIED
scoreEngineResult.scoreEnabledSkor RisikoSCORE_ENABLED_TRUE, SCORE_ENABLED_FALSE, SCORE_ENABLED_UNSPECIFIED
scoreEngineResult.scoreSkor RisikoAngka dari -100 sampai +100. Muncul ketika authenticationResult = AUTHENTICATION_RESULT_INCONCLUSIVE dan Skor Risiko diaktifkan.
serproResult.scoreHasil Kemiripan Serpro0100 (kemiripan); -1 (tidak ada wajah yang terdaftar untuk CPF ini); -2 (error integrasi).
Field process.services
Konvensi penamaan campuran dalam services

Array services menggunakan camelCase untuk field tingkat envelope (envelopeId, documentIds) dan snake_case untuk field tingkat dokumen (doc_id, consent_granted, face_match, dll.). Ini mencerminkan respons API yang sebenarnya — kedua konvensi disengaja dan bukan merupakan kesalahan dokumentasi.

FieldTipeDeskripsi
envelopeIdstring (UUID)Identifier envelope yang ditandatangani.
documentIdsarray of stringsID dokumen yang ditangkap dalam layanan ini.
consent_grantedbooleanApakah pengguna memberikan persetujuan berbagi data.
documentsarrayDokumen yang ditangkap dengan data OCR dan hasil validasi.
documents[].doc_idstringIdentifier dokumen.
documents[].typifiedbooleanApakah tipe dokumen berhasil diidentifikasi.
documents[].cpf_matchbooleanApakah CPF pada dokumen cocok dengan CPF yang diberikan.
documents[].face_matchbooleanApakah selfie cocok dengan foto di dokumen.
documents[].validate_docbooleanApakah dokumen lolos validasi keaslian.
documents[].reused_docbooleanApakah dokumen ini digunakan kembali dari proses sebelumnya.
documents[].signed_urlstringURL yang telah ditandatangani untuk mengunduh PDF dokumen (berlaku selama 5 menit — ambil ulang untuk memperbarui).
documents[].doc.versionintegerVersi skema OCR.
documents[].doc.codestringKode tipe dokumen (misalnya CNH, RG).
documents[].doc.dataobjectField OCR yang diekstrak. Konten bervariasi berdasarkan tipe dokumen dan data yang tersedia. Nama field dalam doc.data (misalnya nomeCivil, dataNascimento) dikembalikan dalam bahasa Portugis — ini adalah nilai aktual yang dihasilkan oleh mesin OCR.
400 Bad Request

Parameter path processId tidak ada atau salah format.

401 Unauthorized

Bearer token tidak ada, kedaluwarsa, atau tidak valid.

404 Not Found

processId tidak ada atau tidak termasuk dalam tenant yang terautentikasi.

429 Too Many Requests

Batas rate tercapai. Ketika sistem Anda menerima error HTTP 429, Anda harus menerapkan mekanisme untuk mencegah kegagalan berantai dan menghindari memperburuk pembatasan.

Praktik terbaik:

  • Periode pendinginan (backoff): Segera hentikan atau batasi permintaan berikutnya dari sistem Anda. Jangan terus-menerus mencoba ulang permintaan yang gagal dalam loop ketat.
  • Antrian & pembatasan: Buffer atau antrikan permintaan keluar di 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 detik, 2 detik, 4 detik, 8 detik) dan tambahkan penundaan acak kecil ("jitter") untuk mencegah efek kawanan di mana semua permintaan yang diantrikan mencoba ulang pada milidetik yang sama persis.
peringatan

Terus-menerus menghubungi endpoint yang dibatasi rate tanpa melakukan backoff dapat memperpanjang periode pembatasan dan sangat memengaruhi throughput operasional sistem Anda. Pembatasan permintaan yang tepat di sisi Anda memastikan integrasi yang lebih lancar dan lebih tangguh.

Untuk batas default, peningkatan permintaan, dan detail tambahan, lihat Rate Limits.

Kode Error

CodeMessageDeskripsi
3process id is invalidKetika process ID tidak valid.

Polling vs webhook

Anda dapat melakukan polling pada endpoint ini untuk memeriksa progres, tetapi pola yang disarankan adalah berlangganan webhook dan hanya memanggil endpoint ini sebagai fallback. Lihat Webhook dan Event.

Selanjutnya