---
title: Capture de document
canonical: https://developer.unico.io/fr/dual-api/developer/sdks-and-tools/ios-sdk/document-capture/
locale: fr
generated_by: markdown-export
---

Capture de documents d'identité. Le SDK présente un cadre pour aider l'utilisateur à positionner le document ; après le positionnement, l'utilisateur clique sur le bouton pour capturer la photo.

:::warning[Aucune validation du contenu]
Le SDK n'effectue aucune validation sur ce qui est capturé.
:::

## Cadres de document disponibles

| Cadre | Description |
|---|---|
| `DocumentEnums.CPF` | Capture du CPF |
| `DocumentEnums.CNH` | Capture du CNH ouvert |
| `DocumentEnums.cnhFrente` | Capture du recto du CNH |
| `DocumentEnums.cnhVerso` | Capture du verso du CNH |
| `DocumentEnums.RG` | Capture du RG ouvert |
| `DocumentEnums.rgFrente` | Capture du recto du RG |
| `DocumentEnums.rgVerso` | Capture du verso du RG |
| `DocumentEnums.none` | Cadre rectangulaire générique pour tout autre document |

:::tip[Cadre générique]
Si vous devez capturer un document pour lequel il n'existe pas de cadre spécifique (par exemple, RNE), utilisez `DocumentEnums.none` — un cadre générique rectangulaire pouvant être utilisé pour guider n'importe quelle capture.
:::

Pour la liste complète des types de documents pris en charge, consultez [Référence API > Enums](/developers/sdks-and-tools/ios/api-reference/enums).

## Démarrer une capture de document

****Étape 2** — Implémenter `DocumentCameraDelegate` et `AcessoBioDocumentDelegate`**

Ces delegates gèrent les callbacks du résultat de capture de document :

  | Méthode | Description |
  |---|---|
  | `onSuccessDocument(result)` | Capture réussie — retourne `DocumentResult` avec `base64` (aperçu) et `encrypted` (JWT pour l'API) |
  | `onErrorDocument(errorBio)` | Capture échouée — retourne un `ErrorBio` avec le code et la description |

  ### 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 { }
    ```

****Étape 3** — Appeler `prepareDocumentCamera` et `openDocument`**

Appelez `prepareDocumentCamera` en passant la configuration SDK. Lorsque la caméra est prête, `onCameraReadyDocument` est déclenché avec un `AcessoBioCameraOpenerDelegate` — ouvrez la caméra avec `openDocument()` et passez le `DocumentEnums` souhaité :

  - `onCameraReadyDocument(cameraOpener)` — la caméra est prête ; appelez `openDocument(.CNH, delegate: self)`.
  - `onCameraFailedDocument(message)` — la préparation de la caméra a échoué (`ErrorPrepare` est une extension de `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 { }
    ```

Pour la gestion complète du résultat, consultez [Réception du résultat](/developers/sdks-and-tools/ios/capture-flow/receiving-the-result).