Saltar al contenido principal
Didit recauda 7,5M $ para construir la infraestructura para identidad y fraude
Didit
Volver al blog
Blog · 6 de octubre de 2026

Guía de integración de una API de eID: patrones, código y seguridad

Guía centrada en el código para integrar eID nacionales con una API de eID: flujos de redirección, push en app, QR, tarjeta NFC y OpenID4VP, qué desarrollar, campos del resultado, alternativas y lista de control de seguridad.

Por DiditActualizado el
eid-api-integration-guide-cover.png

En resumen

Una API de eID permite que su proceso de alta pida a un sistema nacional de identidad electrónica (eID) que autentique a una persona y devuelva atributos de identidad firmados. Todos los sistemas usan uno de estos cinco patrones: una redirección en el navegador, una notificación push en una app con un código de comparación, un código QR o la apertura de una app, la lectura de una tarjeta con chip por comunicación de campo cercano (NFC) o una presentación desde la cartera europea de identidad digital (EUDI Wallet) mediante OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]

  • Usted sigue teniendo que comprobar la firma y el nivel de garantía.
  • La mayoría de los sistemas exigen un contrato, un certificado o un intermediario certificado antes de la primera llamada.[12][13][15]

Última revisión: 5 de octubre de 2026 · No constituye asesoramiento jurídico

Esta guía, centrada en el código, está dirigida a ingenieros que incorporan eID nacionales al proceso de alta de clientes.

Cómo funciona una API de eID: cinco patrones de interacción

Su sistema es la parte usuaria (RP). Nunca ve la credencial en sí, solo una respuesta firmada sobre la persona.

PatrónQué hace el usuarioCómo recibe la respuesta su backendEjemplo
Redirección (OpenID Connect, OIDC)Sale de su página hacia el inicio de sesión del sistema, se autentica y vuelveUn código de autorización, que se canjea por un token de ID firmadoID Austria, cuyo inicio de sesión OIDC solo admite el flujo de código de autorización[6]
Notificación push en una app con un códigoIntroduce un código personal, comprueba que el código de la pantalla coincide con el de la app e introduce el PIN en la appUsted espera o consulta periódicamente un resultado firmadoSmart-ID, Mobile-ID[10][20]
Código QR o apertura de una appEscanea un código QR animado en un ordenador, o la app se abre en el mismo teléfonoUsted consulta periódicamente al sistema hasta que se completa la ordenBankID de Suecia[8]
Tarjeta y NFCAcerca la tarjeta con chip al teléfono e introduce el PIN de la tarjetaUn servidor eID lee el chip y devuelve los atributosTarjeta de identidad electrónica alemana[14]
Presentación desde la cartera (OpenID4VP)Aprueba en una app de cartera qué atributos se compartenUna presentación de atributos firmados y divulgados de forma selectivaCartera EUDI[2]

Algunos esquemas funcionan detrás de una pasarela pública: TARA, de Estonia, es una pasarela de código de autorización situada delante del documento de identidad, Smart-ID, Mobile-ID y las eID de la UE.[7] Consulte esquemas de eID por país para ver qué patrón utiliza cada esquema.

Qué construye usted y qué gestiona un proveedor

El acceso va antes que el código. En Dinamarca, todo proveedor de servicios debe pasar por un intermediario de MitID certificado.[12] En Suecia, BankID se contrata con un banco o un distribuidor y se solicita un certificado de parte usuaria.[15] En Alemania, puede operar su propio servidor eID, usar un servicio eID alojado con su propio certificado o usar un servicio de identificación sin tener ningún certificado propio.[13] Para la cartera EUDI, una parte usuaria debe registrarse en el Estado miembro en el que esté establecida.[1]

