Credential Receiving
The Wallet API v2 receives credentials from an issuer using OpenID4VCI 1.0. You hand the wallet a credential offer — typically an openid-credential-offer:// URL from an issuer such as Issuer2 — and the wallet claims the credential and stores it.
How It Works
Receiving a credential runs through five steps:
- Resolve the offer — parse the offer and fetch the issuer's metadata.
- Get an access token — exchange a pre-authorized code (or an authorization code) for a token.
- Sign a proof of possession — prove the wallet controls the holder key.
- Fetch the credential — request it from the issuer's credential endpoint.
- Store it — the credential is saved to the wallet's credential store.
Two Ways to Receive
- Full flow — a single call (
POST /wallet/{walletId}/credentials/receive) runs all five steps for you. This is the recommended path, and what the credential guides below use. - Custom Flow — drive each step yourself. Use it for custom wallet UIs, the authorization-code grant, deferred issuance, and advanced options like inline keys and client attestation.
Supported Formats
- SD-JWT VC (IETF)
- W3C VC (JWT-signed)
- ISO 18013-5 mDL
Start Receiving
Choose the credential type that matches your use case:
Need fine-grained control? See Custom Flow.
Last updated on July 13, 2026
