Tesseratessera

Developer Documentation

Everything you need to integrate verifiable credential issuance and verification into your application.

Quick Start

1

Get API credentials

Contact us to receive your API key and tenant configuration. Each organization gets isolated credentials with per-tenant key management.

2

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.

3

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.

4

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

POST/api/v1/credentials/issue

Issue a verifiable credential to a holder. Supports SD-JWT, JWT-VC, and mDoc formats.

Credential Offer

GET/api/v1/credentials/offer/:id

Retrieve the OpenID4VCI credential offer URI for a pending issuance.

Verification Request

POST/api/v1/verification/request

Create an OpenID4VP verification request with DCQL claim queries.

Verification Result

GET/api/v1/verification/:id

Retrieve the verified claims from a completed presentation.

Credential Status

GET/api/v1/credentials/:id/status

Check the revocation status of an issued credential.

Revoke Credential

POST/api/v1/credentials/:id/revoke

Revoke 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