Getting started REST API Signatory API - For Issuers Signatory REST API functions.
Swagger | Redoc
The Signatory API exposes the "issuance" endpoint, which provides flexible integration possibilities for anyone intending to act as an "Issuer" (i.e. create, sign and issue Verifiable Credentials), as follows:
Templates - create and mange credential templates
Credentials
If you're new to VCs, check out the intro section for an overview.
The /v1/credentials/issue
endpoint issues a specified credential.
curl Request body schema Response body schema
Copy curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/credentials/issue' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
Copy {
"templateId": "string",
"config":
{
"issuerDid": "string",
"subjectDid": "string",
"verifierDid": "string",
"issuerVerificationMethod": "string",
"proofType": "JWT",
"domain": "string",
"nonce": "string",
"proofPurpose": "string",
"credentialId": "string",
"issueDate": "2022-10-06T18:09:14.570Z",
"validDate": "2022-10-06T18:09:14.570Z",
"expirationDate": "2022-10-06T18:09:14.570Z",
"dataProviderIdentifier": "string",
"ldSignatureType": "string",
"creator": "string",
"ecosystem": "string",
"statusType": "string"
},
"credentialData":
{
"additionalProp1":
{},
"additionalProp2":
{},
"additionalProp3":
{}
}
}
Copy The issued credential displayed either in JSON-LD or JWT format
E.g. Issue a UniversityDegree
credential in the default JSON-LD format. In case you don't have the DID for the Issuer and or the Holder, you can create one here .
curl Request body Response body
Copy curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/credentials/issue' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"templateId": "UniversityDegree",
"config":
{
"issuerDid": "did:web:walt.id",
"subjectDid": "did:web:my.domain"
},
"credentialData":
{
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
}
}
}
}'
Copy {
"templateId": "UniversityDegree",
"config":
{
"issuerDid": "did:web:walt.id",
"subjectDid": "did:web:my.domain"
},
"credentialData":
{
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
}
}
}
}
Copy {
"@context":
[
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
},
"id": "did:web:my.domain"
},
"id": "urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270",
"issued": "2022-10-07T09:53:41.369913097Z",
"issuer":
{
"id": "did:web:walt.id"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
],
"proof":
{
"type": "Ed25519Signature2018",
"creator": "did:web:walt.id",
"created": "2022-10-07T09:53:41Z",
"domain": "https://api.preprod.ebsi.eu",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ"
}
}
Check out the Issue with status section to learn about how to issue a verifiable credential with a credentialStatus property.
Templates
The currently available template functions are:
list - display the list of Templates
import - import a custom template
load - display the content of the template having the specified id
List templates
The /v1/templates
endpoint returns the list of the available template id
s
curl Request body schema Response body schema
Copy curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates' \
-H 'accept: application/json'
E.g. List the templates
curl Response body
Copy curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates' \
-H 'accept: application/json'
Copy [
"DataSelfDescription",
"VerifiableDiploma",
"VerifiableVaccinationCertificate",
"LegalPerson",
"VerifiableAuthorization",
"Europass",
"KybMonoCredential",
"KycCredential",
"VerifiableMandate",
"VerifiablePresentation",
"EuropeanBankIdentity",
"KybCredential",
"VerifiableAttestation",
"OpenBadgeCredential",
"PeerReview",
"DataConsortium",
"ProofOfResidence",
"AmletCredential",
"ParticipantCredential",
"PermanentResidentCard",
"UniversityDegree",
"VerifiableId",
"DataServiceOffering",
"GaiaxCredential",
"Iso27001Certificate"
]
Import template
The /v1/templates/{id}
endpoint to import your custom credential template
id path parameter (required) - id
of the template, e.g. MyCustomCredential
curl Request body schema Request body example Response body schema
Copy curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/templates/{id}' \
-H 'accept: application/json'
-H 'Content-Type: application/json' \
-d '<request-body>'
Copy {
"type" : [
"VerifiableCredential" ,
"MyCustomCredential"
] ,
"@context" : [
"https://www.w3.org/2018/credentials/v1" ,
"https://www.w3.org/2018/credentials/examples/v1"
] ,
"id" : "string" ,
"issuer" : {
"id" : "string"
} ,
"issued" : "2020-03-10T04:24:12.164Z" ,
... // custom data in json
}
Copy {
"type" : [
"VerifiableCredential" ,
"MyCustomCredential"
] ,
"@context" : [
"https://www.w3.org/2018/credentials/v1" ,
"https://www.w3.org/2018/credentials/examples/v1"
] ,
"id" : "http://example.gov/credentials/3732" ,
"issuer" : {
"id" : "did:example:456"
} ,
"issued" : "2020-03-10T04:24:12.164Z" ,
"credentialSubject" : {
"id" : "did:example:123" ,
"firstName" : "" ,
"lastName" : "" ,
"country" : "Austria"
}
}
Load template
The /v1/templates/{id}
endpoint displays the content of the template having the parameters:
id path parameter (required) - id
of the template
curl Request body schema Response body schema
Copy curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates/{id}' \
-H 'accept: application/json'
Copy The template content as JSON
E.g. Load the template for the id
set to UniversityDegree .
curl Response body
Copy curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates/UniversityDegree' \
-H 'accept: application/json'
Copy {
"@context":
[
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
},
"id": "did:example:123"
},
"id": "http://example.gov/credentials/3732",
"issued": "2020-03-10T04:24:12.164Z",
"issuer":
{
"id": "did:example:456"
},
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}
Revocations
Refer to Credential Statuses section for more details on verifiable credential revocations.