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.
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.
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.
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.
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 successfully404– Profile not found
Profile Status
Profiles can have the following statuses:
| Status | Description |
|---|---|
ACTIVE | Profile is active and can be used to create offers |
INACTIVE | Profile has been deactivated and cannot be used for new offers |
Next Steps
- Create Credential Offers – Use your profiles to create credential offers
- Notifications – Configure webhook notifications for your profiles