CapaDirecta, esquema por esquemaA través de una única API de eID
Contratos y certificadosUno por esquema, renovado según el ciclo de cada esquemaLos tiene el proveedor; usted tiene un único contrato
Código de protocoloOIDC, API de sondeo, un servidor eID, OpenID4VPUna API de sesiones y un formato de resultado
PantallasSelector, QR, código de comparación, errores, por esquemaFlujo alojado o SDK
Comprobación de firmaA su cargo, según la clave y el formato de cada esquemaLa realiza el proveedor y la comunica como veredicto
Nivel de garantíaA su cargo solicitarlo y comprobarloQueda registrado en el resultado; la política la sigue fijando usted
Alternativa para personas sin eIDUn segundo proveedor o una vía manualUna vía documental en el mismo flujo
La decisión de incorporaciónA su cargoSigue siendo suya

Existen intermediarios certificados para la mayoría de los esquemas nórdicos y bálticos. Opte por la integración directa para un único esquema con gran volumen; use una única API cuando los usuarios procedan de varios países.

El flujo de redirección, paso a paso

Este es el flujo de código de autorización de OIDC. Su backend redirige el navegador con un state y un nonce aleatorios. Después intercambia el código devuelto por un token de ID y lo comprueba.

Usuario Su backend Proveedor de eID
1Inicia el registro
2Redirección con state y nonce

El usuario inicia sesión con la eID

3Código a su callback
4Intercambio del código por tokens
5Token de ID firmado

Comprobar state, nonce, firma y acr

6Cuenta abierta

Un inicio de sesión por redirección. Los intermediarios y las pasarelas añaden saltos en el paso 2, no pasos nuevos para usted.

La comprobación posterior al paso 5 es la más importante. Según la documentación de ID-porten de Digdir, el cliente "DEBE validar que el nivel de seguridad (acr) es suficientemente alto".[5] Interprete acr como el nivel de garantía (LoA) que afirma el esquema y rechace todo lo que quede por debajo de su política.

El flujo de notificación en la app con código de comparación

Con Smart-ID y Mobile-ID el usuario no sale de su página. El usuario introduce un código de identificación personal (Mobile-ID también pide el número de teléfono). Su página muestra un código corto y el mismo código aparece en la app. El usuario aprueba con el PIN en el teléfono solo si los códigos coinciden.[20] Smart-ID también puede mostrar tres códigos y pedir al usuario que elija el correcto.[10]

Verifique su identidad

Elija cómo verificarse

Inicie sesión con la identidad electrónica que ya utiliza.

Smart-ID

1El usuario elige una eID entre las que usted acepta.

Verifique su identidad

Compruebe el código

4821

El mismo código aparece en su app de Smart-ID.

2Su página de verificación, en el dispositivo que se está usando, muestra un código de comparación. El mismo código aparece en la app.

Smart-ID

Introduzca su PIN

Solo si el código coincide con el que aparece en pantalla.

3El usuario introduce el PIN en la app, nunca en su página.

Verifique su identidad

Su identidad está verificada

  • Nombre completoCompartido
  • Fecha de nacimientoCompartido
  • Código personalCompartido
  • DirecciónNo compartido

4Los atributos firmados llegan a su backend.

BankID Sweden sigue el mismo esquema, con un QR en lugar de un código tecleado: el usuario abre la app en el mismo dispositivo con un token de inicio automático, o escanea un QR animado que se muestra en el otro dispositivo, y su backend consulta /collect hasta que la orden se completa. La orden completada incluye el número personal, el nombre, el nombre de pila y el apellido, además de campos de dispositivo, de firma y, de forma opcional, de riesgo.[8] Smart-ID+ traslada Smart-ID a este modelo (QR dinámico en ordenador, de app a app en el móvil), de modo que los usuarios ya no teclean un código personal en un sitio web.[11]

Usuario Su backend API del esquema App del esquema
1Introduce el código personal
2Muestra el código de comparación
3Inicia la solicitud de autenticación
4Notificación push al teléfono

La app muestra el mismo código; el usuario teclea el PIN

