> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Consentiment biomètric per a BIPA, CUBI i Colorado

> Consentiment biomètric explícit previ al selfie a Didit per a Illinois, Texas i Colorado: activadors, SDK natiu 4.10.0 i camps de decisió.

Illinois (BIPA), Texas (CUBI) i Colorado exigeixen un avís i una autorització explícita abans que una empresa recopili la geometria facial, a partir d'una selfie o de la foto d'un document d'identitat. Didit pot mostrar un pas de consentiment abans de la primera captura facial a les persones cobertes per aquestes lleis, i guarda la resposta a la sessió com a prova.

Aquesta pàgina explica quan apareix el pas, quines aplicacions el poden mostrar i com arriba la resposta a la teva decisió i als webhooks.

> [!WARNING]
>
> Didit mostra el pas i registra la resposta. Tu decideixes si el recorregut d'usuari compleix les lleis biomètriques que s'apliquen al teu negoci. Aquesta pàgina no constitueix assessorament legal: revisa la teva implementació amb el teu assessor legal.

## Quan apareix el pas

Una sessió mostra el pas de consentiment quan es compleixen totes dues condicions:

1. **El flux de treball captura una cara.** Un pas de Prova de vida, Coincidència facial o Estimació d'edat, la selfie que captura el pas de Verificació d'identitat amb la càmera frontal (tret que l'hagis desactivat), o l'enregistrament de vídeo de la sessió completa.
2. **El mode de consentiment de l'aplicació ho demana.** En mode **Automàtic**, s'aplica un dels [activadors](#què-activa-el-pas-en-mode-automàtic) següents. En mode **Sempre**, ho demanen totes les sessions que capturen una cara.

El pas apareix abans de la primera captura facial. Quan només el document d'identitat mostra un estat cobert, apareix just després de la captura del document i abans de la selfie, i no es calcula cap geometria facial a partir de les imatges de captura del document fins que la persona hi doni el consentiment.

Didit comprova el requisit quan la persona obre el flux i novament a cada pas fins que s'aplica. Un cop una sessió requereix consentiment, el continua requerint.

### Modes de consentiment

Tria el mode a la consola, a **Settings > Data and privacy > Biometric consent** de l'aplicació. Cada canvi es registra al [registre d'auditoria](https://docs.didit.me/ca/console/audit-logs.md).

| Mode | Què passa |
| - | - |
| **Automàtic** (per defecte, recomanat) | Mostra el pas només quan s'aplica un [activador](#què-activa-el-pas-en-mode-automàtic). Tota la resta veu l'avís estàndard d'una línia. |
| **Sempre** | Totes les persones a qui es captura la cara veuen el pas, siguin on siguin. La decisió registra `trigger: "forced"`. |
| **Mai** | Didit mai no mostra el pas. On la legislació estatal requereix consentiment, l'has de recollir tu mateix abans de la selfie i conservar el registre. |

### Què activa el pas en mode Automàtic

Didit comprova aquestes regles per ordre i registra la primera que s'aplica a `biometric_consent.trigger`:

| Activador | Quan s'aplica |
| - | - |
| `declared_state` | Has declarat un estat cobert en crear la sessió: `user_state`, o una adreça dels EUA a `expected_details`. |
| `ip_state` | La IP de la persona està ubicada a Illinois, Texas o Colorado. |
| `ip_unknown` | Sembla que la persona és als EUA (una IP dels EUA, un document dels EUA o dades dels EUA que has enviat), però no es pot determinar el seu estat: la IP és dels EUA sense cap estat associat, o no es pot localitzar mentre que les teves dades o el document situen la persona als EUA. |
| `document_issuer` | El document d'identitat llegit durant la captura del document ha estat emès per un estat cobert. |

**Les VPN, els servidors intermediaris i les xarxes d'allotjament no ho demanen per si mateixos.** Didit localitza la IP de la persona com qualsevol altra: una a Illinois, Texas o Colorado mostra el pas, i una en qualsevol altre lloc no ho fa. El pas només es demana si hi ha evidència clara d'un estat cobert (la IP, l'estat que ha emès el document d'identitat o un estat que hagis declarat), o quan la persona se situa als EUA sense cap estat (`ip_unknown`). A una persona d'un estat cobert que utilitzi una VPN amb sortida a un altre lloc, amb un document d'identitat que no hagi estat emès per cap estat cobert, no se li demana; fes servir el mode **Sempre**, o envia `user_state`, si necessites cobrir aquest cas.

Dos valors més descriuen com s'ha resolt el consentiment d'una sessió en lloc del motiu pel qual s'ha demanat:

| Activador | Significat |
| - | - |
| `forced` | El mode de l'aplicació és **Sempre**. |
| `customer_collected` | Has enviat el consentiment que ja havies recollit en crear la sessió (mira més avall). |

## Indica a Didit el que ja saps

[Create Session](https://docs.didit.me/ca/sessions-api/create-session.md) admet dos camps opcionals per a això:

| Camp | Què fa |
| - | - |
| `user_state` | On viu la persona, si ho saps: un codi de subdivisió ISO 3166-2 (`US-IL`, `ES-M`) o un codi o nom d'estat dels EUA (`IL`, `Illinois`). Un estat cobert mostra el pas amb `trigger: "declared_state"`. Un valor desconegut retorna `400`. |
| `biometric_consent` | Consentiment que ja has recollit: `{ "given_at": "<ISO 8601>", "text_version": "<your version id>" }`. El flux no ho torna a demanar i la decisió registra `status: "given"` amb `trigger: "customer_collected"`. `given_at` no pot estar en el futur. |

```json theme={null}
{
  "workflow_id": "YOUR_WORKFLOW_ID",
  "vendor_data": "user-42",
  "user_state": "US-IL",
  "biometric_consent": {
    "given_at": "2026-10-13T09:12:00Z",
    "text_version": "consent-v3"
  }
}
```

## Quines aplicacions mostren el pas

El pas necessita una aplicació que el pugui mostrar. Didit ho determina a cada sol·licitud que fa l'aplicació:

| On es verifica la persona | Mostra el pas |
| - | - |
| El flux de verificació allotjat: un navegador, el [Web SDK](https://docs.didit.me/ca/integration/web-sdks/overview.md) o una WebView | Sí |
| [SDK natiu](https://docs.didit.me/ca/integration/native-sdks/overview.md) 4.10.0 o posterior (iOS, Android i versions de React Native o Flutter que incloguin la versió nativa 4.10.0 o posterior) | Sí |
| Un SDK natiu inferior a 4.10.0, o un que no informi de la seva versió | No |

### SDKs natius inferiors a 4.10.0

Els SDKs natius publicats abans de la versió 4.10.0 no coneixen el pas de consentiment, de manera que Didit mai no els el demana. La verificació s'executa exactament com abans: el selfie i les altres captures facials s'accepten i es processen, i la sessió arriba a la decisió com de costum.

Didit mai no registra un consentiment que no s'hagi donat. Quan la sessió requeria consentiment i un SDK anterior ha capturat una cara, la decisió mostra:

```json theme={null}
"biometric_consent": {
  "required": true,
  "trigger": "ip_state",
  "status": "pending",
  "given_at": null,
  "reason": "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"
}
```

> [!WARNING]
>
> **Actualitza a l'SDK natiu 4.10.0 o posterior si verifiques persones a Illinois, Texas o Colorado en una aplicació nativa.** Fins que no ho facis, aquestes sessions finalitzaran sense consentiment explícit, i recollir-lo abans del selfie és responsabilitat teva.

Si la persona continua la mateixa sessió en el flux allotjat (en un altre dispositiu, o en una WebView que l'aplicació obre per a determinats tipus de prova de vida), el flux allotjat mostra el pas i no hi captura cap cara fins que no respongui. El consentiment donat allà manté `reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`, perquè les cares ja s'havien capturat sense aquest.

## Què veu la persona

El pas informa la persona de què es recull, per què, qui ho té i quant de temps es conserva, i enllaça a la [Política de dades biomètriques](https://didit.me/legal/biometric-data-policy). Té un únic botó: **Accepto i continuo**, que roman desactivat fins que la persona marca la casella d'acceptació.

Didit conserva la resposta com a prova: quan es va donar, la versió i el hash del text mostrat, l'idioma, el pas del flux de treball i la IP, la ubicació i l'agent d'usuari de la sol·licitud. Un cop la persona accepta, la resposta és definitiva.

## Quan la persona no hi està d'acord

El pas no té cap botó per rebutjar. Una persona que no vulgui donar el consentiment surt del flux: no es captura cap cara i la sessió finalitza com a `Abandoned` com qualsevol altra sessió que la persona no acaba (consulta [Estats de verificació](https://docs.didit.me/ca/integration/verification-statuses.md)). Ofereix-li una altra manera de verificar-se.

### Consentiment rebutjat a l'API

La decisió manté un estat `declined` i el motiu `BIOMETRIC_CONSENT_DECLINED` com a valors de l'API. Actualment cap pantalla de Didit ofereix l'opció de rebutjar, de manera que el flux allotjat i els SDKs natius no en registren cap. Una sessió que registra un rebuig:

* Finalitza com a `Declined`, i el webhook `status.updated` es dispara com amb qualsevol altre rebuig.
* Mostra `biometric_consent.status` com a `declined`, `reason` i `decline_reason` com a `BIOMETRIC_CONSENT_DECLINED`, i `declined_at` amb l'hora.
* No captura cap cara després del rebuig. Totes les imatges facials i plantilles facials que la sessió ja contingui s'eliminen: els selfies, el selfie amb la càmera frontal de la captura del document d'identitat, el retall facial del retrat del document i els vídeos de prova de vida i de sessió completa. `face_data_deleted_at` registra quan. La decisió ja no els retorna, i l'eliminació és irreversible.
* Conserva les imatges dels documents i les dades que se n'han extret: el rebuig no els afecta.

## A la decisió i als webhooks

Cada decisió de Verificació d'usuaris conté un objecte `biometric_consent`, a [Recuperar la sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md) i al camp `decision` dels [webhooks de sessió](https://docs.didit.me/ca/integration/webhooks.md). És `null` quan la sessió mai no s'ha avaluat, per exemple en un flux de treball sense captura facial.

| `status` | Significat |
| - | - |
| `not_required` | La sessió no requeria consentiment. |
| `pending` | El consentiment és obligatori i no s'ha donat. Consulta `reason` per distingir un SDK anterior d'una persona que encara no ha respost. |
| `given` | La persona ha acceptat en el flux, o has enviat `biometric_consent` en crear-la. |
| `declined` | S'ha registrat un rebuig i la sessió ha finalitzat com a `Declined`. Actualment cap pantalla de Didit ofereix l'opció de rebutjar (consulta més [amunt](#consentiment-rebutjat-a-l’api)). |

| `reason` | Significat |
| - | - |
| `BIOMETRIC_CONSENT_UNSUPPORTED_SDK` | Un SDK natiu inferior a 4.10.0, o un que no ha informat de la seva versió, ha capturat una cara sense el pas. |
| `BIOMETRIC_CONSENT_DECLINED` | S'ha registrat un rebuig. Actualment cap pantalla de Didit ofereix l'opció de rebutjar. |
| `null` | Res a explicar. Sempre `null` quan la sessió no requeria consentiment. |

Una sessió en què la persona ha acceptat en el flux allotjat:

```json theme={null}
"biometric_consent": {
  "required": true,
  "trigger": "declared_state",
  "status": "given",
  "given_at": "2026-10-13T18:31:07.412000Z",
  "declined_at": null,
  "text_version": "bio-consent-2026-10-12",
  "locale": "en",
  "policy_url": "https://didit.me/legal/biometric-data-policy",
  "step": "LIVENESS",
  "ip_address": "198.51.100.23",
  "ip_country_code": "ES",
  "detected_ip_address": "198.51.100.23",
  "detected_country_code": "ES",
  "jurisdictions": ["IL"],
  "retention_months": 36,
  "reason": null,
  "decline_reason": null,
  "face_data_deleted_at": null
}
```

L'exemple està abreujat. Tots els camps, amb el seu tipus, es troben a [Models de dades](https://docs.didit.me/ca/reference/data-models.md#consentiment-biomètric).

## Contingut relacionat

* [Crear la sessió](https://docs.didit.me/ca/sessions-api/create-session.md): `user_state` i `biometric_consent`.
* [Recuperar la sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md): la decisió que conté `biometric_consent`.
* [SDKs natius](https://docs.didit.me/ca/integration/native-sdks/overview.md): versions i passos d'actualització.
* [Seguretat i compliment](https://docs.didit.me/ca/getting-started/security-compliance.md): les teves responsabilitats en els fluxos de verificació.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.