---
title: "Overview"
description: "Receive verifiable credentials into a Wallet2 service via OID4VCI 1.0."
stack: "Enterprise Stack (commercial) — version 1.1.1"
stack_version: "1.1.1"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/overview
generated: 2026-10-01
---
# Credential Receiving

The **Wallet2 Service** receives credentials from an issuer using [OID4VCI 1.0](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md). You hand the wallet a **credential offer** — typically an `openid-credential-offer://` URL from an issuer such as [Issuer2](https://docs.walt.id/enterprise-stack/services/issuer2-service/overview.md) — and the wallet claims the credential and stores it in a linked Credential Store.

All endpoints live under `/v2/{target}/wallet-service-api/`, where `{target}` is the wallet's resource path (`{organization}.{tenant}.{wallet-id}`).

## How It Works

Receiving a credential runs through the same steps regardless of format:

1. **Resolve the offer** — parse the offer and fetch the issuer's metadata.
2. **Get an access token** — exchange a pre-authorized code (or an authorization code) for a token.
3. **Sign a proof of possession** — prove the wallet controls the holder key.
4. **Fetch the credential** — request it from the issuer's credential endpoint.
5. **Store it** — the credential is saved to the wallet's Credential Store.

## Two Ways to Receive

- **Full flow** — a single call (`POST /v2/{target}/wallet-service-api/credentials/receive`) runs every step for you. This is the recommended path and what the per-format guides below use.
- **[Isolated Flow](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/isolated-flow.md)** — drive each step yourself. Use it for custom wallet UIs (resolve-offer returns issuer display and per-offer credential details for consent before accept), the authorization-code grant, deferred issuance, inline keys, client attestation, and storing fetched credentials.

## Supported Formats

Choose the credential type that matches your use case — the flow is identical; only the offer's credential type and the stored `format` differ:

- [SD-JWT VC (IETF) via OID4VCI](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/sd-jwt-vc.md) — `format: dc+sd-jwt`
- [W3C VC via OID4VCI](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/w3c-vc.md) — `format: jwt_vc_json`
- [mDL / mDoc (ISO 18013-5) via OID4VCI](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/mdl.md) — `format: mso_mdoc`

Need fine-grained control? See [Isolated Flow](https://docs.walt.id/enterprise-stack/services/wallet2-service/credential-receiving/isolated-flow.md).
