---
title: "Overview"
description: "Choosing between the Pre-Authorized Code Flow and the Authorization Code Flow in the Issuer2 API."
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/issuer2/protocol-flows/overview
generated: 2026-10-01
---
# Overview

Issuer2 supports two [OID4VCI](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md) flows for claiming a credential offer, set via the `authMethod` field when [creating a credential offer](https://docs.walt.id/community-stack/issuer2/credential-offers/create-offer.md). This section walks through the full sequence for each so you know what's actually happening between the wallet, your issuer, and (for one of them) an external identity provider.

## Which Flow Should I Use?

| | Pre-Authorized Code Flow | Authorization Code Flow |
|---|---|---|
| **`authMethod`** | `PRE_AUTHORIZED` | `AUTHORIZED` |
| **User authentication** | None (optionally a PIN/`txCode`) | Required — user logs in at an external IdP |
| **Best for** | Known users (already logged in) and data already verified before the offer is created | Unknown users, or credential data that should come from the user's own IdP login (e.g. corporate SSO) |
| **Extra setup required** | None | None to try it — a [hosted test provider](https://docs.walt.id/community-stack/issuer2/configurations/config-files/authentication-service.md#default-test-provider) with ready-made logins is used by default. For production, register your own OAuth 2.0 / OpenID Connect (OIDC) provider in [`authentication-service.conf`](https://docs.walt.id/community-stack/issuer2/configurations/config-files/authentication-service.md) |
| **Credential data source** | Fully defined in the profile (or runtime overrides) ahead of time | Profile defaults (or runtime overrides), enriched with claims from the IdP's ID token via `idTokenClaimsMapping` |

## Available Flows

- [Pre-Authorized Code Flow](https://docs.walt.id/community-stack/issuer2/protocol-flows/pre-authorized-flow.md) — Sequence diagram for issuing a credential with no user login.
- [Authorization Code Flow](https://docs.walt.id/community-stack/issuer2/protocol-flows/authorization-code-flow.md) — Sequence diagram for issuing a credential after the holder authenticates against an external IdP.
