Credential storage (DCP)
The POST request to the /credentials endpoint with a CredentialMessage requests the storage of a credential. All roles (participants) must support this endpoint, since all roles must be able to store credentials. The endpoint would typically be provided by a Wallet provider.
If invoked with a credential-request message, requests the issuance of a Verifiable Credential according to the Eclipse Decentralized Claims Protocol v1.0 specification. This is applicable to issuers only. If invoked with a credential-message, requests the storage of a credential, applicable to all roles (participants), since all roles must be able to store credentials. More information in the DCP specification of the credential request API and the DCP specification of the storage API.
iSHARE JWT Bearer token authentication
Credential (request) created successfully
Bad Request - Invalid request
Unauthorized - Invalid or missing authentication
Forbidden - Insufficient permissions to issue credential
Internal Server Error
POST /credentials HTTP/1.1
Host:
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}No content
Request model
The model for the CredentialMessage is defined in: https://eclipse-dataspace-dcp.github.io/decentralized-claims-protocol/v1.0/resources/issuance/credential-message-schema.json.
@contextArray of Strings. Root level. (Required) Specifies a valid Json-Ld context. Must contain"https://w3id.org/dspace-dcp/v1.0/dcp.jsonld"typeString. Root level. (Required) A string specifying the CredentialRequestMessage type. Must contain"CredentialMessage"credentialsArray of objects. Root level. An array of Credential Container objects.credentialTypeString. Contained in Credential Container object. (Required) A single string specifying type of credential. Could contain a reference to a credential type defined in the iSHARE Framework (as Credential Schema).payloadString. Contained in Credential Container object. (Required) A Json Literal containing a Verifiable Credential defined by VC DataModel version of the selected profile.formatString. Contained in Credential Container object. (Required) A JSON string that describes the format of the credential to be issued. Typically contains"jwt".
issuerPidString. Root level. (Required) A string corresponding to the issuance id on the Issuer side.holderPidString. Root level. A string corresponding to the request id on the Holder side.statusString. Root level. (Required) A string stating whether the request was successful (ISSUED) or rejected (REJECTED).
Example request
POST /credentials HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
{
"@context": [
"https://w3id.org/dspace-dcp/v1.0/dcp.jsonld"
],
"type": "CredentialMessage",
"credentials": [
{
"credentialType": "FrameworkCompliance",
"payload": "",
"format": "jwt"
},
{
"credentialType": "DataspaceMembership",
"payload": "",
"format": "jwt"
}
],
"issuerPid": "issuerPid",
"holderPid": "holderPid",
"status": "ISSUED"
}Response model
After success, a 201 response will be provided.
Last updated