> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-sdk/caf-sdk-pt-br/flutter/standalone-modules/documentdetector/builder.md).

# Compilando o SDK

## Criando uma instância do SDK do Document Detector

Para criar uma instância de `DocumentDetector`, configure-o usando os métodos fornecidos para atender às necessidades do seu aplicativo.

### Métodos do Builder

| Parâmetro                                      | Descrição                                                                                                   | Obrigatório |
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | :---------: |
| **setAndroidSettings(AndroidSettings)**        | Configura as definições específicas do Android, incluindo configurações de segurança como detecção de root. |      ✅      |
| **setStage(CafStage)**                         | Define a etapa do ambiente (por exemplo, `PROD`, `BETA`). Padrão: `PROD`.                                   |      ✅      |
| **setPersonId(String)**                        | Associa um ID de pessoa exclusivo ou CPF ao fluxo de captura do documento.                                  |      ✅      |
| **setPreviewSettings(PreviewSettings)**        | Ativa ou desativa a tela de pré-visualização para captura de documentos. Padrão: `true`.                    |      ❌      |
| **setNetworkSettings(int)**                    | Define a duração do tempo limite de rede em segundos. Padrão: `20`.                                         |      ❌      |
| **setUploadSettings(UploadSettings)**          | Configura as definições relacionadas ao upload ao capturar documentos.                                      |      ❌      |
| **setDisplayPopup(bool)**                      | Ativa ou desativa a exibição de pop-ups instrucionais antes de cada etapa de captura. Padrão: `true`.       |      ❌      |
| **setCountryCodeList(List)**                   | Restringe os documentos de passaporte aceitos a países específicos.                                         |      ❌      |
| **setMessageSettings(MessageSettings)**        | Personaliza as mensagens exibidas durante o processo de captura.                                            |      ❌      |
| **setUrlExpirationTime(String)**               | Configura o tempo de expiração dos URLs das imagens no servidor (por exemplo, "30m", "10d"). Padrão: `30m`. |      ❌      |
| **setUseAnalytics(bool)**                      | Ativa ou desativa a coleta de dados para análises. Padrão: `false`.                                         |      ❌      |
| **setIOSSettings(IOSSettings)**                | Configura as definições específicas do iOS.                                                                 |      ❌      |
| **setCurrentStepDoneDelayAndroid(bool, int?)** | Ativa ou desativa o atraso entre etapas de captura no Android e define a duração (em milissegundos).        |      ❌      |
| **setCurrentStepDoneDelayIOS(int)**            | Define a duração do atraso (em segundos) entre as etapas de captura no iOS.                                 |      ❌      |

### Exemplo de implementação (Flutter)

Abaixo está um exemplo de como integrar e configurar o SDK do Document Detector em um aplicativo Flutter.

```dart
void startDocumentDetector(List<DocumentCaptureFlow> captureFlow) async {
  String personId = personIdController.text;
  String mobileToken = mobileTokenController.text;

  DocumentDetector documentDetector =
      DocumentDetector(mobileToken: mobileToken, captureFlow: captureFlow);

  // Configurar as definições específicas do Android
  AndroidSettings androidSettings = AndroidSettings(
      securitySettings: SecuritySettings(
          useAdb: true,
          useDebug: true,
          useDeveloperMode: true,
          useEmulator: true,
          useRoot: true));

  documentDetector.setAndroidSettings(androidSettings);
  documentDetector.setNetworkSettings(20);
  documentDetector.setStage(isBeta ? CafStage.beta : CafStage.prod);
  documentDetector.setPersonId(personId);
  documentDetector.setPreviewSettings(PreviewSettings(show: true));

  try {
    DocumentDetectorEvent event = await documentDetector.start();
    // Tratar o resultado
    if (event is DocumentDetectorEventSuccess) {
      print("SUCESSO: ${event.documentType}");
    } else if (event is DocumentDetectorEventFailure) {
      print("FALHA: ${event.errorMessage}");
    } else if (event is DocumentDetectorEventClosed) {
      print("O usuário fechou o fluxo de captura de documentos");
    }
  } catch (e) {
    print("Erro ao iniciar o DocumentDetector: ${e}");
  }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-sdk/caf-sdk-pt-br/flutter/standalone-modules/documentdetector/builder.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
