---
title: "Manage Credential Profiles"
description: "Learn how to view, update, and delete credential profiles 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/credential-profiles/manage-profiles
generated: 2026-07-20
---
# Manage Credential Profiles

This guide covers how to manage your credential profiles after creation: listing, viewing, updating, and deleting them.

Every endpoint below shares the same path parameters and authentication:

- **orgID**: _String_ (required) - Your organization ID, e.g. `test.enterprise-sandbox.waltid.dev`.
- **target**: _String_ (required) - For **List**, the issuer service path `{organizationID}.{tenantID}.{issuerServiceID}` (e.g. `waltid.tenant1.issuer1`). For **View**, **Update**, and **Delete**, append the profile's own ID as the final path segment: `{organizationID}.{tenantID}.{issuerServiceID}.{profileId}` (e.g. `waltid.tenant1.issuer1.profile-abc123`).
- **Authorization**: _String_ (required) - Bearer token. Format: `Bearer {token}`.

---

## List All Profiles

Retrieve every credential profile for your issuer service.

**Option: CURL**

**Endpoint:** `GET /v2/{target}/issuer-service-api/credentials/profiles/list` | [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/credentials/profiles/list' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {yourToken}'
```

---

##### Example Response

```json
[
  {
    "profileId": "profile-abc123",
    "name": "University Degree Profile",
    "version": 1,
    "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
    "createdAt": 1704067200000,
    "updatedAt": 1704067200000
  },
  {
    "profileId": "profile-def456",
    "name": "Identity Credential Profile",
    "version": 2,
    "credentialConfigurationId": "identity_credential_vc+sd-jwt",
    "createdAt": 1704067200000,
    "updatedAt": 1704153600000
  }
]
```

**Response Codes**

- `200` — List returned (empty array if no profiles exist).
- `401` — Invalid or missing authentication token.

**Note:**

The list returns every profile that currently exists. Deleted profiles are removed from storage and no longer appear here.

---

## View a Profile

Retrieve the full details of a specific credential profile.

**Option: CURL**

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

The profile to view is identified by the **last path segment** of the target, `{target}.{profileId}`.

##### Example Request

```bash
curl -X 'GET' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1.profile-abc123/issuer-service-api/credentials/profiles' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {yourToken}'
```

**Path Parameters**

- **profileId**: _String_ (required) - The profile's own ID, appended to the issuer service target as the final segment (`{target}.{profileId}`).

---

##### Example Response

```json
{
  "profileId": "profile-abc123",
  "name": "University Degree Profile",
  "version": 1,
  "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
  "issuerKeyId": "waltid.tenant1.kms1.key1",
  "issuerDid": "did:key:z6MkjoRhq1jSNJdLiruSXrFFxagqrztZaXHqHGUTKJbcNywp",
  "credentialData": { "...": "..." },
  "mapping": { "...": "..." },
  "createdAt": 1704067200000,
  "updatedAt": 1704067200000
}
```

**Response Codes**

- `200` — Profile returned.
- `404` — No profile with that ID exists.
- `401` — Invalid or missing authentication token.

---

## Update a Profile

Update an existing credential profile. This creates a new version of the profile.

**Note:**

When you update a profile, a new version is created. Existing credential offers continue to use the profile version they were created with; new offers use the latest version.

**Option: CURL**

**Endpoint:** `PUT /v2/{target}.{profileId}/issuer-service-api/credentials/profiles` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html)

The profile to update is identified by the **last path segment** of the target, `{target}.{profileId}`.

##### Example Request

```bash
curl -X 'PUT' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1.profile-abc123/issuer-service-api/credentials/profiles' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {yourToken}' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "University Degree Profile (Updated)",
  "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
  "issuerKeyId": "waltid.tenant1.kms1.key1",
  "issuerDid": "did:key:z6MkjoRhq1jSNJdLiruSXrFFxagqrztZaXHqHGUTKJbcNywp",
  "credentialData": {
    "@context": [
      "https://www.w3.org/ns/credentials/v2"
    ],
    "type": ["VerifiableCredential", "UniversityDegree"],
    "credentialSubject": {
      "degree": {
        "type": "BachelorDegree",
        "name": "Bachelor of Science and Arts"
      }
    }
  },
  "mapping": {
    "id": "<uuid>",
    "validFrom": "<timestamp>",
    "validUntil": "<timestamp-in:730d>"
  }
}'
```

**Path Parameters**

- **profileId**: _String_ (required) - The profile's own ID, appended to the issuer service target as the final segment (`{target}.{profileId}`).

**Body Parameters**

The body has the same shape as [Create a Profile](https://docs.walt.id/enterprise-stack/services/issuer2-service/credential-profiles/create-profile.md). Server-managed fields (`profileId`, `version`, `createdAt`, `updatedAt`) are accepted but ignored.

---

##### Example Response

```json
{
  "profileId": "profile-abc123",
  "name": "University Degree Profile (Updated)",
  "version": 2,
  "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
  "issuerKeyId": "waltid.tenant1.kms1.key1",
  "issuerDid": "did:key:z6MkjoRhq1jSNJdLiruSXrFFxagqrztZaXHqHGUTKJbcNywp",
  "credentialData": { "...": "..." },
  "mapping": { "...": "..." },
  "createdAt": 1704067200000,
  "updatedAt": 1704153600000
}
```

**Response Codes**

- `200` — Profile updated; `version` incremented.
- `400` — Invalid request body.
- `401` — Invalid or missing authentication token.

---

## Delete a Profile

Permanently delete a credential profile. The profile is removed from storage and can no longer be used to create new credential offers.

**Error:**

**This is a hard delete and cannot be undone.** The profile is completely removed from the system. If you may need the profile (or its configuration) later, export or back it up before deleting.

**Note:**

Existing credential offers created from this profile are **not affected** by the deletion. They were captured at offer-creation time and continue to work until they expire.

**Option: CURL**

**Endpoint:** `DELETE /v2/{target}.{profileId}/issuer-service-api/credentials/profiles` | [API Reference](https://enterprise.sandbox.walt.id/swagger/index.html)

The profile to delete is identified by the **last path segment** of the target, `{target}.{profileId}`.

##### Example Request

```bash
curl -X 'DELETE' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v2/waltid.tenant1.issuer1.profile-abc123/issuer-service-api/credentials/profiles' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {yourToken}'
```

**Path Parameters**

- **profileId**: _String_ (required) - The profile's own ID, appended to the issuer service target as the final segment (`{target}.{profileId}`).

---

##### Example Response

An empty body with status `200`.

**Response Codes**

- `200` — Profile deleted (or did not exist). The response body is empty.
- `401` — Invalid or missing authentication token.

---

## Next Steps

- [Create Credential Offers](https://docs.walt.id/enterprise-stack/services/issuer2-service/credential-offers/overview.md) – Use your profiles to create credential offers.
- [Notifications & Session Events](https://docs.walt.id/enterprise-stack/services/issuer2-service/notifications.md) – Configure webhook notifications for your profiles.
