Manage Credential Profiles

This guide covers how to manage your credential profiles after creation, including viewing, updating, and deactivating 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",
    "status": "ACTIVE",
    "version": 1,
    "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
    "createdAt": 1704067200000,
    "updatedAt": 1704067200000
  },
  {
    "profileId": "waltid.tenant1.issuer1.profile-def456",
    "name": "Identity Credential Profile",
    "status": "ACTIVE",
    "version": 2,
    "credentialConfigurationId": "identity_credential_vc+sd-jwt",
    "createdAt": 1704067200000,
    "updatedAt": 1704153600000
  }
]

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",
  "status": "ACTIVE",
  "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)",
  "status": "ACTIVE",
  "version": 2,
  "credentialConfigurationId": "UniversityDegree_jwt_vc_json",
  "issuerKeyId": "waltid.tenant1.kms1.key1",
  "issuerDid": "did:key:z6MkjoRhq1jSNJdLiruSXrFFxagqrztZaXHqHGUTKJbcNywp",
  "credentialData": { ... },
  "mapping": { ... },
  "createdAt": 1704067200000,
  "updatedAt": 1704153600000
}

Deactivate a Profile

Deactivate a credential profile when it's no longer needed. This is a soft-delete operation – the profile data is retained but can no longer be used to create new offers.

Deactivating a profile does not affect existing credential offers that were created from this profile. Those offers will 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 deactivate

Response Codes

  • 200 – Profile deactivated successfully
  • 404 – Profile not found

Profile Status

Profiles can have the following statuses:

StatusDescription
ACTIVEProfile is active and can be used to create offers
INACTIVEProfile has been deactivated and cannot be used for new offers

Next Steps

Last updated on April 8, 2026