> 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/sdks/sdk-mobile/framework-plugins/flutter/componentes/captura-de-documentos.md).

# Captura de documentos - SelphID

La captura de documentos se realiza con el ***SelphID Component***.

Este componente se encarga de realizar capturas de documentos de identidad y del análisis de los datos obtenidos. Sus principales procesos son:

* Gestión interna de cámaras y permisos.
* Asistente en los procesos de captura de la parte frontal y trasera del documento.
* Extracción de la información contenida en el documento.
* Obtención de las imágenes del dorso y reverso del documento, así como otras imagénes incluidas en el documento: cara del usuario, firma del usuario,...
* Alto nivel de configuración: diferentes países, idiomas, tipos de documentos...

***

## Dependencias <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: ^<versión>
```

### Android - Gradle:

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

### iOS - Cocoapods:

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

## Métodos disponibles

Este componente contiene varios métodos que ejecutan 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>Descripción</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>

Una vez iniciado el SDK y creada una nueva operación se podrá lanzar el componente. Se podrá hacer uso de cualquiera de sus controladores para ejecutar su funcionalidad.

Lanzamiento de la 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;
}
```

## Configuración básica <a href="#id-5-configuracion-basica" id="id-5-configuracion-basica"></a>

Para lanzar el componente actual, se deberá crear un objeto ***SelphIDConfiguration*** que será la configuración del controlador del componente.

La configuración básica necesaria para es la siguiente:

```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;
}
```

### Configuración avanzada del componente

A continuación se detallan todos los campos que forman parte de esta clase.

{% content-ref url="/pages/4rojYcN122t2mIdLaHZi" %}
[SelphID Configuración](/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-configuracion.md)
{% endcontent-ref %}

***

## Recepción del resultado <a href="#id-6-recepcion-del-resultado" id="id-6-recepcion-del-resultado"></a>

El lanzamiento devolverá la información en formato ***SelphIDResult***. Pudiendo diferenciarse entre un lanzamiento correcto y uno incorrecto:

```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;
}
```

### Configuración avanzada del componente

A continuación se detallan todos los campos que forman parte de esta clase.

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

## Personalización del componente <a href="#id-8-personalizacion-del-componente" id="id-8-personalizacion-del-componente"></a>

Además de los cambios que se pueden realizar a nivel de SDK (los cuales se explican en el documento de [Ajustes avanzados](#id-1-introduccion)), este componente en concreto permite su propia personalización.

{% content-ref url="/pages/fXdp5x6tOufH4uProkFy" %}
[Selphid - Personalización del Componente](/sdks/sdk-mobile/framework-plugins/extras/selphid/selphid-personalizacion-del-componente.md)
{% endcontent-ref %}