5Consulta el resultado
6Resultado firmado

Un inicio de sesión con Smart-ID o Mobile-ID, en el orden en que lo ve el usuario: código personal, código de comparación en su página, el mismo código en la app y, después, el PIN.[20] En la variante QR de BankID, el paso 1 desaparece y el paso 2 muestra un código QR.

Tarjeta y NFC, y la cartera EUDI mediante OpenID4VP

Con el documento de identidad electrónico alemán, el usuario acerca la tarjeta a un teléfono con NFC en la AusweisApp. Antes de que se introduzca el PIN, la ley exige que la app muestre el nombre y la dirección del proveedor y las categorías de datos solicitadas, y solo se envían esas categorías.[14]

Según la OpenID Foundation, OpenID4VP 1.0 es una especificación final.[16] El Marco de Arquitectura y Referencia (ARF) recoge como presentación remota OpenID4VP mediante redirecciones y esquemas URI personalizados como openid4vp://, OpenID4VP a través de la W3C Digital Credentials API, o ISO/IEC 18013-7 a través de esa API.[2][17] Antes de compartir nada, la cartera autentica su certificado de acceso, comprueba que no solicita más atributos de los que registró y permite al usuario aprobar cada uno.[2] El retrato solo pasa a ser obligatorio en los datos de identificación personal (PID) a partir del 11 de agosto de 2028, salvo que el usuario lo rechace expresamente.[18]

  1. 23 de julio de 2026ARF v3.0.0Versión actual del marco de la cartera.
  2. 24 de diciembre de 2026Plazo de las carterasCada Estado miembro ofrece al menos una cartera.
  3. 24 de diciembre de 2027AceptaciónLas partes usuarias privadas obligadas por ley o por contrato a utilizar la autenticación reforzada de usuario la aceptan a petición del usuario. Las microempresas y pequeñas empresas están exentas.
  4. 11 de agosto de 2028RetratoEl retrato del PID pasa a ser obligatorio salvo que el usuario lo rechace.

Fechas de la cartera EUDI que condicionan la hoja de ruta de una API de eID.[1][2][18]

La guía de la cartera EUDI trata el registro de partes usuarias y el grado de preparación por país.

Errores, alternativas y reintentos

Un inicio de sesión termina completado, cancelado, caducado o fallido. Trate los tres últimos de la misma forma y decida por país qué ocurre después.

1Ofrece las eID del país del usuario

Lista de aceptación por país; el usuario elige.

El inicio de sesión se completó con una firma válida y el nivel exigido

Sí

Almacene los atributos firmados

Nombre, fecha de nacimiento, identificador, nivel.

No

Recurra a la alternativa o rechace

Documento con lectura del chip, o fin de la sesión.

2Haz el cribado y decide

Aplique sus propias reglas de riesgo a los datos verificados.

Nunca reintente automáticamente un inicio de sesión cancelado. Haga que el callback sea idempotente, para que una recarga o un evento duplicado no puedan abrir dos cuentas. Mantenga una vía para las personas sin eID, normalmente un documento de identidad con lectura del chip NFC, prueba de vida y comparación facial. Verificación de eID por NFC y seguridad del chip explica esa vía.

Lista de comprobación de seguridad para una integración de API de eID

  • Genere un state y un nonce nuevos en cada inicio de sesión y rechace cualquier callback que no coincida con ellos.
  • Verifique la firma de cada token o resultado antes de leer un solo atributo.
  • Compruebe el nivel de garantía en el resultado, no solo en la solicitud.[5]
  • Exija un nivel sustancial o alto cuando le sea aplicable la vía eID del AMLR.[3]
  • Nunca recoja el PIN de la eID en su página; corresponde a la app del esquema.[20]
  • En los inicios de sesión entre dispositivos, priorice el código QR o el lanzamiento de app a app frente a los códigos tecleados.[11]
  • Solicite solo los atributos que haya registrado y que necesite.[1]
  • Verifique las firmas y las marcas de tiempo de los webhooks antes de dar por bueno un resultado.

