---
title: "Status List Aggregation"
description: "Learn how status lists are aggregated and exposed for offline verification in the walt.id Enterprise Issuer2 Service."
stack: "Enterprise Stack (commercial) — version 0.21.0"
stack_version: "0.21.0"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/enterprise-stack/services/issuer2-service/configurations/status-list-aggregation
generated: 2026-07-20
---
# Status List Aggregation

The Issuer2 Service provides a **status list aggregation** feature that lets verifiers and wallets discover and cache all status lists used by an issuer. This enables efficient offline verification of credential status.

It is based on the mechanism described in the [Token Status List](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-status-list-15) standard.

## Overview

When credentials are issued with status (revocation/suspension), the status information is stored in status list credentials. The status list aggregation endpoint provides a single location where verifiers can discover all status lists used by an issuer, making it easier to:

- **Pre-fetch status lists** for offline verification.
- **Cache status lists** to reduce network requests during verification.
- **Monitor status lists** for changes.

## Discovery via Authorization Server Metadata

The status list aggregation endpoint is advertised in the OAuth 2.0 Authorization Server Metadata, available at the standard well-known endpoint:

```text
GET /.well-known/oauth-authorization-server/v2/openid4vci
```

### Example Response

```json
{
  "issuer": "https://myorg.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1/issuer-service-api/openid4vci",
  "authorization_endpoint": "https://myorg.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1/issuer-service-api/openid4vci/authorize",
  "token_endpoint": "https://myorg.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1/issuer-service-api/openid4vci/token",
  "jwks_uri": "https://myorg.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1/issuer-service-api/openid4vci/jwks",
  "status_list_aggregation_endpoint": "https://myorg.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1/issuer-service-api/openid4vci/status-list-aggregation",
  "code_challenge_methods_supported": ["S256"]
}
```

The `status_list_aggregation_endpoint` field contains the URL where verifiers can fetch the aggregated status lists.

---

## Status List Aggregation Endpoint

The aggregation endpoint returns the URLs of all status list credentials used by the issuer. This endpoint is **public** — no authentication is required, so verifiers and wallets can fetch it directly.

**Option: CURL**

**Endpoint:** `GET /v2/{target}/issuer-service-api/openid4vci/status-list-aggregation` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html)

##### Example Request

```bash
curl -X 'GET' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v2/{target}/issuer-service-api/openid4vci/status-list-aggregation' \
  -H 'accept: application/json'
```

**Path Parameters**

- **orgID**: _String_ (required) - Your organization ID, e.g. `test.enterprise-sandbox.waltid.dev`.
- **target**: _String_ (required) - The resource identifier of the issuer service, `{organizationID}.{tenantID}.{issuerServiceID}`.

---

##### Example Response

```json
{
  "status_lists": [
    "https://myorg.enterprise-sandbox.waltid.dev/v1/waltid.tenant1.credentialstatus/credential-status-api/status-list/revocation-config",
    "https://myorg.enterprise-sandbox.waltid.dev/v1/waltid.tenant1.credentialstatus/credential-status-api/status-list/suspension-config"
  ]
}
```

**Response Fields**

- **status_lists**: _Array of Strings_ - URLs to the status list credentials used by the issuer.

**Response Codes**

- `200` — Aggregation returned.

### Response Format

The `status_lists` array contains one string per status list URL. The URLs are:

- **Sorted alphabetically** for consistent ordering.
- **Deduplicated** — each unique status list URL appears only once.
- **Filtered by format** — only status lists referenced by SD-JWT VC (`dc+sd-jwt`) and mDoc (`mso_mdoc`) profiles are included.

---

## How Status Lists Are Aggregated

The aggregation endpoint collects status list URLs by:

1. **Listing credential profiles** — All profiles on the issuer service are considered.
2. **Filtering by format** — Only profiles whose credential configuration format is SD-JWT VC (`dc+sd-jwt`) or mDoc (`mso_mdoc`) are kept; W3C JWT credentials use different status mechanisms.
3. **Extracting status configurations** — Each profile's `credentialStatus` configuration is examined.
4. **Resolving URLs** — The referenced status credential configurations are resolved to their public URLs via the [Credential Status Service](https://docs.walt.id/enterprise-stack/services/credential-status-service/overview.md).
5. **Deduplicating and sorting** — Multiple profiles may reference the same status list; duplicates are removed and the result is sorted alphabetically.

---

## Limitations

- **Token Status List only** — Aggregation covers SD-JWT VC and mDoc profiles, which use the Token Status List mechanism.
- **No change notifications** — The endpoint must be polled; there is no push mechanism.

---

## Related Documentation

- [Credential Profiles](https://docs.walt.id/enterprise-stack/services/issuer2-service/credential-profiles/create-profile.md) – Configure credential status in profiles.
- [Credential Status Service](https://docs.walt.id/enterprise-stack/services/credential-status-service/overview.md) – Manage status lists.
