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

# Referència de l'API de Didit: API REST de verificació d'identitat

> Referència de l'API REST de Didit: endpoints KYC, KYB, AML, biomètrics i monitoratge de transaccions, especificació OpenAPI, $10 gratis al mes.



Indicació d'integració de l'API independent
        Copia el prompt al porta-retalls



      
      

\<pre>

\``Integrate Didit standalone verification APIs into my backend for server-to-server identity checks.

\## Available Standalone APIs

\### Identity & Documents
\- POST /v3/id-verification/ — multipart/form-data: front_image (required), back_image (optional). Returns: { request_id, id_verification: { status, first_name, last_name, document_type, document_number, date_of_birth, nationality, expiration_date, issuing_state, address, parsed_address, warnings[] } }
\- POST /v3/poa/ — multipart/form-data: document (PDF/image). Returns: { request_id, poa: { status, document_type, issuer, poa_address, poa_parsed_address, issue_date, warnings[] } }
\- POST /v3/database-validation/ — JSON: { issuing_state, validation_type, first_name, last_name, date_of_birth, personal_number, ... }. Returns: { request_id, database_validation: { status, validations } }

\### Document AI
\- POST /v3/document-ai/ — multipart/form-data: document (PDF/image), fields (one JSON-encoded array string of { key, name, instruction, type: "text"|"number"|"date", required, is_full_name }, 1-30 items), expected_first_name + expected_last_name OR expected_company_name (+ expected_company_country), document_ai_name_match_score_threshold (default 80), per-risk *_action params. Returns: { request_id, document_ai: { status, extracted_data: { <key>: value|null }, detected_codes[], fields[], name_match_score, name_on_document, warnings[] } }. $0.20 per document.

\### Biometrics & Face
\- POST /v3/passive-liveness/ — multipart/form-data: user_image. Returns: { request_id, passive_liveness: { status, score, method } }
\- POST /v3/face-match/ — multipart/form-data: user_image + ref_image. Returns: { request_id, face_match: { status, score } }
\- POST /v3/face-search/ — multipart/form-data: user_image. Returns: { request_id, face_search: { status, total_matches, matches[] } }
\- POST /v3/age-estimation/ — multipart/form-data: user_image. Returns: { request_id, age_estimation: { status, age_estimation, score } }

\### Compliance
\- POST /v3/aml/ — JSON: { full_name, entity_type, date_of_birth, nationality, document_number, include_adverse_media, include_ongoing_monitoring }. Returns: { request_id, aml: { status, total_hits, hits[], score, entity_type } }

\### Business Verification (KYB)
\- POST /v3/kyb/search/ — JSON: { country_code (required), name, registration_number, tier: "basic" (default) | "shareholders" | "ubo", search_type: "contains", webhook_url, vendor_data, metadata }. `tier` picks the provider chain the search runs on; retrieve the candidate from select (Lite), shareholders or ubo. Up to $0.50 per successful request, separately from profile retrieval; empty results and failures are not charged. Returns: { request_id, kyb_registry: { companies[] ({ kyb_response_id, name, registration_number, status, type, fetch_status }), pagination, search_status, search_resolved } }. `kyb_response_id` is an opaque handle — pass it straight to select/shareholders/ubo, never parse it.
\- POST /v3/kyb/select/ — JSON: { kyb_response_id (from search), save_api_request, vendor_data, metadata }. **Lite** tier, priced per country ([per-country prices](https://docs.didit.me/getting-started/kyb-registry-pricing.md)). Returns: { request_id, kyb_registry: { status, company_name, registration_number, country_code, company_type, incorporation_date, registered_address, officers[], beneficial_owners[], fetch_status, data_resolved, ... } }
\- POST /v3/kyb/shareholders/ and POST /v3/kyb/ubo/ — same JSON shape as select. **Shareholders** and **UBOs** tiers, priced per country; delivered and billed as the highest tier the country's registries can serve. v3 only.

\### Contact Verification
\- POST /v3/email/send/ — JSON: { email }. Sends OTP code.
\- POST /v3/email/check/ — JSON: { email, code }. Verifies OTP.
\- POST /v3/phone/send/ — JSON: { phone, channel }. Sends OTP via SMS/WhatsApp/Telegram.
\- POST /v3/phone/check/ — JSON: { phone, code }. Verifies OTP.

\### Bank Verification
\- POST /v3/bank/account-check/ - JSON: { country (ISO 3166-1 alpha-3), account: { iban } or { account_number, sort_code | routing_number | ifsc | bsb | transit_institution | bank_code } or { clabe } or { cbu_cvu }, holder: { full_name } or { business_name }, vendor_data }. Checks that a bank account belongs to the name, with no session. Returns: { request_id, result: match | close_match | no_match | cannot_verify, holder_name (close_match only), account (masked), vendor_data, created_at }. Billed once per check the bank answers; errors are never billed.

\## Authentication
All requests require: Headers: { "x-api-key": DIDIT_API_KEY }
For file uploads: multipart/form-data. For JSON: Content-Type: application/json.

\## Common Parameters
\- save_api_request (bool, default true): if true, appears in Console > Manual Checks
\- vendor_data (string): your internal ID for tracking

\## Example: ID Verification (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('front_image', fs.createReadStream('./id_front.jpg'));
form.append('back_image', fs.createReadStream('./id_back.jpg'));

const response = await fetch('https://verification.didit.me/v3/id-verification/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, ...form.getHeaders() },
body: form
});
const result = await response.json();
// result.id_verification.status: "Approved" or "Declined"
// result.id_verification.first_name, .last_name, .document_number, etc.

\## Example: AML Screening
const response = await fetch('https://verification.didit.me/v3/aml/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
full_name: 'John Doe',
entity_type: 'person',
date_of_birth: '1990-01-15',
nationality: 'US'
})
});
const result = await response.json();
// result.aml.status, result.aml.total_hits, result.aml.hits

