> 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-en/products/idv-suite/flujos-and-integraciones/configuracion-tecnica-del-cliente/solucion-web/sdk-loader-idv/configuracion-del-sdk/parametros-de-configuracion.md).

# Configuration parameters

## Required parameters

### `apiKey`

The only required parameter to integrate the SDK is the `apiKey`. This key is provided by the Facephi support team and is essential for configuring both the web environment where the SDK will be deployed and the different components included in the SDK.

#### Why is apiKey important?

The `apiKey` ensures:

* Correct authorization and validation of the web platform that uses the SDK.
* Proper configuration of the SDK's features and components, allowing smooth operation.

#### Example: basic usage

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

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

{% hint style="info" %}
The element `<facephi-sdk-provider>` will be created and configured automatically when calling `loadSdk`.
{% endhint %}

***

## Optional parameters

### `containerId`

The parameter `containerId` indicates the ID of the DOM element where the SDK will be rendered. If not provided, the default is `'sdk-container'`.

#### Example: custom container

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

{% hint style="warning" %}
The container element must exist in the DOM before calling `loadSdk`.
{% endhint %}

***

### `customerId` (highly recommended)

Although not mandatory, the parameter `customerId` is highly recommended. It serves as an identifier for the operation, allowing customers to associate it with internal identifiers. For example, it can be used to specify a **email**, **document number** or any other document or customer identifier.

#### Important details about `customerId`:

* It is a **free-text field**.
* Each operation should have a **unique identifier** to ensure proper tracking and traceability.

#### Example: use of `customerId`

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

#### Why use `customerId`?

{% stepper %}
{% step %}

### Operational traceability

Easily associate SDK operations with the customer's internal records.
{% endstep %}

{% step %}

### Simplified debugging

Identify specific operations in case of errors or incidents.
{% endstep %}

{% step %}

### Improved reporting

Allows better tracking and analysis of SDK usage.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Always make sure that each `customerId` is unique for each operation to maintain data integrity and avoid conflicts.
{% endhint %}

***

## Complete parameter reference

| Parameter     | Type     | Required | Default           | Description                                   |
| ------------- | -------- | -------- | ----------------- | --------------------------------------------- |
| `apiKey`      | `string` | **Yes**  | -                 | API Key for SDK authentication                |
| `containerId` | `string` | No       | `'sdk-container'` | DOM element ID where the SDK will be rendered |
| `customerId`  | `string` | No       | -                 | Customer identifier for tracking              |