El anclaje jurídico es el Reglamento contra el blanqueo de capitales (AMLR), aplicable a partir del 10 de julio de 2027: el artículo 22(6)(b) admite «medios de identificación electrónica que cumplan los requisitos del Reglamento (UE) n.º 910/2014 en lo que respecta a los niveles de garantía “sustancial” o “alto”».[3] No todos los esquemas están notificados: MitID figura en la lista de la UE de esquemas notificados, Smart-ID no.[4]

Atención

El ARF advierte de que los flujos entre dispositivos con URI personalizados «son vulnerables a ataques de phishing y de retransmisión» y no recomienda los esquemas de URI personalizados para la presentación entre dispositivos.[2] Según Computer Sweden, en julio de 2019 la policía informó de una caída del 90% en las estafas telefónicas con BankID tras la introducción de los códigos QR.[9]

Cómo ayuda Didit con la integración de API de eID

Didit reúne cinco eID operativas tras una única API de sesiones (MitID, BankID Sweden, Finnish Trust Network, Smart-ID y Mobile-ID, en siete países), con una vía documental en el mismo flujo de trabajo. Hay más esquemas en la hoja de ruta de Didit, y la aceptación de la cartera EUDI llegará próximamente. Didit nunca solicita el PIN. Más información en la página de carteras de identidad digital y en la documentación de carteras.[19]

Active por país las eID operativas

En la consola: Workflows, el paso ID Verification, Countries, «Wallets accepted». A través de la API, la función ID Verification (OCR) recibe un objeto methods indexado por código de país ISO 3166-1 alfa-3, enviado con POST /v3/workflows/. El fragmento documentado para Dinamarca:[21]

