> 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/productos/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/sdk-mobile/android-sdk/componentes-modulos/captura-de-nfc.md).

# Captura de NFC

## Introducción <a href="#id-1-introduccion" id="id-1-introduccion"></a>

La captura facial se realiza con el ***NFC Component***.

Este componente se encarga de realizar la lectura del NFC de los documentos de identidad y pasaportes. Sus principales procesos son:

* Gestión interna del sensor de NFC.
* Gestión de permisos.
* Análisis de documento.
* Análisis del progreso.
* Asistente en los procesos de lectura.
* Devolución de toda la información posible a leer
* Devolución de imágenes cuando estén disponible para su lectura

## Dependencia <a href="#id-2-dependencia" id="id-2-dependencia"></a>

La dependencia específica del componente es:

```kts
implementation "com.facephi.androidsdk:nfc_component:$sdk_nfc_component_version"{
      exclude group : "org.bouncycastle", module : "bcprov-jdk15on"
      exclude group : "org.bouncycastle", module : "jetified-bcprov-jdk15on-1.68"
  }
```

Además habrá que añadir en gradle:

```kts
android {
  ...
 packaging {
      resources {
          pickFirsts.add("META-INF/versions/9/OSGI-INF/MANIFEST.MF")
      }
  }
}
```

## Controladores disponibles

| **Controlador** | **Descripción**                      |
| --------------- | ------------------------------------ |
| FNFCController  | Controlador principal de lectura NFC |

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

Los errores se devolverán como un objeto 'NfcError'.

<details>

<summary>Listado de errores de captura de NFC:</summary>

* NFC\_APPLICATION\_CONTEXT\_ERROR: El contexto de aplicación necesario es nulo.
* NFC\_CANCEL\_BY\_USER: El usuario ha cancelado el proceso.
* NFC\_CANCEL\_LAUNCH: Se ha hecho una cancelación general del SDK.
* NFC\_COMPONENT\_LICENSE\_ERROR: La licencia del componente no es correcta.
* NFC\_EMPTY\_LICENSE: El String de licencia está vacío.
* NFC\_EXTRACT\_DATA\_ERROR: Error en los datos extraídos.
* NFC\_FETCH\_DATA\_ERROR: Error en la recogida del resultado.
* NFC\_FLOW\_ERROR: Error en el proceso de flow.
* NFC\_INITIALIZATION\_ERROR: Error de inicialización.
* NFC\_LAST\_COMMAND\_EXPECTED: Error en el comando de finalización
* NFC\_MANAGER\_NOT\_INITIALIZED: Los managers son nulos.
* NFC\_NO\_DATA\_ERROR: Los datos de entrada son nulos o no se ha recibido resultado de la lectura.
* NFC\_ERROR: Error general
* NFC\_ERROR\_DATA: Error en los datos de entrada
* NFC\_ERROR\_DISABLED: NFC deshabilitado
* NFC\_ERROR\_ILLEGAL\_ARGUMENT: NFC con un tag incorrecto
* NFC\_ERROR\_IO: Error de entrada/salida
* NFC\_ERROR\_NOT\_SUPPORTED: NFC no soportado
* NFC\_ERROR\_TAG\_LOST: Conexión perdida
* NFC\_OPERATION\_NOT\_CREATED: No hay ninguna operación en curso.
* NFC\_TIMEOUT: Timeout en el proceso.

</details>

## Recepción del resultado correcto - *data* <a href="#id-7-recepcion-del-resultado-correcto-data" id="id-7-recepcion-del-resultado-correcto-data"></a>

En caso de éxito, `data` contiene un `NfcResult` con los datos leídos del documento, imágenes disponibles, datos de seguridad y validaciones criptográficas.

Dentro de `NfcResult.nfcValidations`, el resultado incluye:

* `chipAuthenticationSupported`: Indica si el chip del documento soporta Chip Authentication. El campo `chipAuthenticationValidation` conserva el resultado de la validación cuando aplica.
