> ## 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.

# Verificació d'identitat: guia d'inici ràpid

> Crea el teu flux KYC en minuts amb Didit: crea un flux de treball sense codi, inicia una sessió i rep webhooks. $10 de crèdit gratuït/mes.

Aquesta guia d'inici ràpid et porta des d'un compte nou de Didit fins a una verificació d'identitat en directe: crea el teu compte, construeix un flux de treball de verificació a partir d'una plantilla, configura un webhook i copia la teva clau d'API, inicia una sessió de verificació amb una sola crida a l'API i rep la decisió en temps real.Aquesta pàgina es complementa amb la lliçó d'Academy següent: una gravació de pantalla de 19 minuts que construeix un flux de treball de verificació a la consola real, des de la plantilla fins al flux publicat, incloent-hi regles, ramificacions, preus i l'enllaç per compartir.[Construeix el teu primer flux de verificació — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?rel=0\&playsinline=1)

Prompt d'inici ràpid
        Copia el prompt al porta-retalls



      
      

\<pre>

\````# Goal — ship your first Didit verification end-to-end

You are integrating Didit (https://docs.didit.me) into my project. Take me from zero to a working KYC / KYB flow: account, workflow, session, hosted UI, webhook, decision.

For the full canonical recipe (5K-token version covering SDK pick, webhook HMAC verification, every status, decision parsing), use:

https://docs.didit.me/integration/integration-prompt

That page has a "Copy Prompt" button — copy its prompt and follow it. The summary below is enough to bootstrap if you can't fetch the full prompt.

\## My application context

\<my_stack>
Stack: [framework + language, e.g. Next.js 15 + TypeScript]
Surface: [web | iOS | Android | React Native | Flutter | backend-only]
Use case: [KYC at signup | KYB at business onboarding | age gate | re-auth]
Database: [Postgres | MySQL | Mongo]
\</my_stack>

\## Steps

1\. **Register programmatically (2 calls)** — `POST https://apx.didit.me/auth/v2/programmatic/register/` then `POST https://apx.didit.me/auth/v2/programmatic/verify-email/` with the 6-char code. Save `response.application.api_key` as `DIDIT_API_KEY`.

2\. **Create a workflow** —
\```bash
curl -X POST https://verification.didit.me/v3/workflows/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflow_label": "Standard KYC",
"workflow_type": "kyc",
"features": [
  \{"feature": "OCR"},
  \{"feature": "LIVENESS", "config": {"face_liveness_method": "PASSIVE"}},
  \{"feature": "FACE_MATCH"},
  \{"feature": "AML"}
]
}'
\```
Persist `workflow.id`.

3\. **Create a session** —
\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$WORKFLOW_ID", "vendor_data": "user-42", "callback": "https://myapp.com/kyc/return"}'
\```
Response contains `session_id`, `url`, `session_token`. Redirect the user to `url` (or open in the SDK / an iframe).

4\. **Register a webhook destination** — `POST https://verification.didit.me/v3/webhook/destinations/` with `{"label": "Production", "url": "...", "subscribed_events": ["status.updated","data.updated","user.status.updated","user.data.updated"], "webhook_version": "v3"}` (`label` and `url` are required). Save the returned `secret_shared_key` as `DIDIT_WEBHOOK_SECRET` (`GET /v3/webhook/destinations/{destination_uuid}/` returns it again).

5\. **Receive webhooks** — verify the `X-Signature-V2` header (HMAC-SHA256 of canonical JSON; see /integration/webhooks). De-dupe on `event_id`. Respond within 5 seconds. Apply decision to your DB based on `status`.

6\. **Retrieve the decision (fallback)** — `GET https://verification.didit.me/v3/session/{session_id}/decision/`. V3 returns plural arrays (`id_verifications[]`, `liveness_checks[]`, `face_matches[]`, `aml_screenings[]`, ...). Never assume singular V2 fields.

\## Failure modes
\- Missing API key → `403 {"detail": "You do not have permission to perform this action."}` on verification.didit.me. Wrong, revoked or expired key → `401`. JWT problems on apx.didit.me → `403`.
\- Invalid `workflow_id` → `400`.
\- Webhook handler slower than 5s, or answering 5xx or 404 → Didit retries twice, after about 1 and 4 minutes, then drops the delivery. Resend it from the destination's delivery log.

\## Sources of truth (cross-check before shipping)
\- /openapi-25.json — verification API
\- /openapi-auth.json — programmatic auth
\- /reference/data-models — V3 decision shape
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Enganxa a

**1. Crea el teu compte de Didit**1) Ves a [business.didit.me](https://business.didit.me)
2) Registra't amb SSO o correu electrònic i contrasenya
3) Crea la teva **Organització** — és l'espai on el teu equip gestiona els fluxos de treball, les claus d'API i l'activitat de verificació**2. Construeix un flux de treball de verificació**Navega a **Fluxos de treball** a la barra lateral i fes clic a **Crea'n un de nou**. Tria un tipus de flux de treball:| Tipus | Descripció |
| - | - |
| **Flux de treball simple** | Els passos s'executen en un ordre definit — ideal per a fluxos d'alta estàndard |
| **Flux de treball basat en nodes** | Lògica de ramificació flexible — construeix camins condicionals basats en els resultats de la verificació |Tria una plantilla per començar:| Plantilla | Cas d'ús |
| - | - |
| **KYC** | Alta d'usuaris estàndard |
| **Verificació d'edat adaptativa** | Comprovació d'edat per selfie amb alternativa de document d'identitat |
| **Autenticació biomètrica** | Reautenticació per selfie sense contrasenya |
| **Verificació d'adreça** | Flux de comprovant de domicili |Personalitza activant o desactivant blocs: Prova de vida, Coincidència facial, AML, NFC, Telèfon, Correu electrònic i més.El fragment següent reprèn la lliçó d'Academy al minut 2:50, on es crea un nou flux de treball a partir d'una plantilla i es configura node per node.[Creació d'un nou flux de treball a partir d'una plantilla — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?start=170\&rel=0\&playsinline=1)**3. Configura el webhook i copia la clau d'API**Ves a **Desenvolupadors** a la barra lateral, després a **Claus d'API** i **Webhooks**:1. Afegeix la teva **URL del webhook** — Didit hi envia actualitzacions d'estat
2. Copia la teva **clau d'API** — mantén-la només al servidor, no l'exposis mai al codi del client
3. Desa el **secret de signatura** de la destinació com a `DIDIT_WEBHOOK_SECRET` al teu `.env` — és necessari per verificar l'HMAC `X-Signature-V2` als webhooks entrants> [!TIP]
>
> Pots **provar webhooks directament** des d'aquesta pàgina amb diferents dades i estats — sense necessitat d'executar una verificació completa. Això et permet validar que la teva integració funciona correctament abans de passar a producció.**4. Inicia una sessió de verificació****Opció A — Sessions allotjades** (recomanat)El nostre mètode d'integració preferit. Didit fa proves A/B del flux allotjat contínuament, de manera que la taxa de finalització, la rapidesa i la resistència al frau continuen millorant sense que hagis de publicar cap interfície d'usuari.A la consola, fes clic a **"+"** → selecciona un flux de treball → genera un enllaç o codi QR. O crea sessions de manera programàtica:```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id": "your-workflow-id"}'
```> [!NOTE]
>
> Troba el teu `workflow_id` a **Fluxos de treball** a la barra lateral.A la lliçó d'Academy sobre integració, aquest és el minut 3:36: la crida per crear una sessió amb el seu únic camp obligatori, i després les dades del proveïdor i la URL de callback.[Crear una sessió: l'únic camp obligatori — Didit Academy](https://www.youtube.com/embed/fX03-WEu_EI?start=216\&rel=0\&playsinline=1)**Opció B — API independents** (avançat)Crida els endpoints directament des del teu backend — sense necessitat de sessió. Ideal per a fluxos servidor a servidor o personalitzats:| Endpoint | Objectiu |
| - | - |
| `POST /v3/id-verification/` | Comprovació de documents |
| `POST /v3/face-match/` | Selfie vs. document |
| `POST /v3/aml/` | Sancions i PEP |
| `POST /v3/passive-liveness/` | Detecció de deepfakes |Consulta la llista completa a [Referència de l'API](https://docs.didit.me/ca/standalone-apis/id-verification.md).**5. Rep resultats en temps real**Didit envia esdeveniments de webhook al teu endpoint — sense necessitat de fer consultes periòdiques.| Esdeveniment | Activador |
| - | - |
| `status.updated` | L'estat de la sessió d'usuari o de la sessió d'empresa canvia |
| `data.updated` | Les dades de verificació de la sessió o de la sessió d'empresa canvien |
| `user.status.updated` | L'estat de l'usuari del proveïdor canvia |
| `user.data.updated` | El perfil o les dades agregades de l'usuari del proveïdor canvien |
| `business.status.updated` | L'estat de l'empresa del proveïdor canvia |
| `business.data.updated` | El perfil o les dades agregades de l'empresa del proveïdor canvien |
| `activity.created` | Esdeveniment d'activitat registrat |
| `transaction.created` | Transacció creada |
| `transaction.status.updated` | L'estat de la transacció canvia |Consulta [Webhooks](https://docs.didit.me/ca/integration/webhooks.md) per conèixer el format del payload i la verificació de la signatura.**6. Gestiona i supervisa**Utilitza la consola per:- Veure el progrés de la sessió en temps real
- Descarregar informes en PDF/CSV per al compliment normatiu
- Afegir identificadors o cares sospitosos a la llista de bloqueig
- Actualitzar o rebutjar sessions manualmentLa lliçó d'Academy sobre la lectura de resultats recorre una sessió real comprovació per comprovació: advertències, puntuacions, el registre d'esdeveniments, els lliuraments de webhooks i l'exportació en PDF que et demanarà el teu equip de compliment.[Com llegir un resultat de verificació — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?rel=0\&playsinline=1)## Necessites ajuda> [card] [Correu electrònic](mailto:hello@didit.me)
>
> [hello@didit.me](mailto:hello@didit.me)


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