---
title: Dapatkan Dokumen yang Dapat Digunakan Kembali
description: Memeriksa apakah pengguna sudah memiliki dokumen yang dapat digunakan kembali sebelum memulai alur pengambilan baru.
canonical: https://developer.unico.io/id/developers/api-reference/get-document
locale: id
generated_by: markdown-export
---

- [/id/](/id/)
- Referensi API
- Dapatkan Dokumen yang Dapat Digunakan Kembali

**Di halaman ini# Dapatkan Dokumen yang Dapat Digunakan Kembali

Gunakan endpoint ini untuk memeriksa apakah pengguna sudah memiliki dokumen yang tersedia untuk digunakan kembali sebelum memulai alur pengambilan Dokumen baru. Jika dokumen ditemukan, `documentId`-nya dapat langsung diteruskan ke `POST /processes/v1` (tipe Document) untuk melewati langkah pengambilan gambar.
### Endpoint​

LingkunganURL**Produksi**`GET https://api.idcloud.unico.app/documents/v1`**Sandbox**`GET https://api.idcloud.uat.unico.app/documents/v1`
### Permintaan​

Headers
HeaderNilai`Authorization``Bearer <access_token>` (lihat [Autentikasi](/id/developers/start/authentication))`APIKEY`API key yang disediakan dengan Pengambilan Dokumen dan Penggunaan Kembali diaktifkan.
Parameter query
ParameterTipeWajibDeskripsi`code`stringyaIdentifier pengguna (CPF atau CURP, tanpa format).`type`stringyaTipe dokumen yang di-query. Nilai yang diterima: `BR_RG`, `BR_CNH`, `BR_CIN`, `BR_PASSPORT`.
catatanNilai `type` di atas spesifik untuk endpoint ini. Jangan menyamakannya dengan:
`subject.duiType` pada permintaan POST — menggunakan prefiks `DUI_TYPE_*` dan mengidentifikasi orang, bukan tipe dokumen (misalnya, `DUI_TYPE_BR_CPF`).
`documentType` pada respons — menggunakan path registry lengkap (misalnya, `unico.moja.dictionary.br.cnh.v2.Cnh`).

### Contoh​

cURLNode.js```
curl -X GET "https://api.idcloud.unico.app/documents/v1?code=12345678909&type=BR_CNH" \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY"
```

```
import fetch from 'node-fetch';const params = new URLSearchParams({ code: '12345678909', type: 'BR_CNH' });const res = await fetch(  `https://api.idcloud.unico.app/documents/v1?${params}`,  {    headers: {      Authorization: `Bearer ${accessToken}`,      APIKEY: apiKey    }  });const data = await res.json();// data.items[0].documentId → teruskan ke POST /processes/v1 untuk digunakan kembali
```

### Respons​

200 OK
```
{  "items": [    {      "documentType": "unico.moja.dictionary.br.cnh.v2.Cnh",      "documentId": "doc-abc-123"    }  ]}
```

FieldTipeDeskripsi`items`arrayDaftar dokumen yang dapat digunakan kembali yang ditemukan untuk pengguna. Array kosong jika tidak ada dokumen yang dapat digunakan kembali ditemukan untuk `code` dan `type` yang diberikan.`items[].​documentType`stringIdentifier tipe dokumen. Nilai yang memungkinkan: `unico.​moja.​dictionary.​br.​rg.​v2.​Rg`, `unico.​moja.​dictionary.​br.​cnh.​v2.​Cnh`, `unico.​moja.​dictionary.​br.​cin.​v1.​Cin`, `unico.​moja.​dictionary.​br.​passaporte.​v1.​Passaporte`.`items[].documentId`stringIdentifier dokumen. Teruskan nilai ini di `document.documentId` pada `POST /processes/v1` untuk menggunakan kembali dokumen.
### Menggunakan documentId untuk penggunaan kembali​

Setelah Anda memiliki `documentId`, teruskan nilai tersebut dalam permintaan proses Document untuk melewati pengambilan gambar:
```
{  "subject": {    "code": "12345678909",    "name": "Luke Skywalker"  },  "document": {    "purpose": "onboarding",    "authProcessId": "<biometric-process-id>",    "documentId": "doc-abc-123"  }}
```

FieldDeskripsi`document.purpose`Tujuan bisnis untuk proses Document ini. Nilai yang diterima: `creditprocess`, `carpurchase`, `paybypaycheck`, `onboarding`, `fgts`. Nilai-nilai ini spesifik untuk Document API dan berbeda dari enum `purpose` pada SDK biometrik.`document.​authProcessId`ID proses biometrik yang sebelumnya dibuat untuk pengguna ini (dari `POST /processes/v1`).`document.documentId`ID dokumen yang diperoleh dari respons endpoint ini. Jika disediakan, `document.files` dapat dihilangkan — platform akan mengambil dokumen yang sebelumnya diambil secara otomatis.
### Kode Error​

400 Bad Request403 Forbidden404 Not Found429 Too Many Requests500 Internal Server ErrorCodeMessageDescription`20507`O parâmetro subject.code é inválido.Nilai identifier yang salah format atau tidak ada (CPF atau CURP).`20002`O parâmetro APIKey não foi informado.Header APIKEY tidak ada.`20001`O parâmetro authtoken não foi informado.Header token autentikasi tidak ada.Bearer token atau `APIKEY` tidak ada, sudah kedaluwarsa, atau tidak valid.CodeMessageDescription`30020`The provided authorization token does not have permission to perform this action.Token tidak memiliki izin untuk mengakses selfie dokumen.`30017`User does not have permission to perform this action.JWT salah format atau pengguna tidak memiliki izin untuk melakukan operasi ini.`10502`O token informado está expirado.Access token sudah kedaluwarsa.`10501`O token informado é inválido.Token autentikasi tidak valid.`10201`O AppKey informado é inválido.APIKEY tidak ada atau tidak ditemukan.CodeMessageDescription`99987`Attachment not found.Attachment yang terkait dengan dokumen tidak ditemukan.`50001`The process is not found.Tidak ada dokumen yang ditemukan untuk parameter yang diberikan.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.

peringatanTerus-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](/id/developers/start/rate-limits).CodeMessageDescription`99999`Internal failure! Try again later.Error pemrosesan di sisi server.Terakhir diperbarui pada 8 Okt 2026**