> 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/solucion-web/sdk-loader-idv/configuracion-del-sdk/parametros-de-configuracion.md).

# Parámetros de configuración

## Parámetros obligatorios

### `apiKey`

El único parámetro obligatorio para integrar el SDK es la `apiKey`. Esta clave la proporciona el equipo de soporte de Facephi y es esencial para configurar tanto el entorno web donde se desplegará el SDK como los distintos componentes que incluye el SDK.

#### ¿Por qué es importante la apiKey?

La `apiKey` garantiza:

* La autorización y validación correctas de la plataforma web que utiliza el SDK.
* La configuración adecuada de las funcionalidades y componentes del SDK, permitiendo un funcionamiento sin problemas.

#### Ejemplo: uso básico

```typescript
import { loadSdk } from '@facephi/sdk-loader';

const sdkElement = await loadSdk({
  apiKey: 'YOUR_APIKEY',
  containerId: 'sdk-container',
});
```

{% hint style="info" %}
El elemento `<facephi-sdk-provider>` será creado y configurado automáticamente al llamar a `loadSdk`.
{% endhint %}

***

## Parámetros opcionales

### `containerId`

El parámetro `containerId` indica el ID del elemento DOM donde se renderizará el SDK. Si no se proporciona, por defecto es `'sdk-container'`.

#### Ejemplo: contenedor personalizado

```typescript
const sdkElement = await loadSdk({
  apiKey: 'YOUR_APIKEY',
  containerId: 'my-custom-container',
});
```

{% hint style="warning" %}
El elemento contenedor debe existir en el DOM antes de llamar a `loadSdk`.
{% endhint %}

***

### `customerId` (muy recomendado)

Aunque no es obligatorio, el parámetro `customerId` está muy recomendado. Sirve como identificador de la operación, permitiendo a los clientes asociarla con identificadores internos. Por ejemplo, puede usarse para especificar un **email**, **número de documento** o cualquier otro documento o identificador del cliente.

#### Detalles importantes sobre `customerId`:

* Es un **campo de texto libre**.
* Cada operación debería tener un **identificador único** para garantizar un seguimiento y trazabilidad correctos.

#### Ejemplo: uso de `customerId`

```typescript
const sdkElement = await loadSdk({
  apiKey: 'YOUR_APIKEY',
  containerId: 'sdk-container',
  customerId: 'user-email@example.com',
});
```

#### ¿Por qué usar `customerId`?

{% stepper %}
{% step %}

### Trazabilidad operativa

Asociar fácilmente las operaciones del SDK con los registros internos del cliente.
{% endstep %}

{% step %}

### Depuración simplificada

Identificar operaciones concretas en caso de errores o incidencias.
{% endstep %}

{% step %}

### Informes mejorados

Permite un mejor seguimiento y análisis del uso del SDK.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Asegúrate siempre de que cada `customerId` sea único en cada operación para mantener la integridad de los datos y evitar conflictos.
{% endhint %}

***

## Referencia completa de parámetros

| Parámetro     | Tipo     | Obligatorio | Por defecto       | Descripción                                     |
| ------------- | -------- | ----------- | ----------------- | ----------------------------------------------- |
| `apiKey`      | `string` | **Sí**      | -                 | API key para la autenticación del SDK           |
| `containerId` | `string` | No          | `'sdk-container'` | ID del elemento DOM donde se renderizará el SDK |
| `customerId`  | `string` | No          | -                 | Identificador del cliente para seguimiento      |
