---
title: "Digital Credentials API"
description: "Learn how to issue and present credentials through the OS Digital Credentials API with the walt.id Wallet SDK."
stack: "Community Stack (open source) — 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/community-stack/mobile-wallet/digital-credentials-api
generated: 2026-10-01
---
# Digital Credentials API

This guide shows you how to register the walt.id Wallet SDK with the operating-system [Digital Credentials API](https://docs.walt.id/concepts/data-exchange-protocols/dc-api.md) so a website or native app can request credentials without a QR code or custom URL scheme. The SDK reuses the same OID4VCI and OID4VP sessions documented in [Receiving Credentials](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md) and [Presenting Credentials](https://docs.walt.id/community-stack/mobile-wallet/present-credentials.md).

[**Digital Credentials API**](https://docs.walt.id/concepts/data-exchange-protocols/dc-api.md): The OS-mediated protocol that lets a relying party request credentials through the system picker instead of a wallet-specific URL.

## Prerequisites

Before you begin, ensure you have:

- **A wallet with stored credentials** — Follow [Integrate the SDK](https://docs.walt.id/community-stack/mobile-wallet/integrate-the-sdk.md) and [Receive Credentials](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md).
- **Platform Digital Credentials support** — Android Credential Manager for get/create; iOS Identity Document Services for ISO 18013-7 presentation.

---

## Current Platform Coverage

| Platform | Currently supported |
|---|---|
| **Android** | OID4VCI create (`openid4vci-v1`), OID4VP (`openid4vp-v1-unsigned` and `openid4vp-v1-signed`), and ISO 18013-7 Annex C (`org-iso-mdoc`) for mdoc and SD-JWT VC as registered. |
| **iOS** | ISO 18013-7 mdoc presentation through Identity Document Services. OID4VP is not exposed to third-party wallets. Minimum OS reported by the SDK is iOS/iPadOS 26. |

Check `wallet.digitalCredentialCapabilities()` at runtime. Registration can fail independently of wallet loading — inspect `digitalCredentialRegistration` or call `refreshDigitalCredentialRegistration()`.

## Android

Android Credential Manager hosts both **get** (presentation) and **create** (issuance).

- **Get** — The SDK registers claim paths for mdoc and SD-JWT VC so the system picker can match a verifier request. Preview with `previewDigitalCredentialPresentation` and submit with `submitDigitalCredentialPresentation`. ISO 18013-7 Annex C requests use `previewAnnexCPresentation` / `submitAnnexCPresentation` instead.
- **Create** — Register issuance capability separately from presentation. `AndroidDigitalCredentialCreateProvider` extracts the OID4VCI create request; pass the offer JSON with `MobileWalletCredentialOffer.InlineJson` into `startIssuance`.

```kotlin
val session = wallet.startIssuance(
    MobileWalletIssuanceRequest(offer = MobileWalletCredentialOffer.InlineJson(offerJson))
)
```

Compound values, JSON null, data URIs, and recognized base64 image payloads retain their registered paths without a matching value. They can be requested by field presence, but cannot satisfy an exact-value constraint in the platform matcher.

## iOS

iOS uses the Identity Document Provider extension for presentation. The Swift WalletSDK bridges registration status with Identity Document Services. The wallet core still previews and builds the response; the extension returns it to the OS.

**Note:**

Identity Document Services registers ISO mobile documents. SD-JWT VCs have no doctype to register under, and OpenID4VP is not available to third-party wallets on this platform.

Set `WalletConfiguration.crossProcessAccess` with the App Group and Keychain access group shared by the app and the extension.

## Next Steps

- **Drive OID4VCI sessions, including inline offers** — [Receiving Credentials via OID4VCI](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md).
- **Drive OID4VP preview and submit** — [Presenting Credentials via OID4VP](https://docs.walt.id/community-stack/mobile-wallet/present-credentials.md).
- **Exercise OS pickers from a sample app** — [Try the Demo](https://docs.walt.id/community-stack/mobile-wallet/try-the-demo.md).
