---
id: openID4vc-receive-and-store-credential
title: OpenID4VC - Receive and Store Credential
description: Step‑by‑step guide to receiving and storing Verifiable Credentials using OpenID4VC flows within the Data Wallet for secure digital interactions.
keywords: [OpenID4VC, receive credential, store credential, Data Wallet, verifiable credentials, EUDI Wallet, credential holder, OID4VC]
hide_title: false
sidebar_label: Receive and Store Credential
slug: /openID4vc-receive-and-store-credential/
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```

<head>
    <title>Learn to receive and store credentials with OpenID4V | iGrant.io DevDocs</title>
    <meta name="description" content="Step‑by‑step guide to receiving and storing Verifiable Credentials using OpenID4VC flows within the Data Wallet for secure digital interactions."/>
</head>
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 Suite 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 Suite 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:

![Issue credential - DCR](./images/eo-ow-receive-and-store-credential.png)

### Step 1: Get the API Key (Issuer Admin)

To get the API key, contact [support@igrant.io](mailto: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](/docs/openid4vc-api/config-receive-digital-wallet-open-id-credential) 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](/docs/openid4vc-api/config-receive-deferred-digital-wallet-open-id-credential). 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](/docs/openid4vc-api/config-receive-user-pin-for-digital-wallet-open-id-credential) to request the credential using the transaction code.

### Step 4: Accept the Credential to Holder Wallet
Use this [endpoint](/docs/openid4vc-api/config-accept-digital-wallet-open-id-credential/) to accept the Credential to the Holder Wallet.

### Step 5: List Stored Credentials
Use this [endpoint](/docs/openid4vc-api/config-list-digital-wallet-open-id-credential) to list credentials stored in the Organisation Wallet Suite.

:::info Trust status of the issuer
When a credential is offered, the wallet checks whether the issuer can be matched against a recognised trust list, such as the EU Trust List. If it cannot, the Data Wallet shows an **"Issuer not verified"** warning. This is a trust indicator, not a validation failure. See [The "Issuer not verified" notice](/docs/trust-untrusted-service-provider/) and [Trust in the Wallet Ecosystem](/docs/trust-overview/).
:::
