Manage Credential Profiles

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

List All Profiles

Retrieve a list of all credential profiles for your issuer service.

CURL

Endpoint: GET /v2/{target}/issuer-service-api/credentials/profiles/list | API Reference

Example Request

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

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

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


View a Profile

Retrieve the full details of a specific credential profile.

CURL

Endpoint: GET /v2/{target}/issuer-service-api/credentials/profiles?profileId={profileId} | API Reference

Example Request

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

Query Parameters

  • profileId: resourceIdentifier – The full profile ID to retrieve

Example Response

{
  "profileId": "waltid.tenant1.issuer1.profile-abc123",
  "name": "University Degree Profile",
  "version": 1,
  "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
  "issuerKeyId": "waltid.tenant1.kms1.key1",
  "issuerDid": "did:key:z6MkjoRhq1jSNJdLiruSXrFFxagqrztZaXHqHGUTKJbcNywp",
  "credentialData": {
    "@context": [
      "https://www.w3.org/2018/credentials/v1",
      "https://www.w3.org/2018/credentials/examples/v1"
    ],
    "type": [
      "VerifiableCredential",
      "UniversityDegree"
    ],
    "credentialSubject": {
      "degree": {
        "type": "BachelorDegree",
        "name": "Bachelor of Science and Arts"
      }
    }
  },
  "mapping": {
    "id": "<uuid>",
    "issuer": {
      "id": "<issuerDid>"
    },
    "credentialSubject": {
      "id": "<subjectDid>"
    },
    "issuanceDate": "<timestamp>",
    "expirationDate": "<timestamp-in:365d>"
  },
  "createdAt": 1704067200000,
  "updatedAt": 1704067200000
}

Update a Profile

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

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 will use the latest version.

CURL

Endpoint: PUT /v2/{target}/issuer-service-api/credentials/profiles?profileId={profileId} | API Reference

Example Request

curl -X 'PUT' \
  'https://{orgID}.enterprise-sandbox.waltid.dev/v2/{target}/issuer-service-api/credentials/profiles?profileId=waltid.tenant1.issuer1.profile-abc123' \
  -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/2018/credentials/v1",
      "https://www.w3.org/2018/credentials/examples/v1"
    ],
    "type": [
      "VerifiableCredential",
      "UniversityDegree"
    ],
    "credentialSubject": {
      "degree": {
        "type": "BachelorDegree",
        "name": "Bachelor of Science and Arts"
      }
    }
  },
  "mapping": {
    "id": "<uuid>",
    "issuer": {
      "id": "<issuerDid>"
    },
    "credentialSubject": {
      "id": "<subjectDid>"
    },
    "issuanceDate": "<timestamp>",
    "expirationDate": "<timestamp-in:730d>"
  }
}'

Query Parameters

  • profileId: resourceIdentifier – The full profile ID to update

Example Response

{
  "profileId": "waltid.tenant1.issuer1.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
}

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.

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.

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

CURL

Endpoint: DELETE /v2/{target}/issuer-service-api/credentials/profiles?profileId={profileId} | API Reference

Example Request

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

Query Parameters

  • profileId: resourceIdentifier – The full profile ID to delete

Response

  • 200 OK – Profile deleted (or did not exist). The response body is empty.

The delete endpoint is idempotent: calling it for a profile that has already been deleted (or never existed) also returns 200 OK. This makes it safe to retry on transient network errors without special-case handling.


Next Steps

Last updated on June 19, 2026