{ "feature": "OCR", "config": { "methods": { "DNK": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" } } } } }

Y para Estonia, aceptando las dos eID basadas en el teléfono:[20]

{ "EST": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["smart_id", "mobile_id"], "on_failure": "fallback_to_document" } } }

providers es una lista de aceptación, no una clasificación. on_failure admite fallback_to_document o decline. Una cartera que no esté disponible en su entorno provoca el rechazo de todo el guardado, así que consulte antes el catálogo.[21]

Captura de pantalla pendiente: console-wallets-accepted

Selección de las eID aceptadas para un país en la consola de Didit.

Crear una sesión y leer el resultado

POST /v3/session/ con su workflow_id (y, opcionalmente, vendor_data y un callback) devuelve session_id, url y session_token. Abra la URL o use el SDK.[24] El resultado llega por webhook o mediante GET /v3/session/{id}/decision/, con verification_method: "wallet", assurance: "cryptographic" y un objeto wallet_verification.[19]

CampoEjemploQué le indica
providermitidQué eID eligió el usuario
issuing_authorityDanish Agency for Digital GovernmentQuién respalda la identidad
issuing_countryDNKLa vía de identificación, no la nacionalidad
level_of_assurancesubstantialEl nivel declarado por el esquema
signature_validtrueLa aserción firmada se verificó correctamente
attributesfull_name, date_of_birth, cpr_aliasDatos validados. Los nombres varían según la eID
portrait, face_match_scorenullNinguna eID activa comparte un retrato

Un nivel inferior al solicitado hace que el inicio de sesión falle. Solo se facturan los inicios de sesión completados.[19] Precios: MitID, Finnish Trust Network $0.25; BankID Sweden, Smart-ID, Mobile-ID $0.20.

Webhooks y sandbox

Verifique X-Signature-V2 con el secreto de su destino, rechace un X-Timestamp con más de 300 segundos de antigüedad y base la idempotencia en event_id. Una entrega fallida se reintenta hasta dos veces.[22] Una aplicación de sandbox puede habilitar todas las carteras, aprueba sin un inicio de sesión real y ofrece wallet_cancelled, wallet_timeout y wallet_provider_error para probar su flujo alternativo.[23]

eIDPaísesNivel en DiditEstado en Didit
MitIDDinamarcaSustancialActivo
BankID SueciaSueciaSustancialActivo
Finnish Trust NetworkFinlandiaSustancialActivo
Smart-IDEstonia, Letonia, Lituania, BélgicaAltoActivo
Mobile-IDEstonia, LituaniaAltoActivo
BankID NoruegaNoruegaSin definirPróximamente
Freja eIDSueciaNo definidoPróximamente
itsmeBélgicaNo definidoPróximamente
iDINPaíses BajosNo definidoPróximamente
Documento de identidad electrónico alemánAlemaniaNo definidoPróximamente
FranceConnectFranciaNo definidoPróximamente
ID AustriaAustriaNo definidoBajo petición
Cl@veEspañaNo definidoBajo petición
SPIDItaliaNo definidoBajo petición
E-ID suizaSuizaSin definirBajo petición
cartera europea de identidad digital (EUDI Wallet)UE y EEESin definirPróximamente

Didit proporciona

  • Acceso a los sistemas, certificados y verificación de la firma
  • Una única API de sesión, flujo alojado y SDK
  • La vía documental con lectura del chip NFC para usuarios sin eID

Queda en sus manos

  • Qué eID aceptar en cada país
  • El nivel de garantía que exige su política
  • La decisión de alta y la responsabilidad

Una única API de eID para todos los países en los que opera

Active las eID operativas en cada país, mantenga los documentos como alternativa y pague solo por los inicios de sesión completados.

Empiece gratisHable con nosotrosLea la documentación

Conclusiones clave

  • Toda eID utiliza uno de cinco patrones: redirección, notificación push en la app con un código, QR o apertura de la app, tarjeta y NFC, u OpenID4VP.
  • Lo primero es el acceso: intermediarios, contratos, certificados o registro.
  • Compruebe la firma y el nivel de garantía en cada resultado.
  • Las partes usuarias privadas obligadas por ley o por contrato a utilizar autenticación reforzada de usuario deben aceptar la cartera EUDI a petición del usuario a más tardar el 24 de diciembre de 2027 (las microempresas y pequeñas empresas están exentas).

Preguntas frecuentes

¿Qué es una API de eID?

Es una interfaz que permite a su aplicación pedir a un sistema nacional de identidad electrónica, o a un proveedor que se conecta a varios, que autentique a una persona y devuelva atributos de identidad firmados. Aun así, usted debe comprobar la firma y el nivel de garantía de su respuesta.

¿Necesito una integración distinta para cada sistema de eID?

Si se integra directamente, sí: cada sistema tiene su propio contrato, certificado y protocolo. En Dinamarca debe utilizar un intermediario certificado de MitID, y BankID Sweden se contrata a través de un banco o de un distribuidor.[12][15] Una única API de eID oculta esas diferencias tras una sola sesión y un solo formato de resultado.

¿Qué protocolo utilizan las eID nacionales?

Muchos sistemas utilizan OpenID Connect, a menudo a través de una pasarela como ID-porten o TARA.[5][7] Otros usan sus propias API de sondeo (BankID Sweden, Smart-ID) o un servidor eID que lee una tarjeta con chip (Alemania).[8][13] La cartera EUDI utiliza OpenID4VP o ISO/IEC 18013-7.[2]

¿Qué datos devuelve un inicio de sesión con eID?

Depende del sistema. BankID Sweden devuelve el número personal, el nombre, el nombre de pila y el apellido.[8] La tarjeta de identidad electrónica alemana envía solo las categorías de datos indicadas en el certificado del proveedor (§ 18(5)). No envía el número de identificación nacional de la tarjeta, que la lista del § 18(3) no incluye.[14]

¿Cómo se exige el nivel de garantía?

Solicite el nivel que necesita y compruebe el nivel declarado en el resultado, como el claim acr en OIDC. ID-porten indica que los clientes deben validar que el nivel de seguridad es suficientemente alto.[5] Trate cualquier nivel inferior al de su política como insuficiente y no abra la cuenta.

¿Qué debe ocurrir cuando un usuario no tiene eID o cancela?

Decida por país entre una alternativa y un rechazo. No reintente automáticamente un inicio de sesión cancelado.

¿Cómo probar una integración de eID sin usuarios reales?

Simule aprobaciones, cancelaciones y tiempos de espera agotados en el entorno de pruebas (sandbox) del proveedor. Una aprobación simulada no demuestra que una identidad real pueda iniciar sesión. Realice una prueba autorizada con un dispositivo real antes del despliegue.[20]

¿Cuándo deben aceptar las empresas la cartera EUDI?

Las partes usuarias privadas obligadas por ley o por contrato a utilizar la autenticación reforzada de usuario deben aceptarla a petición del usuario a más tardar el 24 de diciembre de 2027. Las microempresas y las pequeñas empresas están exentas.[1]

Fuentes

  1. Reglamento (UE) 2024/1183 (eIDAS 2), EUR-Lex, Diario Oficial de 30 de abril de 2024, artículos 5a, 5b y 5f.
  2. Architecture and Reference Framework v3.0.0, proyecto EUDI Wallet de la Comisión Europea, publicado el 23 de julio de 2026, secciones 4.4.3, 5.7.1 y 6.6.3.
  3. Reglamento (UE) 2024/1624 (AMLR), EUR-Lex, artículo 22(6).
  4. Overview of pre-notified and notified eID schemes under eIDAS, Comisión Europea, consultado el 5 de octubre de 2026.
  5. ID-porten ID token, Agencia Noruega de Digitalización (Digdir).
  6. Anbindung mit OpenID Connect, documentación para desarrolladores de ID Austria.
  7. TARA technical specification, Autoridad del Sistema de Información de Estonia (RIA).
  8. Auth and sign: collect, documentación para desarrolladores de BankID.
  9. QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 de julio de 2019 (fuente secundaria).
  10. Why do I sometimes see one confirmation code and sometimes three, Smart-ID.
  11. How does the new Smart-ID protect me from fraud, Smart-ID.
  12. Intermediarios de MitID, Agencia Danesa de Administración Digital.
  13. Become a service provider, AusweisApp, Gobierno federal alemán.
  14. Sección 18 de la Ley de Pasaportes y Documentos de Identidad (PAuswG), Gesetze im Internet.
  15. Conecte su empresa a BankID, BankID.
  16. OpenID for Verifiable Presentations 1.0 final specification approved, OpenID Foundation.
  17. Digital Credentials, W3C.
  18. Reglamento de Ejecución (UE) 2026/1731 de la Comisión, EUR-Lex, retrato en el PID a partir del 11 de agosto de 2028.
  19. Carteras de identidad digital, documentación de Didit.
  20. Integración de Smart-ID y Mobile-ID, documentación de Didit.
  21. Configuración de funcionalidades del flujo de trabajo, documentación de Didit.
  22. Webhooks, documentación de Didit.
  23. Sandbox y datos de prueba, documentación de Didit.
  24. Inicio rápido, documentación de Didit.

Consulte cada eID nacional, su nivel y su estado en la página de verificación con eID.

Ponga en marcha el inicio de sesión con eID sin un contrato por cada sistema

Empiece con las eID ya operativas, añada sistemas a medida que sus usuarios los necesiten y mantenga los documentos para todos los demás.

Empezar gratisHable con nosotros

Infraestructura para identidad y fraude.

Una API para KYC, KYB, Monitoreo de Transacciones y Detección de Fraude en Wallets. Intégrala en 5 minutos.

Pide a una IA que resuma esta página