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.
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.
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.
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.
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
- Create Credential Offers – Use your profiles to create credential offers
- Notifications – Configure webhook notifications for your profiles
