API de Digital Credentials para la emisión de credenciales

Natalia Markoborodova
Natalia Markoborodova

Publicado el 26 de noviembre de 2025

Puedes unirte a la prueba de origen para la emisión de la API de Digital Credentials a partir de Chrome 143. Esta nueva API facilita que los sitios web aprovisionen credenciales digitales en la billetera preferida del usuario.

Antecedentes

En el ecosistema de identidad digital de tres partes de entidades emisoras, verificadores (entidades que confían) y titulares (billeteras), es común que un usuario aprovisione un documento de identidad digital en su billetera a través del aprovisionamiento push. Durante el proceso, el usuario inicia el proceso de emisión de documentos de identidad directamente desde el sitio web o la app de la entidad emisora. Por ejemplo, un usuario que visita el sitio web del departamento de vehículos motorizados (entidad emisora) de un estado puede iniciar el proceso para guardar su licencia digital en la app de billetera (titular) que prefiera en su dispositivo.

Para que este modelo sea exitoso, el emisor necesita una forma segura y confiable de conectarse con la app de la billetera para emitir el documento de identidad. Este proceso se ha fragmentado, ya que cada entidad emisora tuvo que crear sus propias conexiones para cada app de billetera con la que se asoció, por lo general, basándose en esquemas de URI personalizados. Este enfoque generó una fricción significativa en la implementación, lo que obligó a los emisores a crear y mantener la compatibilidad con un ecosistema fragmentado de diferentes integraciones de billeteras.

Emisión de la API de Digital Credentials

Para optimizar este proceso, Chrome está expandiendo la compatibilidad con la API de credenciales digitales de W3C, lo que se suma a las capacidades de presentación que se lanzaron recientemente. El método navigator.credentials.create() permite que los sitios web de la entidad emisora invoquen de forma segura las apps de la billetera para la emisión de credenciales. Cuando el sitio web de una entidad emisora llama a navigator.credentials.create() con un miembro de digital, el navegador delega el flujo a la plataforma, que se limita a Android a partir de Chrome 143. La plataforma muestra una lista de las billeteras compatibles instaladas en el dispositivo. Luego, el usuario puede seleccionar una billetera y dar su consentimiento para agregar la credencial.

La emisión de la API de Digital Credentials funciona tanto para situaciones en el mismo dispositivo (en dispositivos móviles) como en varios dispositivos (iniciadas en computadoras). En una situación de varios dispositivos, el navegador para computadoras muestra un código QR. Cuando el usuario escanea el código en su dispositivo móvil, se iniciará el flujo mediado por la plataforma si ambos dispositivos están cerca.

Cómo usar la API

La API es independiente del protocolo y está diseñada para funcionar con estándares abiertos, por ejemplo, el estándar OpenID for Verifiable Credential Issuance (OpenID4VCI).

Para iniciar el flujo de emisión, el sitio web de la entidad emisora debe llamar a navigator.credentials.create() y pasar las solicitudes de emisión dentro de un objeto digital, por ejemplo:

// Check if the browser supports Digital Credentials issuance and the protocol.
if (window.DigitalCredential && DigitalCredential.userAgentAllowsProtocol('openid4vci-v1')) {

  // Construct a credential offer according to the OpenID4VCI specification.
  // Note: The API is in an active development stage. Always consult the
  // specification and documentation for the most recent implementation details
  const credentialOffer = {
    credential_issuer: 'https://digital-credentials.dev',
    credential_configuration_ids: [
      'org.iso.18013.5.1.mDL'
    ],
    authorization_server_metadata: {
      issuer: 'https://digital-credentials.dev',
      token_endpoint: 'https://digital-credentials.dev/openid4vci/token',
      authorization_endpoint: 'https://digital-credentials.dev/openid4vci/auth',
      grant_types_supported: [
        'authorization_code',
        'urn:ietf:params:oauth:grant-type:pre-authorized_code'
      ],
      response_types_supported: ['code','token']
    },
    // Metadata details to help the wallet display the credential correctly.
    credential_issuer_metadata: {
      credential_endpoint: 'https://digital-credentials.dev/openid4vci/credential',
      credential_configurations_supported: {
        'org.iso.18013.5.1.mDL': {
          format: 'mso_mdoc',
          display: [{
            name: 'Driving License',
            locale: 'en-US',
            description: 'Mobile Driving License'
          }],
          // The claims that this document contains.
          // For a full list of standard mDL claims, see the ISO/IEC 18013-5 specification.
          claims: [{
            path: ['org.iso.18013.5.1', 'family_name'],
            display: [{ name: 'Family Name', locale: 'en-US' }]
          }
          // ... Add any other claims for your document here.
          ]
        }
      }
    }
  };

  // This call is made from the issuer's frontend, likely inside a button's click handler.
  try {
    await navigator.credentials.create({
      digital: {
        requests: [{
          // The protocol identifier for this version of OpenID4VCI.
          protocol: 'openid4vci-v1',
          data: credentialOffer
          }
        }]
      }
    });
    console.log('Credential issuance handoff to OS was successful.');
  } catch (e) {
    console.error('Error starting the credential issuance flow:', e);
  }

} else {
  // The API is not supported. Provide an alternative issuance method.
  console.log('Digital Credential Issuance API is not supported in this browser.');
}

Probar

Antes de probar la API de Digital Credentials en tu navegador y dispositivo Android, haz lo siguiente:

  • Actualiza Chrome a la versión 143 o posterior en computadoras y ten Servicios de Google Play 24.0 o posterior en tu dispositivo Android.
  • Habilita la marca en chrome://flags/#web-identity-digital-credentials-creation en tu navegador.
  • Instala una app de billetera compatible en tu dispositivo Android, por ejemplo, la CMWallet de demostración.

Para probar el flujo multidispositivo para emitir credenciales digitales, haz lo siguiente:

  1. Navega a https://digital-credentials.dev/dmv en una computadora de escritorio.
  2. Presiona el botón Agregar para iniciar el flujo de emisión.
  3. Escanea el código QR con tu dispositivo Android y sigue las indicaciones.

Después de seguir estos pasos, tendrás una nueva credencial emitida para la billetera en tu dispositivo Android.

Para habilitar esta función en tu sitio web para los usuarios, únete a la prueba de origen de la API de Digital Credentials para la emisión. Para obtener más información, consulta el artículo Cómo comenzar a usar las pruebas de origen.

Comparte tus comentarios

Tus comentarios son fundamentales a medida que seguimos desarrollando la plataforma. Informa cualquier error o solicitud de función en el registro de errores de Chromium.