Identus Cloud Agent API Reference (1.40.0)
Download OpenAPI specification:Download
The Identus Cloud Agent API facilitates the integration and management of self-sovereign identity capabilities within applications. It supports DID (Decentralized Identifiers) management, verifiable credential exchange, and secure messaging based on DIDComm standards. The API is designed to be interoperable with various blockchain and DLT (Distributed Ledger Technology) platforms, ensuring wide compatibility and flexibility. Key features include connection management, credential issuance and verification, and secure, privacy-preserving communication between entities. Additional information and the full list of capabilities can be found in the Open Enterprise Agent documentation
The Connections Management endpoints facilitate the initiation of connection flows between the current Agent and peer Agents, regardless of whether they reside in Cloud Agent or edge environments. This implementation adheres to the DIDComm Messaging v2.0 - Out of Band Messages specification section 9.5.4 - to generate invitations. The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the did:peer:2 specification. This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the invitee's subsequent execution of the connection flow. Upon accepting an invitation, the invitee sends a connection request to the inviter's DIDComm messaging service endpoint. The connection request's 'type' attribute must be specified as "https://atalaprism.io/mercury/connections/1.0/request". The inviter agent responds with a connection response message, indicated by a 'type' attribute of "https://atalaprism.io/mercury/connections/1.0/response". Both request and response types are proprietary to the Open Enterprise Agent ecosystem.
Retrieves the list of connection flow records available from the Agent's database.
Retrieve of a list containing connections available from the Agent's database. The API returns a comprehensive collection of connection flow records within the system, regardless of their state. Each connection item includes essential metadata such as connection ID, thread ID, state, role, participant information, and other relevant details. Pagination support is available, allowing for efficient handling of large datasets.
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
thid | string The |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "contents": [ ],
- "kind": "ConnectionsPage",
- "self": "/cloud-agent/connections?offset=10&limit=10",
- "pageOf": "",
- "next": "/cloud-agent/connections?offset=20&limit=10",
- "previous": "/cloud-agent/connections?offset=0&limit=10"
}
Create a new connection invitation that can be delivered out-of-band to a peer Agent.
Create a new connection invitation that can be delivered out-of-band to a peer Agent, regardless of whether it resides in Cloud Agent or edge environment.
The generated invitation adheres to the DIDComm Messaging v2.0 - Out of Band Messages specification section 9.5.4.
The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the did:peer:2 specification.
This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the invitee's subsequent execution of the connection flow.
In the Agent database, the created connection record has an initial state set to InvitationGenerated
.
The request body may contain a label
that can be used as a human readable alias for the connection, for example {'label': "Connection with Bob"}
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the connection creation.
label | string A human readable alias for the connection. |
goalCode | string A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. |
goal | string A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. |
Responses
Request samples
- Payload
{- "label": "Peter",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential"
}
Response samples
- 201
- 400
- 403
- 500
{- "connectionId": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "label": "Peter",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "theirDid": "did:peer:67890",
- "role": "Inviter",
- "state": "InvitationGenerated",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}, - "kind": "Connection"
}
Retrieves a specific connection flow record from the Agent's database based on its unique `connectionId`.
Retrieve a specific connection flow record from the Agent's database based in its unique connectionId
.
The returned item includes essential metadata such as connection ID, thread ID, state, role, participant information, and other relevant details.
Authorizations:
path Parameters
connectionId required | string <uuid> The |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
{- "connectionId": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "label": "Peter",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "theirDid": "did:peer:67890",
- "role": "Inviter",
- "state": "InvitationGenerated",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}, - "kind": "Connection"
}
Accept a new connection invitation received out-of-band from another peer Agent.
Accept an new connection invitation received out-of-band from another peer Agent.
The invitation must be compliant with the DIDComm Messaging v2.0 - Out of Band Messages specification section 9.5.4.
A new connection record with state ConnectionRequestPending
will be created in the agent database and later processed by a background job to send a connection request to the peer Agent.
The created record will contain a newly generated pairwise Peer DID used for that connection.
A connection request will then be sent to the peer Agent to actually establish the connection, moving the record state to ConnectionRequestSent
, and waiting the connection response from the peer Agent.
Authorizations:
Request Body schema: application/jsonrequired
The request used by an invitee to accept a connection invitation received from an inviter, using out-of-band mechanism.
invitation required | string The base64-encoded raw out-of-band invitation. |
Responses
Request samples
- Payload
{- "invitation": "eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0="
}
Response samples
- 200
- 400
- 403
- 500
{- "connectionId": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "label": "Peter",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "theirDid": "did:peer:67890",
- "role": "Inviter",
- "state": "InvitationGenerated",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}, - "kind": "Connection"
}
The Issue Credentials Protocol endpoints facilitate the initiation of credential issuance flows between the current Agent and peer Agents, regardless of whether they reside in Cloud Agent or edge environments. This implementation adheres to the Issue Credential Protocol 3.0 specification to execute credential issuance flows. The flow is initiated by the issuer who creates a credential offer and sends it to the holder's DIDComm messaging service endpoint. Upon accepting the received offer, the holder sends a credential request to the issuer. The issuer agent will then issue the credential (JWT or AnonCreds) and send an issue credential message containing the verifiable credential to the holder. The current implementation only supports one of the three alternative beginnings proposed in the spec, which is "the Issuer begin with an offer".
As a credential issuer, create a new credential offer that will be sent to a holder Agent.
Creates a new credential offer that will be delivered, through a previously established DIDComm connection, to a holder Agent. The subsequent credential offer message adheres to the Issue Credential Protocol 3.0 - Offer Credential specification. The created offer can be of two types: 'JWT' or 'AnonCreds'.
Authorizations:
Request Body schema: application/jsonrequired
The credential offer object.
validityPeriod | number <double> The validity period in seconds of the verifiable credential that will be issued. |
Array of strings or string The URL pointing to the JSON schema that will be used for this offer (should be 'http' or 'https'). When dereferenced, the returned content should be a JSON schema compliant with the 'Draft 2020-12' version of the specification. Note that this parameter only applies when the offer is of type 'JWT'. | |
credentialDefinitionId | string <uuid> The unique identifier (UUID) of the credential definition that will be used for this offer. It should be the identifier of a credential definition that exists in the issuer agent's database. Note that this parameter only applies when the offer is of type 'AnonCreds'. |
credentialFormat | string The credential format for this offer (defaults to 'JWT') |
claims required | any The set of claims that will be included in the issued credential. The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). |
automaticIssuance | boolean Specifies whether or not the credential should be automatically generated and issued when receiving the |
issuingDID required | string The issuer Prism DID by which the verifiable credential will be issued. DID can be short for or long form. |
issuingKid | string Specified the key ID (kid) of the DID, it will be used to sign credential.
User should specify just the partial identifier of the key. The full id of the kid MUST be " |
connectionId | string <uuid> The unique identifier of a DIDComm connection that already exists between the this issuer agent and the holder cloud or edeg agent. It should be the identifier of a connection that exists in the issuer agent's database. This connection will be used to execute the issue credential protocol. Note: connectionId is only required when the offer is from existing connection. connectionId is not required when the offer is from invitation for connectionless issuance. |
goalCode | string A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. goalcode is optional and can be provided when the offer is from invitation for connectionless issuance. |
goal | string A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. goal is optional and can be provided when the offer is from invitation for connectionless issuance. |
Responses
Request samples
- Payload
{- "validityPeriod": 3600,
- "credentialDefinitionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "credentialFormat": "JWT",
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "issuingKid": "kid1",
- "connectionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential"
}
Response samples
- 201
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
As a credential issuer, create a new credential offer Invitation that will be delivered as out-of-band to a peer Agent.
Creates a new credential offer invitation to be delivered as an out-of-band message. The invitation message adheres to the OOB specification as outlined here, with the credential offer message attached according to the Issue Credential Protocol 3.0 - Offer Credential specification. The created offer attachment can be of three types: 'JWT', 'AnonCreds', or 'SDJWT'.
Authorizations:
Request Body schema: application/jsonrequired
The credential offer object.
validityPeriod | number <double> The validity period in seconds of the verifiable credential that will be issued. |
Array of strings or string The URL pointing to the JSON schema that will be used for this offer (should be 'http' or 'https'). When dereferenced, the returned content should be a JSON schema compliant with the 'Draft 2020-12' version of the specification. Note that this parameter only applies when the offer is of type 'JWT'. | |
credentialDefinitionId | string <uuid> The unique identifier (UUID) of the credential definition that will be used for this offer. It should be the identifier of a credential definition that exists in the issuer agent's database. Note that this parameter only applies when the offer is of type 'AnonCreds'. |
credentialFormat | string The credential format for this offer (defaults to 'JWT') |
claims required | any The set of claims that will be included in the issued credential. The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). |
automaticIssuance | boolean Specifies whether or not the credential should be automatically generated and issued when receiving the |
issuingDID required | string The issuer Prism DID by which the verifiable credential will be issued. DID can be short for or long form. |
issuingKid | string Specified the key ID (kid) of the DID, it will be used to sign credential.
User should specify just the partial identifier of the key. The full id of the kid MUST be " |
connectionId | string <uuid> The unique identifier of a DIDComm connection that already exists between the this issuer agent and the holder cloud or edeg agent. It should be the identifier of a connection that exists in the issuer agent's database. This connection will be used to execute the issue credential protocol. Note: connectionId is only required when the offer is from existing connection. connectionId is not required when the offer is from invitation for connectionless issuance. |
goalCode | string A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. goalcode is optional and can be provided when the offer is from invitation for connectionless issuance. |
goal | string A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. goal is optional and can be provided when the offer is from invitation for connectionless issuance. |
Responses
Request samples
- Payload
{- "validityPeriod": 3600,
- "credentialDefinitionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "credentialFormat": "JWT",
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "issuingKid": "kid1",
- "connectionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential"
}
Response samples
- 201
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
As a holder, accept a new credential offer invitation received from another issuer Agent.
As a holder, accept a new credential offer invitation received from an issuer Agent. The credential offer request message from issuer is decoded and processed. New record with RequestReceived state is created.
Authorizations:
Request Body schema: application/jsonrequired
The accept credential offer Invitation OOB message.
invitation required | string The base64-encoded raw invitation. |
Responses
Request samples
- Payload
{- "invitation": "eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0="
}
Response samples
- 200
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
Retrieves the list of issue credential records from the Agent's database.
Retrieves the list of issue credential records from the Agent's database. The API returns a comprehensive collection of issue credential flow records within the system, regardless of their state. The returned items include essential metadata such as record ID, thread ID, state, role, issued credential, and other relevant details.
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
thid | string The thread ID associated with a specific credential issue flow execution. |
Responses
Response samples
- 200
- 400
- 403
- 500
{- "contents": [ ],
- "kind": "Collection",
- "self": "/cloud-agent/issue-credentials/records?offset=10&limit=10",
- "pageOf": "/cloud-agent/issue-credentials/records",
- "next": "/cloud-agent/issue-credentials/records?offset=20&limit=10",
- "previous": "/cloud-agent/issue-credentials/records?offset=0&limit=10"
}
Retrieves a specific issue credential flow record from the Agent's database based on its unique `recordId`.
Retrieves a specific issue credential flow record from the Agent's database based on its unique recordId
.
The API returns a comprehensive collection of issue credential flow records within the system, regardless of their state.
The returned items include essential metadata such as record ID, thread ID, state, role, issued credential, and other relevant details.
Authorizations:
path Parameters
recordId required | string The |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
As a holder, accept a new credential offer received from another issuer Agent.
As a holder, accept a new credential offer received from an issuer Agent. The subsequent credential request message sent to the issuer adheres to the Issue Credential Protocol 3.0 - Request Credential specification.
Authorizations:
path Parameters
recordId required | string The |
Request Body schema: application/jsonrequired
The accept credential offer request object.
subjectId | string The short-form subject Prism DID to which the JWT verifiable credential will be issued. This parameter only applies if the offer is of type 'JWT'. |
keyId | string The short-form subject Prism DID to which the JWT verifiable credential will be issued. This parameter only applies if the offer is of type 'JWT'. |
Responses
Request samples
- Payload
{- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "keyId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f"
}
Response samples
- 200
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
As an issuer, issues the verifiable credential related the identified issuance flow record.
As an issuer, issues the verifiable credential related the identified issuance flow record.
The JWT or AnonCreds credential will be generated and sent to the holder Agent asynchronously and through DIDComm.
Note that this endpoint should only be called when automatic issuance is disabled for this record (i.e. automaticIssuance
attribute set to false
at offer creation time).
Authorizations:
path Parameters
recordId required | string The |
Responses
Response samples
- 200
- 400
- 403
- 404
- 500
{- "recordId": "80d612dc-0ded-4ac9-90b4-1b8eabb04545",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "credentialFormat": "JWT",
- "subjectId": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "validityPeriod": 3600,
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "automaticIssuance": true,
- "createdAt": "2024-11-05T11:32:21.497676581Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "role": "Issuer",
- "protocolState": "CredentialSent",
- "credential": "eyJzY2hlbWFfaWQiOiJodHRwOi8vaG9zdC5kb2NrZXIuaW50ZXJuYWw6ODA4MC9wcmlzbS1hZ2VudC9zY2hlbWEtcmVnaXN0cnkvc2NoZW1hcy8zOTZmZDE2OC02YmVmLTMyNDItYTJiNy1hNTZlYWM1MDc2OWMvc2NoZW1hIiwiY3JlZF9kZWZfaWQiOiJodHRwOi8vMTkyLjE2OC4wLjE0OjgwODAvcHJpc20tYWdlbnQvY3JlZGVudGlhbC1kZWZpbml0aW9uLXJlZ2lzdHJ5L2RlZmluaXRpb25zLzNhZmQxZWJkLWIzN2ItMzRiNC1iMWQ2LWYwMDQ5ZmU5ZmQ1Mi9kZWZpbml0aW9uIiwicmV2X3JlZ19pZCI6bnVsbCwidmFsdWVzIjp7ImdpdmVuTmFtZSI6eyJyYXciOiJBbGljZSIsImVuY29kZWQiOiIyNzAzNDY0MDAyNDExNzMzMTAzMzA2MzEyODA0NDAwNDMxODIxODQ4NjgxNjkzMTUyMDg4NjQwNTUzNTY1OTkzNDQxNzQzODc4MTUwNyJ9LCJlbWFpbEFkZHJlc3MiOnsicmF3IjoiYWxpY2VAd29uZGVybGFuZC5jb20iLCJlbmNvZGVkIjoiNzUxMDcwNDYzNDAxNjU2NzcwMTE5NDIwNzU2NDQwMDkwNjY1NDE2NjExNDg4MjI1ODkwMzM2Nzk4NjEyMDkxODY0OTI3Njg2Njk5MjQifSwiZmFtaWx5TmFtZSI6eyJyYXciOiJXb25kZXJsYW5kIiwiZW5jb2RlZCI6IjE2NzkwODQ5MzEyMzc0Nzk0NzM2ODEzMzc3NTY3MjUzODUxMzczNjA3OTcwNDczMzc3NzAxNDc3MjY5MTk0MDE5NTU3NjU0NTYyMDM1In0sImRhdGVPZklzc3VhbmNlIjp7InJhdyI6IjIwMjAtMTEtMTNUMjA6MjA6MzkrMDA6MDAiLCJlbmNvZGVkIjoiNTM4Njg1NTk1MzE3NDg0NjcwOTc1MjA4NTkwNTMwODE4MzU3NDc0MzU2MTE2MDY4NDIwNDExNDc1ODIwMDQ4NzQzNDgwNDYxNjQ2ODUifSwiZHJpdmluZ0xpY2Vuc2VJRCI6eyJyYXciOiIxMjM0NSIsImVuY29kZWQiOiIxMjM0NSJ9LCJkcml2aW5nQ2xhc3MiOnsicmF3IjoiMyIsImVuY29kZWQiOiIzIn19LCJzaWduYXR1cmUiOnsicF9jcmVkZW50aWFsIjp7Im1fMiI6IjMzNjg4ODUzNTU3NTg2MDI3MDg3OTY5ODAzMjgzMzcyNzE4Nzc5MDAzNDAzMDgwODMzMjQzNDIxMTU3MDA5NzE4MDUzMTMyNDIwODAwIiwiYSI6IjEwMjUxMTg2OTU5MTg2NDc2NDcwNzU0MTQ0MDg5NDE3MjI4OTM1Mjk0ODgxNDExMTc5ODYwNzgxODIxODY2OTcyODIyMzg1MTQ1OTcwNDA4Mzk2Mjg5OTM2NzgzNTUxMDk4NDA2MjE2MjcwNjgyNDM1ODg3NjY0OTI0MzQwMDg3NTY4MDMyNzMyMzYwMDc5MTI2ODk2MDU3NDA3MTYyMjI0NDgwODM2NTgzNjY2MzQ1MzA5NzQ0NDE5NjA0ODg5ODA1NDU3Mjc4NDE0MjgyMjA4NzIzMDIwNDQzNzk0MjM0NzU1NTgwNjA1MTE1NjU3NTQ4NjE1MTgwNTU1ODEzMjA0MzQyNjkzNjYyODQzNzY4MjQ2NDM1NjU4MjQ5MDYyMjUxMzYwNzE2MzEyNzM4MjAyMTU2NTEwNzM2NDY1ODk2NjIyNDY4MDk3OTY0OTk0NTA1NDUwMjczMzQ2Mzk4MzY4NzcxNDM3MzAzNTI2NjE0NTk4NTU4Mjg0MTAxNzk0NjYwOTAxNDMwOTI4MzY1MTk3MzA2MDIxMzQ5OTQ3MDI2MzIzMzEwOTE3MjgzODM0ODY2NzI1MzgyMDg4NDIzNDU1NzE0MDY3MTk1NDEzMDA4MzAxNTQ2MTA1NzY4NTAxNzMxNjEwMjk3MDY5ODUyNjAxMTgxMTM3OTg2NjM2MDU2MjI4MTE4NzUzMTM1NjMxMDIwNzA0MzYxODQxNTg0MjA0NzIwMDU1NjY0ODIxMTczOTA3MzYyMTQzNTQyNjk1NTExMTMxNzU3NTE0OTUxMDY2ODQ2MzIyMDAyNzYxMzg4MzIwNjkyNSIsImUiOiIyNTkzNDQ3MjMwNTUwNjIwNTk5MDcwMjU0OTE0ODA2OTc1NzE5MzgyNzc4ODk1MTUxNTIzMDYyNDk3Mjg1ODMxMDU2NjU4MDA3MTMzMDY3NTkxNDk5ODE2OTA1NTkxOTM5ODcxNDMwMTIzNjc5MTMyMDYyOTkzMjM4OTk2OTY5NDIyMTMyMzU5NTY3NDI5Mjk4MTYwMTkzMjA4MDYyNzM5NTc5MDExNDE1Njk0NDAwMjUyMTkiLCJ2IjoiMTAwODYwMTE5NjExNDQ0MjUxODg1ODcyNzA0OTEyNDQwMTQzNTA0MDEwMDQ3NzE3MzYxNzgxMjIwOTQ0OTA3OTE3ODM0NTE3NjQyOTk5MDgxMjEzMDcyNTI4NzU5NTczMzIyNDM1NjU5NzY4OTI2NzA4MjE0NTI5Njg0Njg5NTc5MjAwNzY4MDkxMTM0OTM0MzYxNDUyNzM5ODUwMjEyODc1MDUwMzg5NjkzOTMxMjEzMDg2MTUyOTM4NzA2ODc4MzQyNjIxNjQ1MTc2NDY5NTU0NDMyNTY2MDk0MDY5NjU2ODkzNDg1NjQyNDI2MTc0MjA5MjY3OTI1MDEzODkxMTU2MzAzMzY0MzUwMzgwNTUwMzQ4OTk3MDI1Nzc3NDc5NDg3ODI0NDkzNzg4MDYwNTg1NzMxMTY2NDM5OTE1MTc3ODUyNTYwNjczMjkwODA2Mjk5ODEyOTY1NjMwNDc2OTc0NzExNDY4MDE1MzY4NzM2NTc3MDEzNDE2NjE3ODc0MTc3ODgwNjMzNTc1OTAwMzQyODM5MDUxNjc4NjExNDMxMTk5Mzk3NTIzMDE5Njc0NTA3MjM0NDAzNzcyMTcxMDM3Nzg3NzUyNTMwMjIyODYyNDg5OTMzMzczMzY1MjIwNTc4MDIzNDY2NjkyMDQ4MTA0NTE0NjczMzMwMzMwNzQ1OTEyMjUzNzQ0MDQwMjI1NTM4NjMxNDk2MjY4NDM0MDk5Njk3Nzk1NTY5MDA3MTExMjQzMTg4MTc3MzUyNjE5MTUxNzk1NjEzNTAwNjg5MzUwMzQyNTk3NjA1ODY2MjUyOTYwMjQ3ODg4OTE2NDIwNDcyMDEzNDYzMTA5NTA5MjMxNDcwNjc4MDc5MDI2Mzc3MzY4NDEwNTIyODg3NDExOTIyMzE4Njk5NzA4MjkxNzI4NTg3ODgzNjExODMyMjU4MTE5MzI2ODQ5NjkxODI1MDI2MzU2NDQ1OTM1NjYxOTkyODEyNjIwNDY4MzAxMjEwMzMwNTA1NjEwMjYyNTU5MDk5NDgwNzcxMjA0NDU0ODg0MDI5ODA3MDcwOTM4NDU5OTgxNDM1NjQyNTkzNTQyODc0ODAifSwicl9jcmVkZW50aWFsIjpudWxsfSwic2lnbmF0dXJlX2NvcnJlY3RuZXNzX3Byb29mIjp7InNlIjoiMjMwNDc5NjEzNTA0MDI5NTI3NTk3NzM3MTY4NjY0OTQ5MzQwNzk1NTg1ODM5NTQ4OTI2MTEwMjQ2NzU0NzA3OTgyNjc2MDEyMjIyMTYyNzQyNTQ2Nzg4NDI3MDA4MDQ5NzIyNDMwNDgyODAyOTYyNTgxNDE2ODI2MjEzMTgwMTE4MTA4MTA1Nzg1NjA4OTg5NjEyNTU0ODMwOTE5MjU4MTI0NDgyMzUwNTQ2MTkxOTQ5NTU5ODM2NTk4NzcxMTE0MzI1NjA5MTI4MjUxMTc1MDM4NDMxNDA2NzM2NTc1MDkwMzk5ODk0MDQzMjc3MTg5MTM3MzE1NTM5NTQ2MTE3Mjk2NTM1OTMyOTQ3NDk3NTU0Mjg0NDc1NjkxNDE1NDEzMzIzNjE2OTYyNTk1NDAzMTkxMjQ4ODY2NDE1MjI0NDY2MTU2OTgyODg4OTkyNTAxNjc1NTcwNjI0MzQ2MzMyMTE0NjMzMDQ1NzUxNDg3NzU3ODM3MDA5Mzc3ODMwNTI1MTU5MjUwNjMwMjcxNjY3NDQxMDI3MTM5MjE3Nzc5ODU5MDExMjUxOTc1OTczNjY0NTc4MjMxOTk1Mzc3OTE4Mjg4MTkyNjIyMDM5NDEzMDM0ODg5MjM3Mzg2NzU4Mzg3NTcwNTMxNDc1OTQxMDU2MTg3NzUzOTEyNDA0NzkwNzQ5NzgzMTM0OTk3MDgzODk3NjE5MTczMTg3MDg1MzE1MjQ3NTM4NjU2OTcwOTE0NzI2MzM1ODA1ODY5OTk3NzI3OTc5NTUwMjIzNjkzMDA2MjcwNjIzNTc3NjM2NTIyNjIyNTY0MTE4NTMiLCJjIjoiOTM2NzQ1MDczNzcxNzQ3MjE3OTg3OTY2OTYzMDQxNzUzMTE4NDk0NDE4NDQ0NzQ1MDI3NzAyMjI3Nzk0NzU1ODQ2Mjg3ODMzMzU4NTAifSwicmV2X3JlZyI6bnVsbCwid2l0bmVzcyI6bnVsbH0=",
- "issuingDID": "did:prism:3bb0505d13fcb04d28a48234edb27b0d4e6d7e18a81e2c1abab58f3bbc21ce6f",
- "goalCode": "issue-vc",
- "goal": "To issue a Faber College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
The Verification endpoints enable the management and lookup of verification policies,which are applied to W3C Verifiable Credentials in JWT format.
Users can retrieve and paginate existing policies or create new ones.
These policies determine the verification criteria, allowing users to specify constraints such as schemaId
and trustedIssuers
in the current implementation.
The constraints are defined using the schemaId
and a sequence of trustedIssuers
.
This functionality ensures the system's integrity and adherence to specific verification requirements.
Endpoints are secured by apiKeyAuth or jwtAuth authentication.
Lookup verification policies by query
Lookup verification policies by name
, and control the pagination by offset
and limit
parameters
Authorizations:
query Parameters
name | string A human-readable name for the verification policy. The |
offset | integer <int32> |
limit | integer <int32> |
order | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "/cloud-agent/verification/policies?name=Trusted&offset=0&limit=10",
- "kind": "VerificationPolicyPage",
- "pageOf": "/cloud-agent/verification/policies",
- "next": "/cloud-agent/verification/policies?skip=20&limit=10",
- "previous": "/cloud-agent/verification/policies?skip=0&limit=10",
- "contents": [
- {
- "self": "/cloud-agent/verification/policies",
- "kind": "VerificationPolicy",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "nonce": 0,
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "createdAt": "2022-03-10T12:00:00Z",
- "updatedAt": "2022-03-10T12:00:00Z",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
]
}
Create the new verification policy
Create the new verification policy
Authorizations:
Request Body schema: application/jsonrequired
Create verification policy object
id | string <uuid> A unique identifier to address the verification policy instance. UUID is generated by the backend. |
name required | string non-empty A human-readable name for the verification policy. The |
description required | string A human-readable description of the verification policy. |
Array of objects (VerificationPolicyConstraint) The object that describes the constraints of the verification policy. Each constraint is a tuple of the |
Responses
Request samples
- Payload
{- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
Response samples
- 201
- 400
- 401
- 403
- 422
- 500
{- "self": "/cloud-agent/verification/policies/0527aea1-d131-3948-a34d-03af39aba8b4",
- "kind": "VerificationPolicy",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "nonce": 1234,
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
Fetch the verification policy by id
Get the verification policy by id
Authorizations:
path Parameters
id required | string <uuid> Get the verification policy by id |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "self": "/cloud-agent/verification/policies/0527aea1-d131-3948-a34d-03af39aba8b4",
- "kind": "VerificationPolicy",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "nonce": 1234,
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
Update the verification policy object by id
Update the verification policy entry
Authorizations:
path Parameters
id required | string <uuid> |
query Parameters
nonce required | integer <int32> Nonce of the previous VerificationPolicy |
Request Body schema: application/jsonrequired
Update verification policy object
id | string <uuid> A unique identifier to address the verification policy instance. UUID is generated by the backend. |
name required | string non-empty A human-readable name for the verification policy. The |
description required | string A human-readable description of the verification policy. |
Array of objects (VerificationPolicyConstraint) The object that describes the constraints of the verification policy. Each constraint is a tuple of the |
Responses
Request samples
- Payload
{- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "self": "/cloud-agent/verification/policies/0527aea1-d131-3948-a34d-03af39aba8b4",
- "kind": "VerificationPolicy",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "nonce": 1234,
- "name": "Trusted Issuers Verification Policy",
- "description": "Verification policy that checks if the credential was issued by a trusted issuer.",
- "createdAt": "2022-03-10T12:00Z",
- "updatedAt": "2022-03-10T12:00Z",
- "constraints": [
- {
- "trustedIssuers": [
- "did:example:123456789abcdefghi"
]
}
]
}
Deleted the verification policy by id
Delete the verification policy by id
Authorizations:
path Parameters
id required | string <uuid> Delete the verification policy by id |
Responses
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
The Schema Registry is a REST API that allows to publish and lookup credential schemas in W3C and AnonCreds formats.
The Credential Schema is a JSON document that describes the structure of the credential and consists of the following parts: metadata, schema and signature. The metadata contains the following fields:
id
- locally unique identifier of the schemaversion
- version of the schemaauthor
- the DID of the issuer of the schemaguid
- globally unique identifier of the schema (generated by the Schema Registry based onauthor
,id
andversion
)name
- name of the schematags
- list of tags that describe the schemacreatedAt
- timestamp of the schema creationdescription
- description of the schema
The schema contains the JSON Schema that describes the structure of the credential in the schema
field
The signature contains the signature of the schema by the issuer in the proof
field. The signature is generated by the issuer's DID key using Ed25519Signature2020 method.
The Credential Schema object is immutable, so update operation creates a new version of the schema.
The Credential Schema is referenced via schemaId
field in the issuance and verification flows.
Endpoints are secured by apiKeyAuth or jwtAuth authentication.
Lookup schemas by indexed fields
Lookup schemas by author
, name
, tags
parameters and control the pagination by offset
and limit
parameters
Authorizations:
query Parameters
author | string Example: author=did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff |
name | string Example: name=DrivingLicense |
version | string Example: version=1.0.0 |
tags | string Example: tags=driving |
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
order | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "contents": [ ],
- "kind": "CredentialSchemaPage",
- "self": "/cloud-agent/schema-registry/schemas?skip=10&limit=10",
- "pageOf": "/cloud-agent/schema-registry/schemas",
- "next": "/cloud-agent/schema-registry/schemas?skip=20&limit=10",
- "previous": "/cloud-agent/schema-registry/schemas?skip=0&limit=10"
}
Publish new schema to the schema registry, http url resolvable
Create the new credential schema record with metadata and internal JSON Schema on behalf of Cloud Agent. The credential schema will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the credential schema creation
name required | string non-empty A human-readable name for the credential schema. A piece of Metadata. |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Schema. It should follow semantic version convention to describe the impact of the schema evolution. |
description | string non-empty A human-readable description of the credential schema |
type required | string This field resolves to a JSON schema with details about the schema metadata that applies to the schema. A piece of Metadata. |
schema required | any Valid JSON Schema where the Credential Schema data fields are defined. A piece of Metadata |
tags | Array of strings Tokens that allow to lookup and filter the credential schema records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential schema. A piece of Metadata. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "version": "1.0.0",
- "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "tags": [
- "driving",
- "licence",
- "id"
], - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tags": [
- "driving",
- "licence",
- "id"
], - "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "resolutionMethod": "http",
- "kind": "CredentialSchema",
- "self": "/cloud-agent/schema-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Lookup schemas by indexed fields
Lookup schemas by author
, name
, tags
parameters and control the pagination by offset
and limit
parameters
Authorizations:
query Parameters
author | string Example: author=did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff |
name | string Example: name=DrivingLicense |
version | string Example: version=1.0.0 |
tags | string Example: tags=driving |
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
order | string |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "contents": [ ],
- "kind": "CredentialSchemaPage",
- "self": "/cloud-agent/schema-registry/schemas/did-url?skip=10&limit=10",
- "pageOf": "/cloud-agent/schema-registry/schemas/did-url",
- "next": "/cloud-agent/schema-registry/schemas/did-url?skip=20&limit=10",
- "previous": "/cloud-agent/schema-registry/schemas/did-url?skip=0&limit=10"
}
Publish new schema to the schema registry, did url resolvable
Create the new credential schema record with metadata and internal JSON Schema on behalf of Cloud Agent. The credential schema will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the credential schema creation
name required | string non-empty A human-readable name for the credential schema. A piece of Metadata. |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Schema. It should follow semantic version convention to describe the impact of the schema evolution. |
description | string non-empty A human-readable description of the credential schema |
type required | string This field resolves to a JSON schema with details about the schema metadata that applies to the schema. A piece of Metadata. |
schema required | any Valid JSON Schema where the Credential Schema data fields are defined. A piece of Metadata |
tags | Array of strings Tokens that allow to lookup and filter the credential schema records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential schema. A piece of Metadata. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "version": "1.0.0",
- "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "tags": [
- "driving",
- "licence",
- "id"
], - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
Publish the new version of the credential schema to the schema registry
Publish the new version of the credential schema record with metadata and internal JSON Schema on behalf of Cloud Agent. The credential schema will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
path Parameters
id required | string <uuid> A locally unique identifier to address the schema. UUID is generated by the backend. |
Request Body schema: application/jsonrequired
JSON object required for the credential schema update
name required | string non-empty A human-readable name for the credential schema. A piece of Metadata. |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Schema. It should follow semantic version convention to describe the impact of the schema evolution. |
description | string non-empty A human-readable description of the credential schema |
type required | string This field resolves to a JSON schema with details about the schema metadata that applies to the schema. A piece of Metadata. |
schema required | any Valid JSON Schema where the Credential Schema data fields are defined. A piece of Metadata |
tags | Array of strings Tokens that allow to lookup and filter the credential schema records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential schema. A piece of Metadata. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "version": "1.0.0",
- "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "tags": [
- "driving",
- "licence",
- "id"
], - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tags": [
- "driving",
- "licence",
- "id"
], - "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "resolutionMethod": "http",
- "kind": "CredentialSchema",
- "self": "/cloud-agent/schema-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Publish the new version of the credential schema to the schema registry
Publish the new version of the credential schema record with metadata and internal JSON Schema on behalf of Cloud Agent. The credential schema will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
path Parameters
id required | string <uuid> A locally unique identifier to address the schema. UUID is generated by the backend. |
Request Body schema: application/jsonrequired
JSON object required for the credential schema update
name required | string non-empty A human-readable name for the credential schema. A piece of Metadata. |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Schema. It should follow semantic version convention to describe the impact of the schema evolution. |
description | string non-empty A human-readable description of the credential schema |
type required | string This field resolves to a JSON schema with details about the schema metadata that applies to the schema. A piece of Metadata. |
schema required | any Valid JSON Schema where the Credential Schema data fields are defined. A piece of Metadata |
tags | Array of strings Tokens that allow to lookup and filter the credential schema records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential schema. A piece of Metadata. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "version": "1.0.0",
- "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "tags": [
- "driving",
- "licence",
- "id"
], - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
Fetch the schema from the registry by `guid`
Fetch the credential schema by the unique identifier
Authorizations:
path Parameters
guid required | string <uuid> |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
Fetch the schema from the registry by `guid`
Fetch the credential schema by the unique identifier
Authorizations:
path Parameters
guid required | string <uuid> Globally unique identifier of the credential schema record |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tags": [
- "driving",
- "licence",
- "id"
], - "description": "Simple credential schema for the driving licence verifiable credential.",
- "schema": {
- "description": "Driving License",
- "type": "object",
- "properties": {
- "emailAddress": {
- "type": "string",
- "format": "email"
}, - "givenName": {
- "type": "string"
}, - "familyName": {
- "type": "string"
}, - "dateOfIssuance": {
- "type": "string",
- "format": "date-time"
}, - "drivingLicenseID": {
- "type": "string"
}, - "drivingClass": {
- "type": "integer"
}
}, - "required": [
- "emailAddress",
- "familyName",
- "dateOfIssuance",
- "drivingLicenseID",
- "drivingClass"
], - "additionalProperties": false
}, - "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "resolutionMethod": "http",
- "kind": "CredentialSchema",
- "self": "/cloud-agent/schema-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Fetch the schema from the registry by `guid`
Fetch the credential schema by the unique identifier
Authorizations:
path Parameters
guid required | string <uuid> Globally unique identifier of the credential schema record |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
The Credential Definition Registry is a REST API that allows to publish and lookup Anoncreds Credential Definition entities.
A credential definition is generated by the issuer before credential any issuances and published for anyone (primarily holders and verifiers) to use. In generating the published credential definition, related private data is also generated and held as a secret by the issuer. The secret data includes the private keys necessary to generate signed verifiable credentials that can be presented and verified using the published credential definition.
Endpoints are secured by apiKeyAuth or jwtAuth authentication.
Lookup credential definitions by indexed fields
Lookup credential definitions by author
, name
, tag
parameters and control the pagination by offset
and limit
parameters
Authorizations:
query Parameters
author | string Example: author=did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff |
name | string Example: name=DrivingLicense |
version | string Example: version=1.0.0 |
tag | string Example: tag=licence |
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
order | string |
Responses
Response samples
- 200
- 400
- 422
- 500
{- "contents": [ ],
- "kind": "CredentialSchemaPage",
- "self": "/cloud-agent/schema-registry/schemas?skip=10&limit=10",
- "pageOf": "/cloud-agent/schema-registry/schemas",
- "next": "/cloud-agent/schema-registry/schemas?skip=20&limit=10",
- "previous": "/cloud-agent/schema-registry/schemas?skip=0&limit=10"
}
Publish new definition to the definition registry, resolvable by HTTP url
Create the new credential definition record with metadata and internal JSON Schema on behalf of Cloud Agent. The credential definition will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the credential definition creation
name required | string non-empty A human-readable name for the credential definition. A piece of Metadata. |
description | string non-empty A human-readable description of the credential definition |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Definition. It should follow semantic version convention to describe the impact of the credential definition evolution. |
tag required | string Token that allow to lookup and filter the credential definition records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential definition. A piece of Metadata. |
schemaId required | string The unique identifier of the schema used for this credential definition. |
signatureType required | string Signature type used in the CredentialDefinition. |
supportRevocation required | boolean Boolean flag indicating whether revocation is supported for this CredentialDefinition. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "description": "Simple credential definition for the driving licence verifiable credential.",
- "version": "1.0.0",
- "tag": "licence",
- "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "signatureType": "CL",
- "supportRevocation": false
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tag": "licence",
- "description": "Simple credential definition for the driving licence verifiable credential.",
- "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "definition": {
- "credentialSubject": {
- "emailAddress": "alice@wonderland.com",
- "givenName": "Alice",
- "familyName": "Wonderland",
- "dateOfIssuance": "2000-01-01T10:00:00Z",
- "drivingLicenseID": "12345",
- "drivingClass": 5
}
}, - "keyCorrectnessProof": null,
- "signatureType": "CL",
- "supportRevocation": false,
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "kind": "CredentialDefinition",
- "self": "/cloud-agent/credential-definition-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Lookup credential definitions by indexed fields
Lookup DID url resolvable credential definitions by author
, name
, tag
parameters and control the pagination by offset
and limit
parameters
Authorizations:
query Parameters
author | string Example: author=did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff |
name | string Example: name=DrivingLicense |
version | string Example: version=1.0.0 |
tag | string Example: tag=licence |
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
order | string |
Responses
Response samples
- 200
- 400
- 422
- 500
{- "contents": [ ],
- "kind": "CredentialDefinitionPage",
- "self": "/cloud-agent/credential-definition-registry/definitions?skip=10&limit=10",
- "pageOf": "/cloud-agent/credential-definition-registry/definitions",
- "next": "/cloud-agent/credential-definition-registry/definitions?skip=20&limit=10",
- "previous": "/cloud-agent/credential-definition-registry/definitions?skip=0&limit=10"
}
Publish new definition to the definition registry, resolvable by DID url
Create the new credential definition record with metadata and internal JSON Schema on behalf of the Cloud Agent. The credential definition will be signed by the keys of Cloud Agent and issued by the DID that corresponds to it.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the credential definition creation
name required | string non-empty A human-readable name for the credential definition. A piece of Metadata. |
description | string non-empty A human-readable description of the credential definition |
version required | string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-... Denotes the revision of a given Credential Definition. It should follow semantic version convention to describe the impact of the credential definition evolution. |
tag required | string Token that allow to lookup and filter the credential definition records. |
author required | string^did:(?<method>[a-z0-9]+(:[a-z0-9]+)*)\:(?<id... DID of the identity which authored the credential definition. A piece of Metadata. |
schemaId required | string The unique identifier of the schema used for this credential definition. |
signatureType required | string Signature type used in the CredentialDefinition. |
supportRevocation required | boolean Boolean flag indicating whether revocation is supported for this CredentialDefinition. |
Responses
Request samples
- Payload
{- "name": "DrivingLicense",
- "description": "Simple credential definition for the driving licence verifiable credential.",
- "version": "1.0.0",
- "tag": "licence",
- "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "signatureType": "CL",
- "supportRevocation": false
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tag": "licence",
- "description": "Simple credential definition for the driving licence verifiable credential.",
- "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "definition": {
- "credentialSubject": {
- "emailAddress": "alice@wonderland.com",
- "givenName": "Alice",
- "familyName": "Wonderland",
- "dateOfIssuance": "2000-01-01T10:00:00Z",
- "drivingLicenseID": "12345",
- "drivingClass": 5
}
}, - "keyCorrectnessProof": null,
- "signatureType": "CL",
- "supportRevocation": false,
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "kind": "CredentialDefinition",
- "self": "/cloud-agent/credential-definition-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Fetch the inner definition field of the credential definition from the registry by `guid`
Fetch the inner definition fields of the credential definition by the unique identifier
Authorizations:
path Parameters
guid required | string <uuid> |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
null
Fetch the inner definition field of the credential definition from the registry by `guid`, wrapped in an envelope
Fetch the inner definition fields of the credential definition by the unique identifier, it should have been crated via DID url, otherwise not found error is returned.
Authorizations:
path Parameters
guid required | string <uuid> |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
Fetch the credential definition from the registry by `guid`
Fetch the credential definition by the unique identifier
Authorizations:
path Parameters
guid required | string <uuid> Globally unique identifier of the credential definition record |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "guid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "id": "0527aea1-d131-3948-a34d-03af39aba8b5",
- "longId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff/0527aea1-d131-3948-a34d-03af39aba8b4?version=1.0.0",
- "name": "DrivingLicense",
- "version": "1.0.0",
- "tag": "licence",
- "description": "Simple credential definition for the driving licence verifiable credential.",
- "author": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "authored": "2022-03-10T12:00Z",
- "definition": {
- "credentialSubject": {
- "emailAddress": "alice@wonderland.com",
- "givenName": "Alice",
- "familyName": "Wonderland",
- "dateOfIssuance": "2000-01-01T10:00:00Z",
- "drivingLicenseID": "12345",
- "drivingClass": 5
}
}, - "keyCorrectnessProof": null,
- "signatureType": "CL",
- "supportRevocation": false,
- "proof": {
- "type": "Ed25519Signature2018",
- "created": "2022-03-10T12:00:00Z",
- "verificationMethod": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "proofPurpose": "assertionMethod",
- "proofValue": "FiPfjknHikKmZ...",
- "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il0sImt0eSI6Ik...",
- "domain": "prims.atala.com"
}, - "kind": "CredentialDefinition",
- "self": "/cloud-agent/credential-definition-registry/schemas/0527aea1-d131-3948-a34d-03af39aba8b4"
}
Fetch the credential definition from the registry by `guid`, wrapped in an envelope
Fetch the credential definition by the unique identifier, it should have been crated via DID url, otherwise not found error is returned.
Authorizations:
path Parameters
guid required | string <uuid> Globally unique identifier of the credential definition record |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "resource": "",
- "url": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a?resourceService=agent-base-url&resourcePath=credential-definition-registry/definitions/did-url/ef3e4135-8fcf-3ce7-b5bb-df37defc13f6?resourceHash=4074bb1a8e0ea45437ad86763cd7e12de3fe8349ef19113df773b0d65c8a9c46"
}
The DID endpoints expose publicly available DID operations.
The key distinction from the DID Registrar endpoints is that it directly exposes the DID resources interfacing with the VDR. It is independent of the key management and the exposed operations are not part of the tenancy within the Agent. It serves as a proxy for interacting with the VDR, facilitating actions like resolving DIDs.
Resolve Prism DID to a W3C representation
Resolve Prism DID to a W3C DID document representation.
The response can be the DID resolution result
or DID document representation depending on the Accept
request header.
The response is implemented according to resolver HTTP binding in the DID resolution spec.
Authorizations:
path Parameters
didRef required | string Example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff Prism DID according to the Prism DID method syntax |
Responses
Response samples
- 200
- 404
- 406
- 410
- 500
- 501
{- "didDocument": {
- "id": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "controller": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "verificationMethod": [
- {
- "id": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff#key-1",
- "type": "JsonWebKey2020",
- "controller": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "publicKeyJwk": {
- "crv": "string",
- "x": "string",
- "y": "string",
- "kty": "string"
}
}
], - "authentication": [
- "string"
], - "assertionMethod": [
- "string"
], - "keyAgreement": [
- "string"
], - "capabilityInvocation": [
- "string"
], - "capabilityDelegation": [
- "string"
],
}, - "didDocumentMetadata": {
- "deactivated": false,
- "canonicalId": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "versionId": "4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "created": "2023-02-04T13:52:10Z",
- "updated": "2023-02-04T13:52:10Z"
}, - "didResolutionMetadata": {
- "error": "invalidDid",
- "errorMessage": "The initialState does not match the suffix",
- "contentType": "application/did+ld+json"
}
}
The DID Registrar endpoints facilitate the management of PRISM DIDs hosted in the cloud agent.
Implentation of DID management in the cloud agent. The agent securely manages and stores DIDs along with their keys in its secret storage. These endpoints allow users to create, read, update, deactivate, and publish without direct exposure to the key material. These DIDs can be utilized for various operations during issuance and verification processes.
More examples and tutorials can be found in this documentation.
List all DIDs stored in the agent's wallet
List all DIDs stored in the agent's wallet. Return a paginated items ordered by created timestamp.
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "string",
- "kind": "string",
- "pageOf": "string",
- "next": "string",
- "previous": "string",
- "contents": [
- {
- "did": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "longFormDid": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff:Cr4BCrsBElsKBmF1dGgtMRAEQk8KCXNlY3AyNTZrMRIg0opTuxu-zt6aRbT1tPniG4eu4CYsQPM3rrLzvzNiNgwaIIFTnyT2N4U7qCQ78qtWC3-p0el6Hvv8qxG5uuEw-WgMElwKB21hc3RlcjAQAUJPCglzZWNwMjU2azESIKhBU0eCOO6Vinz_8vhtFSAhYYqrkEXC8PHGxkuIUev8GiAydFHLXb7c22A1Uj_PR21NZp6BCDQqNq2xd244txRgsQ",
- "status": "CREATED"
}
]
}
Create an unpublished PRISM DID and store it in the agent's wallet
Create an unpublished PRISM DID and store it in the agent's wallet.
The public/private keys of the DID will be derived according to the didDocumentTemplate
and managed by the agent.
The DID can later be published to the VDR using the publications
endpoint.
After the DID is created, it has the CREATED
status.
Authorizations:
Request Body schema: application/jsonrequired
required | object (CreateManagedDidRequestDocumentTemplate) | ||||||
|
Responses
Request samples
- Payload
{- "documentTemplate": {
- "publicKeys": [
- {
- "id": "key-1",
- "purpose": "authentication",
- "curve": "Ed25519"
}
],
}
}
Response samples
- 201
- 400
- 403
- 404
- 422
- 500
{- "longFormDid": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff:Cr4BCrsBElsKBmF1dGgtMRAEQk8KCXNlY3AyNTZrMRIg0opTuxu-zt6aRbT1tPniG4eu4CYsQPM3rrLzvzNiNgwaIIFTnyT2N4U7qCQ78qtWC3-p0el6Hvv8qxG5uuEw-WgMElwKB21hc3RlcjAQAUJPCglzZWNwMjU2azESIKhBU0eCOO6Vinz_8vhtFSAhYYqrkEXC8PHGxkuIUev8GiAydFHLXb7c22A1Uj_PR21NZp6BCDQqNq2xd244txRgsQ"
}
Get a specific DID stored in the agent's wallet
Get a specific DID stored in the agent's wallet
Authorizations:
path Parameters
didRef required | string Example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff Prism DID according to the Prism DID method syntax |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "did": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff",
- "longFormDid": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff:Cr4BCrsBElsKBmF1dGgtMRAEQk8KCXNlY3AyNTZrMRIg0opTuxu-zt6aRbT1tPniG4eu4CYsQPM3rrLzvzNiNgwaIIFTnyT2N4U7qCQ78qtWC3-p0el6Hvv8qxG5uuEw-WgMElwKB21hc3RlcjAQAUJPCglzZWNwMjU2azESIKhBU0eCOO6Vinz_8vhtFSAhYYqrkEXC8PHGxkuIUev8GiAydFHLXb7c22A1Uj_PR21NZp6BCDQqNq2xd244txRgsQ",
- "status": "CREATED"
}
Publish the DID stored in the agent's wallet to the VDR
Initiate the publication of the DID stored in the agent's wallet to the VDR.
The publishing process is asynchronous.
Attempting to publish the same DID while the previous publication is ongoing will not initiate another publication.
After the submission of the DID publication, its status is changed to PUBLICATION_PENDING
.
Upon confirmation after a predefined number of blocks, the status is changed to PUBLISHED
.
In case of a failed DID publication, the status is reverted to CREATED
.
Authorizations:
path Parameters
didRef required | string Example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff Prism DID according to the Prism DID method syntax |
Responses
Response samples
- 202
- 400
- 401
- 403
- 404
- 422
- 500
{- "scheduledOperation": {
- "id": "98e6a4db10e58fcc011dd8def5ce99fd8b52af39e61e5fb436dc28259139818b",
- "didRef": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
}
Update DID in the agent's wallet and post update operation to the VDR
Update DID in the agent's wallet and post the update operation to the VDR.
Only the DID with status PUBLISHED
can be updated.
This endpoint updates the DID document from the last confirmed operation.
The update operation is asynchornous operation and the agent will reject
a new update request if the previous operation is not yet comfirmed.
Authorizations:
path Parameters
didRef required | string Example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff Prism DID according to the Prism DID method syntax |
Request Body schema: application/jsonrequired
Array of objects (UpdateManagedDIDRequestAction) | |||||||||||||||
Array
|
Responses
Request samples
- Payload
{- "actions": [
- {
- "actionType": "ADD_KEY",
- "addKey": {
- "id": "key-1",
- "purpose": "authentication",
- "curve": "Ed25519"
}, - "removeKey": {
- "id": "string"
}, - "removeService": {
- "id": "string"
}, - "updateService": {
- "id": "service-1",
- "type": "LinkedDomains",
- "serviceEndpoint": null
},
}
]
}
Response samples
- 202
- 400
- 403
- 404
- 409
- 422
- 500
{- "scheduledOperation": {
- "id": "98e6a4db10e58fcc011dd8def5ce99fd8b52af39e61e5fb436dc28259139818b",
- "didRef": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
}
Deactivate DID in the agent's wallet and post deactivate operation to the VDR
Deactivate DID in the agent's wallet and post deactivate operation to the VDR.
Only the DID with status PUBLISHED
can be deactivated.
The deactivate operation is asynchornous operation and the agent will reject
a new deactivate request if the previous operation is not yet comfirmed.
Authorizations:
path Parameters
didRef required | string Example: did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff Prism DID according to the Prism DID method syntax |
Responses
Response samples
- 202
- 400
- 403
- 404
- 422
- 500
{- "scheduledOperation": {
- "id": "98e6a4db10e58fcc011dd8def5ce99fd8b52af39e61e5fb436dc28259139818b",
- "didRef": "did:prism:4a5b5cf0a513e83b598bbea25cd6196746747f361a73ef77068268bc9bd732ff"
}
}
The Wallet Management endpoints enable both users and administrators to manage wallets.
In a multitenant agent, wallet is a container for various resources (e.g. Connections, DIDs) and it isolates the access based on the authorization settings. Admnistrator can utilize the endpoints to manage and onboard tenants. See this example for instructions how to utilize the endpoints for administrator. Tenants can also manage and onboard their own wallets using these endpoints depending on the configuration. See this document for a detailed example for self-service tenants onboarding.
Wallet permissions are controlled by UMA configuration which the agent
exposes endpoints to easily configure wallet access using uma-permissions
resource.
The permissions can also be configured out-of-band directly on the external IAM provider that supports the UMA standard.
List all permitted wallets
List all permitted wallets. If the role is admin, returns all the wallets. If the role is tenant, only return permitted wallets.
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "string",
- "kind": "string",
- "pageOf": "string",
- "next": "string",
- "previous": "string",
- "contents": [
- {
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "my-wallet-1",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
]
}
Create a new wallet
Create a new wallet with the option to provide the seed. The seed will be used for all PRISM DID keypair derivation within the wallet.
If the role is admin, a wallet can be created at any time. If the role is tenant, a wallet can only be created if there is no existing wallet permission for that tenant. The permission for the tenant will be automatically granted after the wallet is created with tenant role.
Authorizations:
Request Body schema: application/jsonrequired
seed | string A BIP32 seed encoded in hexadecimal string. It is expected to represent 64-bytes binary seed (128 hex characters). |
name required | string [ 1 .. 128 ] characters A name of the wallet |
id | string <uuid> The unique |
Responses
Request samples
- Payload
{- "seed": "c9994785ce6d548134020f610b76102ca1075d3bb672a75ec8c9a27a7b8607e3b9b384e43b77bb08f8d5159651ae38b98573f7ecc79f2d7e1f1cc371ce60cf8a",
- "name": "my-wallet-1",
- "id": "00000000-0000-0000-0000-000000000000"
}
Response samples
- 201
- 400
- 401
- 403
- 422
- 500
{- "id": "00000000-0000-0000-0000-000000000000",
- "name": "my-wallet-1",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Get the wallet by ID
Get the wallet by ID. If the role is tenant, only search the ID of permitted wallets.
Authorizations:
path Parameters
walletId required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "id": "00000000-0000-0000-0000-000000000000",
- "name": "my-wallet-1",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Create a UMA resource permission on an authorization server for the wallet.
Create a UMA resource permission on an authorization server for the wallet.
This grants the wallet permission to the specified subject
, where the subject
denotes the identity of the tenant on an authorization server.
Authorizations:
path Parameters
walletId required | string <uuid> |
Request Body schema: application/jsonrequired
subject required | string <uuid> The subject ID that should be granted the permission to the wallet. This can be found in the |
Responses
Request samples
- Payload
{- "subject": "00000000-0000-0000-0000-000000000000"
}
Response samples
- 400
- 401
- 403
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Delete a UMA resource permission on an authorization server for the wallet.
Remove a UMA resource permission on an authorization server for the wallet.
This remove the wallet permission to the specified subject
, where the subject
denotes the identity of the tenant on an authorization server.
Authorizations:
path Parameters
walletId required | string <uuid> |
query Parameters
subject required | string <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
The System is a REST API that allows to check the system health and scrap the runtime metrics.
The health endpoint returns the current version of the running service. This information can be used to check the health status of the running service in the docker or kubernetes environment.
The metrics endpoint returns the runtime metrics of the running service scraped from the internal prometheus registry. This information is collected by the prometheus server and can be used to monitor the running service.
Collect the runtime metrics of the running service
Returns the metrics of the running service from the internal Prometheus registry
Authorizations:
Responses
Response samples
- 400
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
The Events endpoints enable users to manage event-related resources, such as webhook notifications. These notifications are specifically designed to inform about events occurring within the wallet, including but not limited to:
- DID publication notifications
- DIDComm connection notifications
- Issuance protocol notifications
- Presentation protocol notifications
For more detailed information regarding event notifications, please refer to this documentation.
List wallet webhook notifications
List all registered webhook notifications. Each webhook notification contains a unique identifier, the URL to which the events are sent, and the custom headers to be included in the dispatched webhook request.
Authorizations:
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "string",
- "kind": "string",
- "pageOf": "string",
- "next": "string",
- "previous": "string",
- "contents": [
- {
- "id": "00000000-0000-0000-0000-000000000000",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "1970-01-01T00:00:00Z"
}
]
}
Create wallet webhook notifications
Create a new wallet webhook notification and subscribe to events. A dispatched webhook request may contain static custom headers for authentication or custom metadata.
Authorizations:
Request Body schema: application/jsonrequired
url required | string A URL of webhook for event notification |
object (Map_String) |
Responses
Request samples
- Payload
{- "customHeaders": {
- "property1": "string",
- "property2": "string"
}
}
Response samples
- 200
- 400
- 403
- 409
- 422
- 500
{- "id": "00000000-0000-0000-0000-000000000000",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "createdAt": "1970-01-01T00:00:00Z"
}
Delete the wallet webhook notification by `id`
Authorizations:
path Parameters
id required | string <uuid> ID of the webhook notification to delete. |
Responses
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
The Identity and Access Management endpoints allow agent administrators to manage identity and access management for the agent's tenants. It provides basic built-in IAM capabilities as an alternative to more feature rich external IAM solutions.
Entities are resources that represent individual tenants and wallets act as containers for Self-Sovereign Identity (SSI) resources within the agent. The administrator can grant tenant access to specific wallets by associating the wallet ID with the Entity. Additionally, the administrator can create API keys for entities and provide them to the tenants out-of-band. These API keys can then be used for authorization to access specific wallets.
For more detailed information related to the agent IAM and its usage, please refer to this documentation.
Get all entities
Get all entities with the pagination by offset
and limit
parameters
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "contents": [
- {
- "kind": "Entity",
- "self": "/cloud-agent/iam/entities/00000000-0000-0000-0000-000000000000",
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
], - "kind": "CredentialSchemaPage",
- "self": "/cloud-agent/schema-registry/schemas?skip=10&limit=10",
- "pageOf": "/cloud-agent/schema-registry/schemas",
- "next": "/cloud-agent/schema-registry/schemas?skip=20&limit=10",
- "previous": "/cloud-agent/schema-registry/schemas?skip=0&limit=10"
}
Create a new entity record
Create the new entity record. The entity record is a representation of the account in the system.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the entity creation
id | string <uuid> The new |
name required | string [ 1 .. 128 ] characters The new |
walletId | string <uuid> The new |
Responses
Request samples
- Payload
{- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "kind": "Entity",
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Update the entity record name by `id`
Update the entity record name by id
Authorizations:
path Parameters
id required | string <uuid> |
Request Body schema: application/jsonrequired
JSON object required for the entity name update
name required | string [ 1 .. 128 ] characters New name of the entity |
Responses
Request samples
- Payload
{- "name": "John Doe"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "kind": "Entity",
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Update the entity record `walletId` by `id`
Update the entity record walletId
field by id
Authorizations:
path Parameters
id required | string <uuid> |
Request Body schema: application/jsonrequired
JSON object required for the entity walletId update
walletId required | string <uuid> The walletId owned by the entity |
Responses
Request samples
- Payload
{- "walletId": "00000000-0000-0000-0000-000000000000"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "kind": "Entity",
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Get the entity by the `id`
Get the entity by the unique identifier
Authorizations:
path Parameters
id required | string <uuid> Identifier of the entity |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "kind": "Entity",
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "John Doe",
- "walletId": "00000000-0000-0000-0000-000000000000",
- "createdAt": "2023-01-01T00:00:00Z",
- "updatedAt": "2023-01-01T00:00:00Z"
}
Delete the entity by `id`
Delete the entity by the unique identifier
Authorizations:
path Parameters
id required | string <uuid> Identifier of the entity |
Responses
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Register the `apikey` for the entity
Register the apikey
for the entity.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the registering the entity and apikey
entityId required | string <uuid> The |
apiKey required | string [ 16 .. 128 ] characters The |
Responses
Request samples
- Payload
{- "entityId": "01234567-0000-0000-0000-000000000000",
- "apiKey": "dkflks3DflkFmkllnDfde"
}
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Unregister the `apikey` for the entity
Unregister the apikey
for the entity.
Authorizations:
Request Body schema: application/jsonrequired
JSON object required for the unregistering the entity and apikey
entityId required | string <uuid> The |
apiKey required | string [ 16 .. 128 ] characters The |
Responses
Request samples
- Payload
{- "entityId": "01234567-0000-0000-0000-000000000000",
- "apiKey": "dkflks3DflkFmkllnDfde"
}
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
The Presentation Exchange endpoints offers a way to manage resources related to presentation exchange protocol.
The verifier can create the resources such as presentation-definition
that can be publicly referenced
in various protocols such as OpenID for Verificable Presentation.
Get a presentation-definition
Authorizations:
path Parameters
id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "id": "string",
- "input_descriptors": [
- {
- "id": "string",
- "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}, - "constraints": {
- "fields": [
- {
- "id": "string",
- "path": [
- "string"
], - "name": "string",
- "purpose": "string",
- "filter": null,
- "optional": true
}
]
}
}
], - "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}
}
List all presentation-definitions
List all presentation-definitions
in the wallet.
Return a paginated items ordered by created timestamp.
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "string",
- "kind": "string",
- "pageOf": "string",
- "next": "string",
- "previous": "string",
- "contents": [
- {
- "id": "string",
- "input_descriptors": [
- {
- "id": "string",
- "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}, - "constraints": {
- "fields": [
- {
- "id": "string",
- "path": [
- "string"
], - "name": "string",
- "purpose": "string",
- "filter": null,
- "optional": true
}
]
}
}
], - "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}
}
]
}
Create a new presentation-definition
Create a presentation-definition
object according to the presentation exchange protocol.
The POST
endpoint is restricted to the owner of the wallet. The presentation-definition
object, however can be referenced by publicly by id
returned in the response.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (InputDescriptor) | |
name | string |
purpose | string |
object (ClaimFormat) |
Responses
Request samples
- Payload
{- "input_descriptors": [
- {
- "id": "string",
- "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}, - "constraints": {
- "fields": [
- {
- "id": "string",
- "path": [
- "string"
], - "name": "string",
- "purpose": "string",
- "filter": null,
- "optional": true
}
]
}
}
], - "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "id": "string",
- "input_descriptors": [
- {
- "id": "string",
- "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}, - "constraints": {
- "fields": [
- {
- "id": "string",
- "path": [
- "string"
], - "name": "string",
- "purpose": "string",
- "filter": null,
- "optional": true
}
]
}
}
], - "name": "string",
- "purpose": "string",
- "format": {
- "jwt": {
- "alg": [
- "string"
]
}, - "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}, - "ldp": {
- "proof_type": [
- "string"
]
}
}
}
Fetch credential status list by its ID
Fetch credential status list by its ID
Authorizations:
path Parameters
id required | string <uuid> Globally unique identifier of the credential status list |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "type": [
- "VerifiableCredential",
- "StatusList2021Credential"
], - "issuer": "did:prism:462c4811bf61d7de25b3baf86c5d2f0609b4debe53792d297bf612269bf8593a",
- "issuanceDate": "2024-11-05T11:32:21.556400758Z",
- "credentialSubject": {
- "type": "StatusList2021",
- "statusPurpose": "Revocation",
- "encodedList": "H4sIAAAAAAAA_-3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA"
}, - "proof": {
- "type": "DataIntegrityProof",
- "proofPurpose": "assertionMethod",
- "verificationMethod": "data:application/json;base64,eyJAY29udGV4dCI6WyJodHRwczovL3czaWQub3JnL3NlY3VyaXR5L211bHRpa2V5L3YxIl0sInR5cGUiOiJNdWx0aWtleSIsInB1YmxpY0tleU11bHRpYmFzZSI6InVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVRUENjM1M0X0xHVXRIM25DRjZ2dUw3ekdEMS13UmVrMHRHbnB0UnZUakhIMUdvTnk1UFBIZ0FmNTZlSzNOd3B0LWNGcmhrT2pRQk1rcFRKOHNaS1pCZz09In0=",
- "created": "2024-01-22T22:40:34.560891Z",
- "proofValue": "zAN1rKq8npnByRqPRxhjHEkivhN8AhA8V6MqDJga1zcCUEvPDUoqJB5Rj6ZJHTCnBZ98VXTEVd1rprX2wvP1MAaTEi7Pm241qm",
- "cryptoSuite": "eddsa-jcs-2022"
}
}
Revoke a credential by its ID
Marks credential to be ready for revocation, it will be revoked automatically
Authorizations:
path Parameters
id required | string Revoke a credential by its ID |
Responses
Response samples
- 400
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Gets the list of proof presentation records.
Get the list of proof presentation records and its status that the Agent have at moment
Authorizations:
query Parameters
offset | integer <int32> The number of items to skip before returning results. Default is 0 if not specified. |
limit | integer <int32> The maximum number of items to return. Defaults to 100 if not specified. |
thid | string Filter by the DID Comm message's 'thid' of presentProof |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "contents": [
- {
- "presentationId": "938bfc23-f78d-4734-9bf3-6dccf300856f",
- "thid": "04112f4d-e894-4bff-a706-85b3e7190a2c",
- "role": "Verifier",
- "status": "RequestSent",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "e0d81be9-47ca-4e0b-b8a7-325e8c3abc2f",
- "metaRetries": 5
}, - {
- "presentationId": "d22158b0-c650-48ea-be85-2920a845ef26",
- "thid": "04112f4d-e894-4bff-a706-85b3e7190a2c",
- "role": "Prover",
- "status": "RequestReceived",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "metaRetries": 5
}, - {
- "presentationId": "fd3f5e54-fae9-4f72-9413-ec66aab83a57",
- "thid": "6b42fd91-4c98-40ae-a371-a1fd1a39e05e",
- "role": "Prover",
- "status": "PresentationPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "metaRetries": 5
}, - {
- "presentationId": "e56dd3e0-79d0-45f4-ba6c-ff857211b07b",
- "thid": "6b42fd91-4c98-40ae-a371-a1fd1a39e05e",
- "role": "Verifier",
- "status": "PresentationVerified",
- "proofs": [ ],
- "data": [
- "{\"claimsToDisclose\":{\"emailAddress\":{},\"givenName\":{}},\"presentation\":\"{\\\"protected\\\":\\\"eyJhbGciOiJFZERTQSJ9\\\",\\\"payload\\\":\\\"eyJfc2QiOlsiMGl4d0tIV0dzbzFvZThFR0hQd2tGYW9EZE1TRFQ3SmgyNkZGSm1ZbGRnRSIsIjQ4VlFXZS1tcjBibHMyOWpicHFKeDNxX2dYY0k5N3dHcEpsZnRoNXQwMGciLCI0Wk9xanFNZVNUVHRKQTNJRExsc3ZXN0dTNzRIemNxY3N2NVFoZk1valE4IiwiUjhGRE0ydXB1V09mNmVJMVA5ckNPdG12c3puVWFFYXpncVNuN0JfeTE0MCIsIlU5MmpfUHlpcHN2TERNQTlDaVRWbnl3bUFzYTM4S2lDWm5TeVhyUE5mNG8iLCJldFB1Mmc5ajdRd01rZ3g5VnpEX1RnNTNUV3UydVpadk1KeHRnNEJ1WGJBIiwidGV3RG1LWklNcS10bUNrMkpqZU0wajNYbU1aUUFLN01heENVNlF4dm9OMCJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6ImRpZDpwcmlzbToxMmEzOWI1YWEwZTcxODI3ZmMxYzYwMjg1ZDVlZWJjMTk0Yjg2NzFhYTJmY2QxZDM2NDBkMGYwMTBlMzliZmVlIiwiaWF0IjoxNzE3NDEwMzgzLCJleHAiOjE3MjAwMDIzODN9\\\",\\\"signature\\\":\\\"953FfSRU_0Y2q0ERrFPzbXJ_hkF0YQe5efwESaZwtXDCn8aanD3MUstp3lzqGZkhvcWRdtCCpIxzhy0zgKwLBg\\\",\\\"disclosures\\\":[\\\"WyI0SHF6MDZCeG5fRlJMb2hWX2lWNXp3IiwgImdpdmVuTmFtZSIsICJBbGljZSJd\\\",\\\"WyJLUnNYYU01c3NXZTl4UEhqQnNjT213IiwgImVtYWlsQWRkcmVzcyIsICJhbGljZUB3b25kZXJsYW5kLmNvbSJd\\\"],\\\"kb_jwt\\\":null}\"}"
], - "requestData": [ ],
- "connectionId": "e0d81be9-47ca-4e0b-b8a7-325e8c3abc2f",
- "metaRetries": 5
}, - {
- "presentationId": "938bfc23-f78d-4734-9bf3-6dccf300856f",
- "thid": "04112f4d-e894-4bff-a706-85b3e7190a2c",
- "role": "Verifier",
- "status": "InvitationGenerated",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "myDid": "did:peer:veriferPeerDID1234567890",
- "metaRetries": 5
}
], - "self": "/present-proof/presentations",
- "kind": "Collection",
- "pageOf": 1,
- "next": "/present-proof/presentations?offset=20&limit=10",
- "previous": "/present-proof/presentations?offset=0&limit=10"
}
As a Verifier, create a new proof presentation request and send it to the Prover.
Holder presents proof derived from the verifiable credential to verifier.
Authorizations:
Request Body schema: application/jsonrequired
The present proof creation request.
goalCode | string A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. goalcode is optional and can be provided when the presentation request is from invitation for connectionless verification. |
goal | string A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. goal is optional and can be provided when the presentation request is from invitation for connectionless verification. |
connectionId | string <uuid> The unique identifier of a DIDComm connection that already exists between the this verifier agent and the prover cloud or edeg agent. It should be the identifier of a connection that exists in the verifier agent's database. This connection will be used to execute the present proof protocol. Note: connectionId is only required when the presentation request is from existing connection. connectionId is not required when the presentation request is from invitation for connectionless issuance. |
object (Options) The options to use when creating the proof presentation request (e.g., domain, challenge). | |
Array of objects (ProofRequestAux) The type of proofs requested in the context of this proof presentation request (e.g., VC schema, trusted issuers, etc.) | |
object (AnoncredPresentationRequestV1) Anoncred Presentation Request | |
presentationFormat | string (PresentCredentialRequestFormat) Enum: "Anoncred" "JWT" "SDJWT" The presentation format to display in Didcomm messages (default to 'prism/jwt', vc+sd-jwt or anoncreds/proof-request@v1.0) |
claims | object (Obj) The set of claims to be disclosed from the issued credential. The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). |
credentialFormat | string The credential format (default to 'JWT') |
Responses
Request samples
- Payload
{- "goalCode": "present-vp",
- "goal": "Request proof of vaccine",
- "connectionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "options": {
- "challenge": "11c91493-01b3-4c4d-ac36-b336bab5bddf",
}, - "proofs": [ ],
- "anoncredPresentationRequest": "AnoncredPresentationRequestV1(Map(attribute1 -> AnoncredRequestedAttributeV1(Attribute 1,List(Map(cred_def_id -> credential_definition_id_of_attribute1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),Some(1735734400))))),Map(predicate1 -> AnoncredRequestedPredicateV1(Predicate 1,>=,18,List(Map(schema_id -> schema_id_of_predicate1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),None)))),Example Presentation Request,1234567890,1.0,None)",
- "presentationFormat": "prism/jwt",
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "credentialFormat": "JWT"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "presentationId": "3c6d9fa5-d277-431e-a6cb-d3956e47e610",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "role": "Verifier",
- "status": "RequestPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "bc528dc8-69f1-4c5a-a508-5f8019047900",
- "goalCode": "present-vp",
- "goal": "To verify a Peter College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
Gets an existing proof presentation record by its unique identifier. More information on the error can be found in the response body.
Returns an existing presentation record by id.
Authorizations:
path Parameters
presentationId required | string <uuid> The unique identifier of the presentation record. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "presentationId": "3c6d9fa5-d277-431e-a6cb-d3956e47e610",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "role": "Verifier",
- "status": "RequestPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "bc528dc8-69f1-4c5a-a508-5f8019047900",
- "goalCode": "present-vp",
- "goal": "To verify a Peter College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
Updates the proof presentation record matching the unique identifier, with the specific action to perform.
Accept or reject presentation of proof request.
Authorizations:
path Parameters
presentationId required | string <uuid> The unique identifier of the presentation record. |
Request Body schema: application/jsonrequired
The action to perform on the proof presentation record.
action required | string Enum: "request-accept" "request-reject" "presentation-accept" "presentation-reject" The action to perform on the proof presentation record. |
proofId | Array of strings The unique identifier of the issue credential record - and hence VC - to use as the prover accepts the presentation request. Only applicable on the prover side when the action is |
object (AnoncredCredentialProofsV1) A list of proofs from the Anoncred library, each corresponding to a credential. | |
claims | object (Obj) The set of claims to be disclosed from the issued credential. The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). |
credentialFormat | string The credential format (default to 'JWT') |
Responses
Request samples
- Payload
{- "action": "request-accept",
- "proofId": [
- "string"
], - "anoncredPresentationRequest": {
- "credentialProofs": [
- {
- "credential": "string",
- "requestedAttribute": [
- "string"
], - "requestedPredicate": [
- "string"
]
}
]
}, - "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "credentialFormat": "JWT"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "presentationId": "3c6d9fa5-d277-431e-a6cb-d3956e47e610",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "role": "Verifier",
- "status": "RequestPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "bc528dc8-69f1-4c5a-a508-5f8019047900",
- "goalCode": "present-vp",
- "goal": "To verify a Peter College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
As a Verifier, create a new OOB Invitation as proof presentation request that can be delivered out-of-band to a invitee/prover.
Create a new presentation request invitation that can be delivered out-of-band to a peer Agent, regardless of whether it resides in Cloud Agent or edge environment.
The generated invitation adheres to the DIDComm Messaging v2.0 - Out of Band Messages specification section 9.5.4.
The from field of the out-of-band invitation message contains a freshly generated Peer DID that complies with the did:peer:2 specification.
This Peer DID includes the 'uri' location of the DIDComm messaging service, essential for the prover's subsequent execution of the connection flow.
In the Agent database, the created presentation record has an initial state set to InvitationGenerated
.
The invitation is in the form of a presentation request (as described https://github.com/decentralized-identity/waci-didcomm/blob/main/present_proof/present-proof-v3.md), which is included as an attachment in the OOB DIDComm message sent to the invitee/prover.
Authorizations:
Request Body schema: application/jsonrequired
The present proof creation request.
goalCode | string A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message. goalcode is optional and can be provided when the presentation request is from invitation for connectionless verification. |
goal | string A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message. goal is optional and can be provided when the presentation request is from invitation for connectionless verification. |
connectionId | string <uuid> The unique identifier of a DIDComm connection that already exists between the this verifier agent and the prover cloud or edeg agent. It should be the identifier of a connection that exists in the verifier agent's database. This connection will be used to execute the present proof protocol. Note: connectionId is only required when the presentation request is from existing connection. connectionId is not required when the presentation request is from invitation for connectionless issuance. |
object (Options) The options to use when creating the proof presentation request (e.g., domain, challenge). | |
Array of objects (ProofRequestAux) The type of proofs requested in the context of this proof presentation request (e.g., VC schema, trusted issuers, etc.) | |
object (AnoncredPresentationRequestV1) Anoncred Presentation Request | |
presentationFormat | string (PresentCredentialRequestFormat) Enum: "Anoncred" "JWT" "SDJWT" The presentation format to display in Didcomm messages (default to 'prism/jwt', vc+sd-jwt or anoncreds/proof-request@v1.0) |
claims | object (Obj) The set of claims to be disclosed from the issued credential. The JSON object should comply with the schema applicable for this offer (i.e. 'schemaId' or 'credentialDefinitionId'). |
credentialFormat | string The credential format (default to 'JWT') |
Responses
Request samples
- Payload
{- "goalCode": "present-vp",
- "goal": "Request proof of vaccine",
- "connectionId": "d9569cec-c81e-4779-aa86-0d5994d82676",
- "options": {
- "challenge": "11c91493-01b3-4c4d-ac36-b336bab5bddf",
}, - "proofs": [ ],
- "anoncredPresentationRequest": "AnoncredPresentationRequestV1(Map(attribute1 -> AnoncredRequestedAttributeV1(Attribute 1,List(Map(cred_def_id -> credential_definition_id_of_attribute1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),Some(1735734400))))),Map(predicate1 -> AnoncredRequestedPredicateV1(Predicate 1,>=,18,List(Map(schema_id -> schema_id_of_predicate1)),Some(AnoncredNonRevokedIntervalV1(Some(1635734400),None)))),Example Presentation Request,1234567890,1.0,None)",
- "presentationFormat": "prism/jwt",
- "claims": {
- "firstname": "Alice",
- "lastname": "Wonderland"
}, - "credentialFormat": "JWT"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "presentationId": "3c6d9fa5-d277-431e-a6cb-d3956e47e610",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "role": "Verifier",
- "status": "RequestPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "bc528dc8-69f1-4c5a-a508-5f8019047900",
- "goalCode": "present-vp",
- "goal": "To verify a Peter College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
Decode the invitation extract Request Presentation and Create the proof presentation record with RequestReceived state.
Accept Invitation for request presentation
Authorizations:
Request Body schema: application/jsonrequired
The action to perform on the proof presentation request invitation.
invitation required | string The base64-encoded raw invitation. |
Responses
Request samples
- Payload
{- "invitation": "eyJAaWQiOiIzZmE4NWY2NC01NzE3LTQ1NjItYjNmYy0yYzk2M2Y2NmFmYTYiLCJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvbXktZmFtaWx5LzEuMC9teS1tZXNzYWdlLXR5cGUiLCJkaWQiOiJXZ1d4cXp0ck5vb0c5MlJYdnhTVFd2IiwiaW1hZ2VVcmwiOiJodHRwOi8vMTkyLjE2OC41Ni4xMDEvaW1nL2xvZ28uanBnIiwibGFiZWwiOiJCb2IiLCJyZWNpcGllbnRLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInJvdXRpbmdLZXlzIjpbIkgzQzJBVnZMTXY2Z21NTmFtM3VWQWpacGZrY0pDd0R3blpuNnozd1htcVBWIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHA6Ly8xOTIuMTY4LjU2LjEwMTo4MDIwIn0="
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "presentationId": "3c6d9fa5-d277-431e-a6cb-d3956e47e610",
- "thid": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "role": "Verifier",
- "status": "RequestPending",
- "proofs": [ ],
- "data": [ ],
- "requestData": [ ],
- "connectionId": "bc528dc8-69f1-4c5a-a508-5f8019047900",
- "goalCode": "present-vp",
- "goal": "To verify a Peter College Graduate credential",
- "myDid": "did:peer:12345",
- "invitation": {
- "id": "0527aea1-d131-3948-a34d-03af39aba8b4",
- "from": "did:peer:1234457",
}, - "metaRetries": 5,
- "metaLastFailure": {
- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
}
Verify a set of credentials as a Verifier
Endpoint to verify a set of verifiable credentials as a Verifier.
Authorizations:
Request Body schema: application/jsonoptional
List of verifiable credentials to verify
credential required | string Encoded Verifiable Credential to verify |
Array of objects (ParameterizableVcVerification) The list of verifications to perform on the credential. If the list is empty, all available verifications will be performed. |
Responses
Request samples
- Payload
[- {
- "credential": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "verifications": [
- {
- "verification": "SignatureVerification"
}, - {
- "verification": "IssuerIdentification",
- "parameter": {
- "did": "did:prism:issuer"
}
}, - {
- "verification": "ExpirationCheck",
- "parameter": {
- "dateTime": "2022-03-10T12:00:00Z"
}
}, - {
- "verification": "NotBeforeCheck",
- "parameter": {
- "dateTime": "2022-03-10T12:00:00Z"
}
}, - {
- "verification": "AudienceCheck",
- "parameter": {
- "did": "did:prism:holder"
}
}, - {
- "verification": "SubjectVerification"
}, - {
- "verification": "IntegrityOfClaims"
}, - {
- "verification": "ComplianceWithStandards"
}, - {
- "verification": "RevocationCheck"
}, - {
- "verification": "AlgorithmVerification"
}, - {
- "verification": "SchemaCheck"
}, - {
- "verification": "SemanticCheckOfClaims"
}
]
}
]
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
[- {
- "credential": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "result": [
- {
- "verification": "SignatureVerification",
- "success": true
}, - {
- "verification": "IssuerIdentification",
- "success": true
}, - {
- "verification": "ExpirationCheck",
- "success": true
}, - {
- "verification": "NotBeforeCheck",
- "success": true
}, - {
- "verification": "AudienceCheck",
- "success": true
}, - {
- "verification": "SubjectVerification",
- "success": true
}, - {
- "verification": "IntegrityOfClaims",
- "success": true
}, - {
- "verification": "ComplianceWithStandards",
- "success": true
}, - {
- "verification": "RevocationCheck",
- "success": true
}, - {
- "verification": "AlgorithmVerification",
- "success": true
}, - {
- "verification": "SchemaCheck",
- "success": true
}, - {
- "verification": "SemanticCheckOfClaims",
- "success": true
}
]
}
]
Credential Endpoint
OID for VCI Credential Endpoint
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Request Body schema: application/jsonrequired
format required | string (CredentialFormat) Value: "jwt_vc_json" |
CwtProof (object) or JwtProof (object) or LdpProof (object) (Proof2) | |
credential_identifier | string |
object (CredentialResponseEncryption) | |
object (CredentialDefinition) | |
anoncreds required | string |
Responses
Request samples
- Payload
{- "format": "anoncreds",
- "proof": {
- "proof_type": "jwt",
- "cwt": "string"
}, - "credential_identifier": "string",
- "credential_response_encryption": {
- "jwk": "string",
- "alg": "string",
- "enc": "string"
}, - "credential_definition": {
- "@context": [
- "string"
], - "type": [
- "string"
], - "credentialSubject": {
- "property1": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}, - "property2": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}
}
}, - "anoncreds": "string"
}
Response samples
- 200
- 400
- 401
- 403
- 500
{- "transaction_id": "string",
- "c_nonce": "string",
- "c_nonce_expires_in": 0
}
Create a new credential offer
Create a new credential offer and return a compliant CredentialOffer
for the holder's
Credential Offer Endpoint.
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Request Body schema: application/jsonrequired
credentialConfigurationId required | string |
issuingDID required | string |
claims required | any |
Responses
Request samples
- Payload
{- "credentialConfigurationId": "string",
- "issuingDID": "string",
- "claims": null
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "credentialOffer": "string"
}
Nonce Endpoint
The endpoint that returns a nonce
value for the Token Endpoint
Authorizations:
Request Body schema: application/jsonrequired
issuerState required | string |
Responses
Request samples
- Payload
{- "issuerState": "string"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "nonce": "string",
- "nonceExpiresIn": 0
}
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "self": "string",
- "kind": "string",
- "pageOf": "string",
- "next": "string",
- "previous": "string",
- "contents": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "authorizationServerUrl": "string"
}
]
}
Create a new credential issuer
Authorizations:
Request Body schema: application/jsonrequired
id | string <uuid> |
required | object (AuthorizationServer) |
Responses
Request samples
- Payload
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "authorizationServer": {
- "url": "string",
- "clientId": "string",
- "clientSecret": "string"
}
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 422
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "authorizationServerUrl": "string"
}
Delete the credential issuer
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Responses
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Update the credential issuer
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Request Body schema: application/jsonrequired
object (PatchAuthorizationServer) | |||||||
|
Responses
Request samples
- Payload
{- "authorizationServer": {
- "url": "string",
- "clientId": "string",
- "clientSecret": "string"
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "authorizationServerUrl": "string"
}
Create a new credential configuration
Create a new credential configuration for the issuer. It represents the configuration of the credential that can be issued by the issuer. This credential configuration object will be displayed in the credential issuer metadata.
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Request Body schema: application/jsonrequired
configurationId required | string |
format required | string (CredentialFormat) Enum: "anoncreds" "jwt_vc_json" "vc+sd-jwt" Value: "jwt_vc_json" |
schemaId required | string |
Responses
Request samples
- Payload
{- "configurationId": "string",
- "format": "jwt_vc_json",
- "schemaId": "string"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 409
- 422
- 500
{- "configurationId": "string",
- "format": "jwt_vc_json",
- "scope": "string",
- "schemaId": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
Get the credential configuration
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
credentialConfigId required | string Example: UniversityDegree An identifier for the credential configuration |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 422
- 500
{- "configurationId": "string",
- "format": "jwt_vc_json",
- "scope": "string",
- "schemaId": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
Delete the credential configuration
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
credentialConfigId required | string Example: UniversityDegree An identifier for the credential configuration |
Responses
Response samples
- 400
- 401
- 403
- 404
- 422
- 500
{- "status": 200,
- "title": "Malformed email",
- "detail": "The received '{}à!è@!.b}' email does not conform to the email format",
- "instance": "The received '{}à!è@!.b}' email does not conform to the email format"
}
Get the credential issuer metadata
Authorizations:
path Parameters
issuerId required | string <uuid> Example: f47ac10b-58cc-4372-a567-0e02b2c3d479 An issuer identifier in the oid4vci protocol |
Responses
Response samples
- 200
- 400
- 404
- 422
- 500
{- "credential_issuer": "string",
- "authorization_servers": [
- "string"
], - "credential_endpoint": "string",
- "credential_configurations_supported": {
- "property1": {
- "format": "jwt_vc_json",
- "scope": "string",
- "credential_definition": {
- "@context": [
- "string"
], - "type": [
- "string"
], - "credentialSubject": {
- "property1": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}, - "property2": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}
}
}, - "cryptographic_binding_methods_supported": [
- "string"
], - "credential_signing_alg_values_supported": [
- "string"
], - "proof_types_supported": {
- "jwt": {
- "proof_signing_alg_values_supported": [
- "string"
]
}
}
}, - "property2": {
- "format": "jwt_vc_json",
- "scope": "string",
- "credential_definition": {
- "@context": [
- "string"
], - "type": [
- "string"
], - "credentialSubject": {
- "property1": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}, - "property2": {
- "mandatory": true,
- "value_type": "string",
- "display": [
- {
- "name": "string",
- "locale": "string"
}
]
}
}
}, - "cryptographic_binding_methods_supported": [
- "string"
], - "credential_signing_alg_values_supported": [
- "string"
], - "proof_types_supported": {
- "jwt": {
- "proof_signing_alg_values_supported": [
- "string"
]
}
}
}
}
}