---
title: Pengambilan dokumen
canonical: https://developer.unico.io/id/dual-api/developer/sdks-and-tools/ios-sdk/document-capture/
locale: id
generated_by: markdown-export
---

Pengambilan dokumen identitas. SDK menampilkan bingkai untuk membantu pengguna memposisikan dokumen; setelah diposisikan, pengguna menekan tombol untuk mengambil foto.

:::warning[Tanpa validasi konten]
SDK tidak melakukan validasi jenis apa pun terhadap objek yang sedang diambil.
:::

## Bingkai dokumen yang tersedia

| Bingkai | Deskripsi |
|---|---|
| `DocumentEnums.CPF` | Ambil CPF |
| `DocumentEnums.CNH` | Ambil CNH terbuka |
| `DocumentEnums.cnhFrente` | Ambil bagian depan CNH |
| `DocumentEnums.cnhVerso` | Ambil bagian belakang CNH |
| `DocumentEnums.RG` | Ambil RG terbuka |
| `DocumentEnums.rgFrente` | Ambil bagian depan RG |
| `DocumentEnums.rgVerso` | Ambil bagian belakang RG |
| `DocumentEnums.none` | Bingkai persegi panjang generik untuk dokumen lainnya |

:::tip[Bingkai generik]
Jika Anda perlu mengambil dokumen yang tidak memiliki bingkai khusus (misalnya, RNE), gunakan `DocumentEnums.none` — bingkai persegi panjang generik yang dapat digunakan untuk memandu pengambilan apa pun.
:::

Untuk daftar lengkap jenis dokumen yang didukung, lihat [Referensi API > Enums](/developers/sdks-and-tools/ios/api-reference/enums).

## Memulai pengambilan dokumen

****Langkah 2** — Implementasikan `DocumentCameraDelegate` dan `AcessoBioDocumentDelegate`**

Delegate ini menangani callback hasil pengambilan dokumen:

  | Metode | Deskripsi |
  |---|---|
  | `onSuccessDocument(result)` | Pengambilan berhasil — mengembalikan `DocumentResult` dengan `base64` (pratinjau) dan `encrypted` (JWT untuk API) |
  | `onErrorDocument(errorBio)` | Pengambilan gagal — mengembalikan `ErrorBio` dengan kode dan deskripsi |

  ### Swift

    ```swift
    class ViewController: UIViewController, AcessoBioManagerDelegate,
      DocumentCameraDelegate, AcessoBioDocumentDelegate {

      func onSuccessDocument(_ result: DocumentResult!) { }
      func onErrorDocument(_ errorBio: ErrorBio!) { }
    }
    ```

### Objective-C

    ```objectivec
    // .h
    @interface ViewController: UIViewController <AcessoBioManagerDelegate,
      DocumentCameraDelegate, AcessoBioDocumentDelegate> {
      AcessoBioManager *unicoCheck;
    }

    // .m
    - (void)onSuccessDocument:(DocumentResult *)result {
        NSLog(@"%@", result.base64);
    }

    - (void)onErrorDocument:(ErrorBio *)errorBio { }
    ```

****Langkah 3** — Panggil `prepareDocumentCamera` dan `openDocument`**

Panggil `prepareDocumentCamera` dengan meneruskan konfigurasi SDK. Saat kamera siap, `onCameraReadyDocument` dipicu dengan `AcessoBioCameraOpenerDelegate` — buka kamera menggunakan `openDocument()` dan teruskan `DocumentEnums` yang diinginkan:

  - `onCameraReadyDocument(cameraOpener)` — kamera siap; panggil `openDocument(.CNH, delegate: self)`.
  - `onCameraFailedDocument(message)` — persiapan kamera gagal (`ErrorPrepare` adalah ekstensi dari `ErrorBio`).

  ### Swift

    ```swift
    @IBAction func openCamera(_ sender: Any) {
      unicoCheck.build().prepareDocumentCamera(self, config: YourUnicoConfigClass())
    }

    func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
      cameraOpener.openDocument(DocumentEnums.CNH, delegate: self)
    }

    func onCameraFailedDocument(_ message: ErrorPrepare!) { }
    ```

### Objective-C

    ```objectivec
    - (IBAction)openCamera:(UIButton *)sender {
        [[unicoCheck build] prepareDocumentCamera:self config:[YourUnicoConfigClass new]];
    }

    - (void)onCameraReadyDocument:(id)cameraOpener {
        [cameraOpener openDocument:DocumentCNH delegate:self];
    }

    - (void)onCameraFailedDocument:(ErrorPrepare *)message { }
    ```

Untuk penanganan hasil secara lengkap, lihat [Menerima hasil](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).