OpenID4VC - Receive and Store Credential
The Wallet Unit (WU) enables both individuals (natural persons) and organisations (legal persons) to act as holders of verifiable credentials, much like a personal or organisational wallet functions in the physical world. As a core capability within the iGrant.io Organisation Wallet architecture, the Wallet Unit enables entities, such as companies, institutions, teams, or individuals, to securely receive, store, and manage verifiable credentials in accordance with the Openid for Verifiable Credential Issuance (OpenID4VCI) standards. This page outlines how an Organisation Wallet Unit receives credentials from a trusted issuer, whether in real time or via deferred issuance flows, using secure and standards-based mechanisms. It also explains how credentials are stored for future presentation and how trust, privacy, and interoperability are maintained throughout the process. Below are the steps for requesting a credential offer from a known issuer, using the wallet-initiated flow defined by OpenID for Verifiable Credentials Issuance (OID4VCI), and is as illustrated below:
Step 1: Get the API Key (Issuer Admin)
To get the API key, contact support@igrant.io.
Step 2: Receive Credential
Copy the credential offer received from a known issuer as per OpenID4VCI. This offer could be received out-of-band via email or by logging into the issuer's system. Use the provided endpoint to obtain the credential.
If the credential is unavailable, the issuer will respond with an acceptance token, indicating that credential issuance is “Deferred.” Otherwise, the credential is issued in “InTime” mode.
If the response contains the acceptance_token
field, the holder's wallet can request the credential using the deferred credential endpoint. If the credential is available, the state will be set to credential_ack
. If not, it will remain in credential_pending
, and the holder's wallet will need to keep requesting the deferred credential until it becomes available.
Step 3: Receive Credential with User PIN
If a transaction code (or user PIN) is needed, execute this API to request the credential using the transaction code.
Step 4: List Stored Credentials
Use this endpoint to list credentials stored in the Organisation Wallet.