Overview

Credential Offers are the mechanism for initiating credential issuance in the Issuer2 Service. An offer is created from a credential profile and generates an OID4VCI credential offer URL that can be claimed by any compliant wallet.

What is a Credential Offer?

A credential offer is a one-time or limited-use invitation for a wallet to receive a credential. When you create an offer, you specify:

  • Profile – The credential profile to use as the base configuration
  • Authentication Method – Pre-authorized or authorization code flow
  • Delivery Mode – Credential offer by reference or by value
  • Expiration – How long the offer remains valid
  • Runtime Overrides – Any profile values to override for this specific offer

Offer Flow

  1. Create Offer – Call the offers endpoint with a profile ID
  2. Share URL – Send the credential offer URL to the user (QR code, deep link, etc.)
  3. Wallet Claims – User's wallet resolves the offer and receives the credential

Authentication Methods

MethodDescriptionUse Case
PRE_AUTHORIZEDNo user authentication requiredKnown users, pre-verified data
AUTHORIZEDUser must authenticate via IdPUnknown users, dynamic data collection

Pre-Authorized Code Flow

The pre-authorized flow is simpler and faster:

  • Issuer creates offer with all credential data
  • User scans QR code or clicks link
  • Wallet receives credential immediately (optionally with PIN)

Authorization Code Flow

The authorization code flow supports user authentication:

  • Issuer creates offer (optionally with partial data)
  • User scans QR code or clicks link
  • Wallet redirects to IdP for authentication
  • ID token claims are mapped to credential data
  • Wallet receives credential

Offer Delivery Modes

ModeDescription
BY_REFERENCEOffer URL contains a reference; wallet fetches full offer from issuer (default)
BY_VALUEFull credential offer is embedded in the URL

BY_REFERENCE is recommended for most use cases as it keeps URLs shorter and allows the issuer to track when offers are resolved.

Issuer State Mode

For authorization code flow, you can optionally include an issuer_state parameter:

ModeDescription
OMITNo issuer state included (default)
INCLUDEInclude issuer state for session correlation

Next Steps

Last updated on April 8, 2026