Dapatkan Proses
Sebelum mengambil proses, tinjau konfigurasi webhook dan strategi fallback kami — klik di sini.
Endpoint
| Lingkungan | URL |
|---|---|
| Produksi | GET https://api.idcloud.unico.app/client/v1/process/{processId} |
| Sandbox | GET https://api.idcloud.uat.unico.app/client/v1/process/{processId} |
Permintaan
| Header | Nilai |
|---|---|
Authorization | Bearer <access_token> |
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
processId | string (UUID) | ya | Pengidentifikasi proses yang dikembalikan oleh Buat Proses. |
Contoh
- cURL
- Node.js
curl -X GET https://api.idcloud.unico.app/client/v1/process/$PROCESS_ID \
-H "Authorization: Bearer $TOKEN"
import fetch from 'node-fetch';
const res = await fetch(
`https://api.idcloud.unico.app/client/v1/process/${processId}`,
{ headers: { Authorization: `Bearer ${accessToken}` } }
);
const { process: proc } = await res.json();
Respons
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"flow": "idunicosign",
"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
},
"serproResult": {
"score": 92
}
},
"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"
}
}
}
]
}
]
}
}
| Kolom | Tipe | Deskripsi |
|---|---|---|
process.id | string (UUID) | Pengidentifikasi proses. |
process.flow | string | Pengidentifikasi alur yang dikirim saat pembuatan. |
process.callbackUri | string | URL callback yang dikonfigurasi untuk peristiwa proses. |
process.userRedirectUrl | string | URL untuk mengarahkan pengguna setelah perjalanan selesai. |
process.state | enum | Status proses saat ini. Lihat nilai di bawah. |
process.result | enum | Hasil verifikasi. Tersedia hanya ketika state = PROCESS_STATE_FINISHED. |
process.createdAt | string (datetime) | Timestamp ISO 8601 saat proses dibuat. |
process.finishedAt | string (datetime) | Timestamp ISO 8601 saat proses selesai. Tersedia hanya ketika state = PROCESS_STATE_FINISHED. |
process.expiresAt | string (datetime) | Timestamp ISO 8601 saat proses kedaluwarsa. |
process.purpose | string | Tujuan proses sesuai konfigurasi alur. |
process.clientReference | string | Referensi sisi klien opsional untuk pengindeksan di portal. |
process.useCase | string | Pengidentifikasi kasus penggunaan yang terkait dengan alur. |
process.capacities | array of strings | Daftar kapabilitas yang diaktifkan dalam proses ini. |
process.token | string | JWT bertanda tangan untuk integrasi SDK. |
process.person | object | Identifikasi yang diberikan saat pembuatan. |
process.person.notifications | array | Saluran notifikasi yang dikonfigurasi untuk perjalanan (contoh: email). |
process.authenticationInfo | object | Hasil per kapabilitas. Lihat di bawah. |
process.companyData | object | Konteks perusahaan dan cabang. |
process.companyData.branchId | string | Pengidentifikasi cabang. |
process.companyData.countryCode | string | Kode negara ISO 3166-1 alpha-2. |
process.bioTokenData | object | Informasi proses referensi — tersedia hanya pada alur validasi 1:1 dan Revalidasi Cerdas. |
process.services | array | Amplop bertanda tangan, dokumen yang ditangkap, dan keluaran layanan lainnya. Lihat di bawah. |
| Nilai | Arti |
|---|---|
PROCESS_STATE_CREATED | Proses dibuat; pengguna belum menyelesaikan perjalanan. |
AWAITING_FOR_DOCUMENT | Proses dibuat tanpa dokumen identifikasi; menunggu dokumen ditetapkan melalui Set Process Document. Hanya muncul ketika Custom Flow mengizinkan dokumen opsional. |
PROCESS_STATE_FINISHED | Perjalanan selesai. Periksa result dan authenticationInfo. |
PROCESS_STATE_FAILED | Kesalahan pemrosesan. |
AWAITING_FOR_DOCUMENT tidak mengikuti konvensi awalan PROCESS_STATE_* yang digunakan oleh status lainnya. Ini adalah ketidakkonsistenan penamaan yang diketahui dalam API saat ini.
| Nilai | Arti |
|---|---|
PROCESS_RESULT_OK | Semua kapabilitas mengembalikan hasil positif. |
PROCESS_RESULT_INVALID_IDENTITY | Setidaknya satu kapabilitas mengembalikan hasil negatif definitif (contoh: liveness gagal, identitas tidak cocok). |
PROCESS_RESULT_ERROR | Kesalahan selama pemrosesan hasil. |
PROCESS_RESULT_EXPIRED | Proses kedaluwarsa sebelum perjalanan selesai. |
PROCESS_RESULT_UNSPECIFIED | Proses belum selesai. |
Semua kolom selalu dikembalikan tanpa memandang alur. Kolom untuk kapabilitas yang tidak digunakan dalam alur mengembalikan *_UNSPECIFIED.
Nilai singkat (misalnya livenessResult = LIVE, authenticationResult = INCONCLUSIVE) berkorespondensi langsung dengan nilai enum lengkap yang didokumentasikan di sini (LIVENESS_RESULT_LIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, dll.) — awalan dihilangkan demi keringkasan.
| Kolom | Kapabilitas | Nilai yang mungkin |
|---|---|---|
authenticationId | — | Pengidentifikasi unik untuk percobaan autentikasi ini. |
livenessResult | Deteksi Kehidupan | LIVENESS_RESULT_LIVE, LIVENESS_RESULT_NOT_LIVE, LIVENESS_RESULT_UNSPECIFIED |
authenticationResult | Verifikasi Identitas | AUTHENTICATION_RESULT_POSITIVE, AUTHENTICATION_RESULT_NEGATIVE, AUTHENTICATION_RESULT_INCONCLUSIVE, AUTHENTICATION_RESULT_UNSPECIFIED |
identityFraudstersResult | Klasifikasi risiko penipuan | TRUST_RESULT_YES, TRUST_RESULT_INCONCLUSIVE, TRUST_RESULT_UNSPECIFIED |
bioTokenEngineResult | Validasi 1:1 | BIO_TOKEN_ENGINE_RESULT_POSITIVE, BIO_TOKEN_ENGINE_RESULT_NEGATIVE, BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED |
smartRevalidationResult | Revalidasi Cerdas | SMART_REVALIDATION_RESULT_POSITIVE, SMART_REVALIDATION_RESULT_NEGATIVE, SMART_REVALIDATION_RESULT_UNSPECIFIED |
idAgeResult | Verifikasi Usia | ID_AGE_RESULT_POSITIVE, ID_AGE_RESULT_NEGATIVE, ID_AGE_RESULT_INCONCLUSIVE, ID_AGE_RESULT_UNSPECIFIED |
scoreEngineResult.scoreEnabled | Skor Risiko | SCORE_ENABLED_TRUE, SCORE_ENABLED_FALSE, SCORE_ENABLED_UNSPECIFIED |
scoreEngineResult.score | Skor Risiko | Angka dari -100 hingga +100. Tersedia ketika authenticationResult = AUTHENTICATION_RESULT_INCONCLUSIVE dan Klasifikasi risiko penipuan diaktifkan. |
serproResult.score | Hasil Kemiripan Serpro | 0–100 (kemiripan); -1 (tidak ada wajah dalam arsip untuk CPF ini); -2 (kesalahan integrasi). |
| Kolom | Tipe | Deskripsi |
|---|---|---|
envelopeId | string (UUID) | Pengidentifikasi amplop bertanda tangan. |
documentIds | array of strings | ID dokumen yang ditangkap dalam layanan ini. |
consent_granted | boolean | Apakah pengguna memberikan persetujuan berbagi data. |
documents | array | Dokumen yang ditangkap beserta data OCR dan hasil validasi. |
documents[].doc_id | string | Pengidentifikasi dokumen. |
documents[].typified | boolean | Apakah jenis dokumen berhasil diidentifikasi. |
documents[].cpf_match | boolean | Apakah CPF pada dokumen cocok dengan CPF yang diberikan. |
documents[].face_match | boolean | Apakah selfie cocok dengan foto pada dokumen. |
documents[].validate_doc | boolean | Apakah dokumen lulus validasi keaslian. |
documents[].reused_doc | boolean | Apakah dokumen ini digunakan kembali dari proses sebelumnya. |
documents[].signed_url | string | URL pre-signed untuk mengunduh PDF dokumen (berlaku selama 5 menit — ambil ulang untuk memperbarui). |
documents[].doc.version | integer | Versi skema OCR. |
documents[].doc.code | string | Kode jenis dokumen (contoh: CNH, RG). |
documents[].doc.data | object | Kolom OCR yang diekstrak. Konten bervariasi berdasarkan jenis dokumen dan data yang tersedia. |
Parameter path processId tidak ada atau tidak valid.
Bearer token tidak ada, kedaluwarsa, atau tidak valid.
processId tidak ada atau tidak termasuk dalam tenant yang terautentikasi.
Batas rate limit tercapai.
Kode Error
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
| Kode | Pesan | Deskripsi |
|---|---|---|
3 | process id is invalid | Ketika ID proses tidak valid. |
| Pesan | Deskripsi |
|---|---|
| Jwt header is an invalid JSON | Ketika token akses yang digunakan mengandung karakter yang tidak benar. |
| Jwt is expired | Ketika token akses yang digunakan telah kedaluwarsa. |
| Kode | Pesan | Deskripsi |
|---|---|---|
5 | error getting process: rpc error: code = NotFound desc = process not found | Ketika ID proses tidak ditemukan. |
Tidak ada kode error terperinci yang disediakan untuk status ini — hanya status HTTP.
| Kode | Pesan | Deskripsi |
|---|---|---|
99999 | Internal failure! Try again later | Ketika terjadi kesalahan internal. |
Polling vs webhook
Anda dapat melakukan polling pada endpoint ini untuk memeriksa kemajuan, tetapi pola yang direkomendasikan adalah berlangganan webhook dan hanya memanggil endpoint ini sebagai fallback. Lihat Webhooks and Events.
Langkah selanjutnya
- Untuk selfie yang ditangkap, lihat Get Selfie.
- Untuk bundel audit bukti, lihat Get Evidence Set.