\## When to Use Standalone APIs vs Sessions
\- Standalone: you have images/data, server-to-server, batch processing, custom UX
\- Sessions: user-facing flows where Didit handles camera, UX, multi-step, 54 languages

\## Rate Limits
\- Free: 10/min. Paid: 600/min. Exceeded: HTTP 429.

\## Environment Variables
\- DIDIT_API_KEY — from Didit Console > API & Webhooks

\## Docs
\- API Reference: https://docs.didit.me/api-reference/overview
\- Sessions vs APIs: https://docs.didit.me/api-reference/overview
\- Webhooks: https://docs.didit.me/integration/webhooks``

\</pre>



      
      

Enganxa a

Didit ofereix **dos enfocaments complementaris** per a la verificació d'identitat. Entendre'n la diferència és essencial per triar la integració adequada per al teu cas d'ús.### [Sessions allotjades](https://docs.didit.me/ca/sessions-api/create-session.md)Fluxos de verificació complets amb una interfície preconstruïda i optimitzada. Els usuaris interactuen amb la interfície allotjada de Didit mitjançant redirecció, iframe o el SDK natiu.### [APIs independents](https://docs.didit.me/ca/standalone-apis/id-verification.md)Crides directes d'API de servidor a servidor. Envies dades (imatges, documents, noms) i reps resultats de verificació estructurats, sense cap interfície per a l'usuari final.***## Sessions allotjades (recomanades per als fluxos amb usuaris)Les sessions allotjades són **l'enfocament recomanat** per a la majoria d'integracions. Quan crees una sessió, Didit genera un `verification_url` que presentes a l'usuari. L'usuari completa tot el flux de verificació a la interfície optimitzada de Didit, i tu reps els resultats mitjançant webhook o API.### Com funciona**1. Crear sessió**El teu servidor crida `POST /v3/session/` amb un ID de flux de treball. Didit retorna un `verification_url` i un `session_token`.**2. Presenta-la a l'usuari**Redirigeix l'usuari, incrusta la sessió mitjançant iframe o inicialitza un SDK natiu amb el token de sessió.**3. L'usuari completa la verificació**L'usuari segueix el flux guiat de la interfície optimitzada de Didit: captura de l'ID, prova de vida i els passos addicionals que calguin.**4. Rep els resultats**Didit envia un webhook al teu servidor amb la decisió de verificació, o bé consultes el resultat mitjançant l'API de recuperació.### Per què les sessions són recomanables| Avantatge | Detalls |
| - | - |
| **UX optimitzada** | La interfície de verificació se sotmet contínuament a proves A/B a tot el món per aconseguir les taxes de finalització més altes |
| **Gestió de la càmera** | Selecció intel·ligent de la càmera, captura automàtica, controls de qualitat i compatibilitat amb dispositius integrada |
| **Flux guiat** | Instruccions pas a pas, retroacció en temps real i recuperació d'errors per a l'usuari |
| **Fluxos multifuncionals** | Encadena diverses funcionalitats (identitat + prova de vida + AML + telèfon + correu electrònic) en un sol flux |
| **Seguretat** | Antiesuplantació, prova de vida activa i empremta digital del dispositiu integrades al flux |
| **Compliment** | Registres d'auditoria a nivell de sessió, captura del consentiment i polítiques de conservació de dades gestionades automàticament |
| **Localització** | 54 idiomes amb detecció automàtica del navegador |
| **Natiu per a mòbils** | SDK natius per a iOS, Android, React Native i Flutter |
| **Sense manteniment** | Didit gestiona totes les actualitzacions de la interfície, els errors de navegadors i dispositius i els casos límit de la càmera |### Quan usar sessions- **Alta d'usuaris / KYC** — Els usuaris nous es registren i han de verificar la seva identitat
- **Verificació d'edat** — Confirma que els usuaris compleixen l'edat mínima requerida
- **Reverificació** — Torna a verificar periòdicament els usuaris existents
- **Autenticació biomètrica** — Els usuaris s'autentiquen amb la seva cara per a accions sensibles
- **Compliment en diversos passos** — Fluxos que requereixen identitat + prova de vida + AML + telèfon d'un sol cop
- **Qualsevol escenari en què l'usuari final sigui present** i interactuï directament### Endpoints de sessió| Endpoint | Finalitat |
| - | - |
| [Crear sessió](https://docs.didit.me/ca/sessions-api/create-session.md) | Genera una URL de verificació per a un usuari |
| [Recuperar sessió](https://docs.didit.me/ca/sessions-api/retrieve-session.md) | Obté els resultats complets i la decisió d'una sessió |
| [Llistar sessions](https://docs.didit.me/ca/sessions-api/list-sessions.md) | Consulta i filtra totes les sessions |
| [Eliminar sessió](https://docs.didit.me/ca/sessions-api/delete-session.md) | Elimina una sessió i totes les dades associades |
| [Generar PDF](https://docs.didit.me/ca/sessions-api/generate-pdf.md) | Exporta un informe de verificació en PDF |
| [Compartir sessió](https://docs.didit.me/ca/sessions-api/share-session/share.md) | Genera un token de compartició per al KYC reutilitzable amb un soci |
| [Importar una sessió compartida](https://docs.didit.me/ca/sessions-api/share-session/import.md) | Importa una sessió compartida per un soci (KYC reutilitzable) |***## APIs independents (per al processament de servidor a servidor)Les APIs independents et permeten cridar funcionalitats de verificació individuals **directament des del teu servidor**, sense cap interfície per a l'usuari final. Envies les dades (imatges, documents, noms) i reps resultats estructurats.### Com funciona**1. Envia les dades**El teu servidor crida un endpoint independent (p. ex., `POST /v3/id-verification/`) amb les dades necessàries: imatges, documents o camps JSON.**2. Rep els resultats**Didit processa la sol·licitud de manera síncrona i retorna els resultats de verificació estructurats a la resposta.### Quan utilitzar les APIs independents| Cas d'ús | Exemple |
| - | - |
| **Processament al servidor** | Ja tens imatges de documents de la teva pròpia interfície de captura i necessites verificar-les |
| **Verificació per lots** | Processament de documents d'identitat en bloc pujats per un equip d'operacions |
| **UX personalitzada** | Has creat el teu propi flux de captura i vols utilitzar Didit només per a l'anàlisi |
| **Comprovacions servidor a servidor** | Cribratge AML d'una llista de clients, sense cap interacció de l'usuari |
| **Processos automatitzats** | Revisions de compliment amb CI/CD o cron (p. ex., monitoratge AML diari) |
| **Integració amb sistemes existents** | Connexió de la verificació de Didit amb el teu sistema de gestió documental existent |
| **Crides d'una sola funcionalitat** | Només necessites una funcionalitat (p. ex., només cribratge AML o només coincidència facial) |### APIs independents disponibles**Identitat i documents**| API | Què fa |
| - | - |
| [Verificació d'identitat](https://docs.didit.me/ca/standalone-apis/id-verification.md) | Extreu i valida les dades dels documents d'identitat (imatges de davant i de darrere) |
| [Comprovant de domicili](https://docs.didit.me/ca/standalone-apis/proof-of-address.md) | Verifica documents d'adreça (factures de serveis, extractes bancaris, documents oficials) |
| [Validació d'adreces](https://docs.didit.me/ca/standalone-apis/address-validation.md) | Confirma que una adreça existeix i la retorna normalitzada, amb coordenades |
| [Validació en bases de dades](https://docs.didit.me/ca/core-technology/database-validation/overview.md) | Contrasta les dades de l'usuari amb bases de dades oficials |**Document AI**| API | Què fa |
| - | - |
| [Document AI](https://docs.didit.me/ca/standalone-apis/document-ai.md) | Extreu els camps que defineixes de qualsevol document (PDF o imatge), amb coincidència de noms i comprovacions de manipulació |**Biometria i rostre**| API | Què fa |
| - | - |
| [Prova de vida passiva](https://docs.didit.me/ca/standalone-apis/passive-liveness.md) | Verifica que hi ha una persona real (antisuplantació) a partir d'una sola imatge |
| [Coincidència facial](https://docs.didit.me/ca/standalone-apis/face-match.md) | Compara dos rostres per determinar si pertanyen a la mateixa persona |
| [Cerca facial](https://docs.didit.me/ca/standalone-apis/face-search.md) | Cerca un rostre a totes les sessions verificades anteriorment (1:N) |
| [Estimació d'edat](https://docs.didit.me/ca/standalone-apis/age-estimation.md) | Estima l'edat d'una persona a partir d'una imatge facial |**Compliment i risc**| API | Què fa |
| - | - |
| [Cribratge AML](https://docs.didit.me/ca/standalone-apis/aml-screening.md) | Cribra persones o empreses contra sancions, PEP i llistes de vigilància |**Verificació bancària**| API | Què fa |
| - | - |
| [Comprovació de compte bancari](https://docs.didit.me/ca/standalone-apis/bank-account-check.md) | Comprova que un compte bancari pertany a la persona o empresa que indiquis, abans d'enviar-hi diners |**Verificació d'empreses (KYB)**| API | Què fa |
| - | - |
| [Cerca al registre KYB](https://docs.didit.me/ca/standalone-apis/kyb-registry-search.md) | Cerca als registres mercantils pel nom, el número de registre i el país; fins a \$0.50 per sol·licitud satisfactòria |
| [Selecció al registre KYB](https://docs.didit.me/ca/standalone-apis/kyb-registry-select.md) | Obté el perfil complet del registre (administradors, titulars reals, adreces) d'una empresa seleccionada |***## Comparativa directa| | Sessions allotjades | APIs independents |
| - | - | - |
| **Esforç d'integració** | Baix: redirecció, iframe o SDK | Mitjà: tu gestiones la captura de dades i l'enviament |
| **Interacció de l'usuari** | Sí: l'usuari completa el flux a la interfície de Didit | No: només comunicació servidor a servidor |
| **Càmera/captura** | Gestionada per Didit (optimitzada) | Tu proporciones les imatges o dades |
| **Fluxos amb diverses funcionalitats** | Sí: encadena funcionalitats en un flux de treball | Una funcionalitat per cada crida a l'API |
| **Optimització de la UX** | Provada contínuament amb proves A/B | Tu controles la UX |
| **Localització** | 54 idiomes, detectats automàticament | N/A (sense interfície) |
| **Webhooks** | Notificacions d'estat automàtiques | N/A (resposta síncrona) |
| **Temps de resposta** | Asíncron (l'usuari completa el procés al seu ritme) | Síncron (segons) |
| **Ideal per a** | Alta i verificació d'usuaris finals | Processament al servidor i automatització |
| **Visibilitat a la consola** | Cicle de vida complet de la sessió al tauler | Apareix a la secció de comprovacions manuals |***## Puc utilitzar totes dues?**Sí.** Molts equips combinen els dos enfocaments:1) **Sessió per a l'alta**: els nous usuaris passen pel flux de verificació allotjat complet durant el registre
2) **AML independent per al monitoratge continu**: una tasca cron reavalua cada nit tots els usuaris aprovats contra les llistes de vigilància actualitzades
3) **Cerca facial independent per a la detecció de duplicats**: quan s'aprova una nova sessió, el teu servidor crida Cerca facial per comprovar si hi ha duplicats
4) **Verificació d'identitat independent per a les operacions**: el teu equip de compliment puja documents manualment per a revisions de casos límit### Exemple: arquitectura combinada| La teva aplicació | API de Didit | Tipus |
| - | - | - |
| **Flux de registre d'usuaris** | API de sessions (interfície allotjada) | Dirigit a l'usuari |
| **Recribratge AML nocturn** | API AML independent | Servidor a servidor |
| **Revisió de documents de l'equip d'operacions** | API de Verificació d'identitat independent | Servidor a servidor |
| **Detecció de rostres duplicats** | API de Cerca facial independent | Servidor a servidor |***## Primers passos### [Inici ràpid amb sessions](https://docs.didit.me/ca/integration/api-full-flow.md)Crea la teva primera sessió de verificació allotjada en 5 minuts.### [Autenticació de l'API](https://docs.didit.me/ca/getting-started/api-authentication.md)Obtén la teva clau d'API i comença a fer sol·licituds autenticades.### [Configura els webhooks](https://docs.didit.me/ca/integration/webhooks.md)Rep notificacions en temps real quan canviï l'estat de la verificació.### [Crea un flux de treball](https://docs.didit.me/ca/console/workflows.md)Crea fluxos de verificació personalitzats a la Business Console.***


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