> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/flutter/componentes/captura-de-documentos.md).

# Captura de documentos - SelphID

A captura de documentos é realizada com o ***SelphID Component***.

Este componente é responsável por realizar capturas de documentos de identidade e analisar os dados obtidos. Seus principais processos são:

* Gerenciamento interno de câmeras e permissões.
* Assistente nos processos de captura da parte frontal e traseira do documento.
* Extração das informações contidas no documento.
* Obtenção das imagens da frente e do verso do documento, bem como de outras imagens incluídas no documento: rosto do usuário, assinatura do usuário,...
* Alto nível de configuração: diferentes países, idiomas, tipos de documentos...

***

## Dependências <a href="#id-2-dependencia" id="id-2-dependencia"></a>

### Flutter:

```yaml
dependencies:
  fphi_sdkmobile_selphid:
    hosted:
      name: fphi_sdkmobile_selphid
      url: https://facephicorp.jfrog.io/artifactory/api/pub/pub-pro-fphi/
    version: ^<versão>
```

### Android - Gradle:

```kotlin
implementation "com.facephi.androidsdk:selphid_component:$version"
```

### iOS - CocoaPods:

```swift
pod 'FPHISDKSelphIDComponent', '~> $version'
```

## Métodos disponíveis

Este componente contém vários métodos que executam diferentes funcionalidades:

<table data-header-hidden><thead><tr><th width="233.64453125"></th><th></th></tr></thead><tbody><tr><td><strong>Método</strong></td><td><strong>Descrição</strong></td></tr><tr><td>startSelphIDWidget</td><td>Controlador principal de captura de documentos</td></tr></tbody></table>

## Método startSelphIDWidget <a href="#id-4-lanzamiento-simplificado" id="id-4-lanzamiento-simplificado"></a>

Uma vez iniciado o SDK e criada uma nova operação, será possível lançar o componente. Será possível fazer uso de qualquer um de seus controladores para executar sua funcionalidade.

Lançamento da Captura Facial:

```dart
@override
Future<Map> startSelphIDWidget({required String resourcesPath, required SelphIDConfiguration widgetConfigurationJSON}) async
{
  final Map result = await methodChannel.invokeMethod('selphid', {"resourcesPath": resourcesPath, "widgetConfigurationJSON": widgetConfigurationJSON.toJson()});
  return result;
}
```

## Configuração básica <a href="#id-5-configuracion-basica" id="id-5-configuracion-basica"></a>

Para lançar o componente atual, deverá ser criado um objeto ***SelphIDConfiguration*** que será a configuração do controlador do componente.

A configuração básica necessária para isso é a seguinte:

```dart
class SelphIDConfiguration{
  bool? mWizardMode;
  bool? mDebug;
  bool? mShowResultAfterCapture;
  bool? mShowTutorial;
  bool? mTutorialOnly;
  bool? mFullscreen;
  bool mGenerateRawImages;
  bool? mShowDiagnostic;
  bool? mShowPreviousTip;
  bool? mVibrationEnabled;
  double mJPGQuality;
  double? mTokenImageQuality;
  String? mSpecificData;
  String? mTranslationsContent;
  String? mViewsContent;
  String? mDocumentModels;
  String? mVideoFilename;
  String? mTokenPreviousCaptureData;
  int? mCameraId;
  dynamic mParams;
  SelphIDScanMode? mScanMode;
  SelphIDDocumentSide? mDocumentSide;
  SelphIDDocumentType? mDocumentType;
  SelphIDTimeout? mTimeout;
  SelphIDCompressFormat mCompressFormat;
}
```

### Configuração avançada do componente

A seguir, são detalhados todos os campos que fazem parte desta classe.

{% content-ref url="/pages/112cdfd35f0e905e281b3edb8bef514069d4b7ed" %}
[SelphID Configuração](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-configuracion.md)
{% endcontent-ref %}

***

## Recebimento do resultado <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

O lançamento devolverá as informações no formato ***SelphIDResult***. Podendo diferenciar-se entre um lançamento correto e um incorreto:

```dart
class SelphIDResult
{
  final SdkFinishStatus finishStatus;
  final String finishStatusDescription;
  final String errorDiagnostic;
  final String? errorMessage;
  final String frontDocumentImage;
  final String backDocumentImage;
  final String rawBackDocument;
  final String rawFrontDocument;
  final String fingerprintImage;
  final String faceImage;
  final String signatureImage;
  final String tokenRawBackDocument;
  final String tokenRawFrontDocument;
  final String tokenFrontDocument;
  final String tokenBackDocument;
  final String tokenFaceImage;
  final String documentData;
  final String tokenOCR;
  final String documentCaptured;
  final double matchingSidesScore;
}
```

### Configuração avançada do componente

A seguir, são detalhados todos os campos que fazem parte desta classe.

{% content-ref url="/pages/f63bd62ead964aca7a05e1b9066b9f255fae7301" %}
[Selphid Resultado](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-resultado.md)
{% endcontent-ref %}

## Personalização do componente <a href="#id-8-personalizacion-del-componente" id="id-8-personalizacion-del-componente"></a>

Além das alterações que podem ser feitas no nível do SDK (as quais são explicadas no documento de [Configurações avançadas](#id-1-introduccion)),

{% content-ref url="/pages/bae8ca88cbe0979ff8433d5a998ede635fab265b" %}
[Selphid - Personalização do Componente](/docs.facephi-pt-br/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-personalizacion-del-componente.md)
{% endcontent-ref %}
