Developer Documentation
Everything you need to integrate verifiable credential issuance and verification into your application.
Quick Start
Get API credentials
Contact us to receive your API key and tenant configuration. Each organization gets isolated credentials with per-tenant key management.
Configure your credential schema
Define the claims your credentials will contain. Tessera supports custom claim sets for any use case — from simple age attestations to complex professional certifications.
Issue your first credential
Use the OpenID4VCI endpoint to issue a credential. The API returns a credential offer URI that the holder scans with their wallet.
Verify a presentation
Create a verification request with the claims you need. The holder's wallet presents the credential, and Tessera returns the verified claims.
API Reference
Credential Issuance
/api/v1/credentials/issueIssue a verifiable credential to a holder. Supports SD-JWT, JWT-VC, and mDoc formats.
Credential Offer
/api/v1/credentials/offer/:idRetrieve the OpenID4VCI credential offer URI for a pending issuance.
Verification Request
/api/v1/verification/requestCreate an OpenID4VP verification request with DCQL claim queries.
Verification Result
/api/v1/verification/:idRetrieve the verified claims from a completed presentation.
Credential Status
/api/v1/credentials/:id/statusCheck the revocation status of an issued credential.
Revoke Credential
/api/v1/credentials/:id/revokeRevoke an issued credential. Updates the status list immediately.
Authentication
All API requests require a Bearer token in the Authorization header. Tokens are obtained via the OIDC token endpoint using client credentials flow.
curl -X POST https://api.tsera.io/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"Credential Formats
Specify the credential format in the issuance request using the format parameter.
// SD-JWT (selective disclosure)
{ "format": "vc+sd-jwt", "vct": "VerifiedEmployee" }
// JWT-VC (W3C VC Data Model)
{ "format": "jwt_vc_json", "type": ["VerifiableCredential", "EmployeeCredential"] }
// mDoc (ISO 18013-5)
{ "format": "mso_mdoc", "doctype": "eu.europa.ec.av.1" }Verification with DCQL
DCQL (Digital Credentials Query Language) lets you specify exactly which claims to request from the holder's wallet.
// Request age verification only
{
"dcql_query": {
"credentials": [{
"format": "mso_mdoc",
"doctype": "eu.europa.ec.av.1",
"claims": {
"eu.europa.ec.av.1": { "age_over_18": {} }
}
}]
}
}Need help integrating?
Our team can walk you through the API, help design your credential schema, and set up a sandbox environment for testing.
Request Developer Support