Truvera Documentation portal
WebsiteTruvera Workspace
  • Truvera overview
    • Decentralized identity explained
    • Roadmap
    • Subscription plans & billing
  • Solutions
    • Biometric-Bound Credentials
  • Truvera Workspace
    • Create an organization profile (DID)
    • Issue verifiable credentials
      • Filtering, downloading and deleting credentials
    • Verify credentials
    • Create a schema
    • Create a design
    • Team management
      • Inviting a team member
      • Removing a team member
      • Changing team member roles
      • Data retention policies
      • Sub-accounts
    • Revoking credentials
    • Ecosystem Tools
      • Ecosystem set up
      • Ecosystem example
    • Monetizing credentials
      • Setting up monetizable credentials
    • Creating API keys and webhook endpoints
    • Transaction history
    • Custom branded distribution emails
    • Truvera Workspace release notes
      • 2025 Release notes
        • Release notes Q1 2025
      • 2024 Release notes
        • Release Notes February 2024
        • Release Notes March 2024
        • Release Notes April 2024
        • Release Notes May 2024
        • Release Notes June 2024
        • Release Notes July 2024
        • Release Notes August 2024
        • Release Notes September 2024
        • Release Notes October 2024
        • Release notes November 2024
        • Release notes December 2024
  • Truvera API
    • Getting started
    • Webhooks
      • Webhooks API endpoints
    • Sample Postman collections
      • Issue-Store-Verify sample flow
      • Create ecosystems
      • Issue monetizable credentials
      • Create sub-accounts
      • Issue OpenID credentials
    • Truvera Swagger UI
    • DIDs
    • Profiles
    • Credentials
    • Presentations
      • Proof templates
      • Proof requests
      • Other proof endpoints
    • Registries
    • Revocation Status
    • Credential Schemas
    • Jobs
    • Templates
    • Sub-accounts
    • Teams
    • Messaging
    • OpenID
      • OpenID Issuance and Verification Integration Guide
    • iden3comm
    • Ecosystem Tools
      • Trust Registry Integration Guide
      • Creating a Trust Registry
      • Inviting participants
      • Verifiers and Public info
      • Trust Registry Schemas
      • Trust Registry Proof Templates
      • Reports
      • Updating and Deleting Trust Registry
    • Issuing paid credentials (KVAC algorithm integration)
    • Data
    • Verify
    • Keys
    • Schemas
  • System architecture
    • Proposed architecture with Truvera
    • Revocation
    • System scalability
    • Security policies
    • How data is processed and stored
  • Supported standards
    • Interoperability with OpenID
  • Credential wallet
    • Create and manage DIDs in the Truvera Wallet
    • Truvera Wallet release notes
      • Release Notes 2025Q1
      • Release Notes 2024Q4
      • Release Notes 2024Q3
        • Release Notes September 2024
        • Release Notes August 2024
        • Release Notes July 2024
      • Release Notes June 2024
      • Release Notes May 2024
      • Release Notes April 2024
    • White label wallet
      • Configuration
        • Enabling and Disabling Features
        • Customizing the Styling
        • Configuring for Android Builds
        • Configuring iOS Builds
      • Publishing in App Stores
        • Android Build Testing and Publishing
        • iOS Build Testing and Publishing
    • Wallet SDK
      • Getting started
        • Example Credential
        • Presentation definition
        • Verify credentials
      • Cloud wallet
      • Biometric plugin
      • Ecosystem Tools
    • Download Truvera Wallet
  • Open source community
    • Code of Conduct
    • Truvera Credential SDK
    • Blockchain archives
      • DOCK token
        • Migration terms and conditions
  • Support
    • System Status
    • Discord
    • Support services
    • Security policy
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Truvera API

OpenID

PreviousMessagingNextOpenID Issuance and Verification Integration Guide

Last updated 1 month ago

Was this helpful?

OpenID issuance is the best way to go, when you need to send the credential to the holder using a deeplink or QR code.

OpenID issuer endpoint should not be confused with the credential Issuer as it is in the Truvera platform. With OpenID creating an OpenID issuer is the first step of credential issuance and will need to be done for each individual credential.

Credential Offers

Generate credential offers to initiate the issuance process. Credential offers can be shared with the holder to claim the credential. This endpoint creates a credential offer linked to the OpenID issuer.

List all OpenID issuers

get

Returns a paginated list of all OpenID issuers available in the system. This can be used to view the existing issuers and their configurations.

Authorizations
Query parameters
offsetinteger · int32Optional

How many items to offset by for pagination

Default: 0
limitinteger · int32 · min: 1 · max: 64Optional

How many items to return at one time (max 64)

Default: 64
Responses
200
A paged array of OpenID issuers
application/json
400
Application error
application/json
get
GET /openid/issuers HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Accept: */*
[
  {
    "credentialOptions": {
      "persist": true,
      "password": "securepass",
      "template": "",
      "recipientEmail": "",
      "algorithm": "dockbbs",
      "distribute": false,
      "format": "jsonld",
      "credential": {
        "id": "",
        "name": "Basic Credential",
        "description": "My first credential",
        "schema": "https://docknetwork.github.io/vc-schemas/basic-credential.json",
        "context": "https://docknetwork.github.io/vc-schemas/basic-credential.json-ld",
        "type": [
          "BasicCredential"
        ],
        "subject": {
          "id": "did:key:123",
          "name": "A. Holder"
        },
        "issuer": "did:dock:xyz",
        "issuanceDate": "2025-05-16T13:02:05.306Z",
        "expirationDate": "2030-09-20T00:13:59.270Z",
        "status": null
      }
    },
    "authProvider": {
      "url": "https://creds.dock.io/claims",
      "scope": [
        "openid"
      ],
      "clientId": "eyAic2NoZW1hIjogImh0dHBzOi8vZG9ja25ldHdvcmsuZ2l0aHViLmlvL3ZjLXNjaGVtYXMvYmFzaWMtY3JlZGVudGlhbC5qc29uIiwgImNsYWltcyI6IFsibmFtZSJdIH0=",
      "clientSecret": "gpO2IVK+OALL8W+DcFlIfFhJtNA=",
      "claimsSource": "idToken",
      "requestParameters": {
        "login_hint": "user@example.com",
        "prompt": "login"
      }
    },
    "claimMap": {
      "name": "name"
    },
    "singleUse": false,
    "issuer": "text",
    "protocol": "default"
  }
]

Get OpenID issuer

get

Returns the configuration details of an existing OpenID issuer, identified by its UUID. This can be used to view the issuer's settings and supported features.

Authorizations
Path parameters
idstring · uuidRequired

OpenID issuer UUID

Responses
200
Returns the information about the OpenID issuer
application/json
400
Application error
application/json
404
OpenID issuer was not found.
application/json
get
GET /openid/issuers/{id} HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Accept: */*
{
  "credentialOptions": {
    "persist": true,
    "password": "securepass",
    "template": "",
    "recipientEmail": "",
    "algorithm": "dockbbs",
    "distribute": false,
    "format": "jsonld",
    "credential": {
      "id": "",
      "name": "Basic Credential",
      "description": "My first credential",
      "schema": "https://docknetwork.github.io/vc-schemas/basic-credential.json",
      "context": "https://docknetwork.github.io/vc-schemas/basic-credential.json-ld",
      "type": [
        "BasicCredential"
      ],
      "subject": {
        "id": "did:key:123",
        "name": "A. Holder"
      },
      "issuer": "did:dock:xyz",
      "issuanceDate": "2025-05-16T13:02:05.306Z",
      "expirationDate": "2030-09-20T00:13:59.270Z",
      "status": null
    }
  },
  "authProvider": {
    "url": "https://creds.dock.io/claims",
    "scope": [
      "openid"
    ],
    "clientId": "eyAic2NoZW1hIjogImh0dHBzOi8vZG9ja25ldHdvcmsuZ2l0aHViLmlvL3ZjLXNjaGVtYXMvYmFzaWMtY3JlZGVudGlhbC5qc29uIiwgImNsYWltcyI6IFsibmFtZSJdIH0=",
    "clientSecret": "gpO2IVK+OALL8W+DcFlIfFhJtNA=",
    "claimsSource": "idToken",
    "requestParameters": {
      "login_hint": "user@example.com",
      "prompt": "login"
    }
  },
  "claimMap": {
    "name": "name"
  },
  "singleUse": false,
  "issuer": "text",
  "protocol": "default"
}

Delete OpenID issuer

delete

Deletes the specified OpenID issuer and all associated data from the system. Use this endpoint to clean up issuers that are no longer needed.

Authorizations
Path parameters
idstring · uuidRequired

OpenID issuer UUID

Responses
200
OpenID issuer will be deleted
400
Something went wrong.
application/json
404
OpenID issuer was not found.
application/json
delete
DELETE /openid/issuers/{id} HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Accept: */*

No content

Returns the information about the OID4VP request

get

Returns the proof request object in OID4VP format, which can be used with a request URI for processing verifiable presentations.

Authorizations
Path parameters
idstring · uuidRequired

Proof request UUID

Responses
200
Returns the information about the OID4VP request
text/plain
ResponsestringExample: eyJhbG...zKQIDw
400
Application error
application/json
404
Proof request was not found.
application/json
get
GET /openid/vp/{id}/request HTTP/1.1
Host: api-testnet.dock.io
X-RapidAPI-Proxy-Secret: YOUR_API_KEY
Accept: */*
eyJhbG...zKQIDw
  • POSTCreate a new OpenID issuer
  • Credential Offers
  • POST/openid/credential-offers
  • GETList all OpenID issuers
  • GETGet OpenID issuer
  • DELETEDelete OpenID issuer
  • GETReturns the information about the OID4VP request
  • POSTGet proof request in OID4VP deep link or QR code format

Create a new OpenID issuer

post

Creates a new OpenID issuer configuration in the system. This endpoint is used to add an issuer that can later be used for credential issuance and authentication.

Authorizations
Body

Represents the configuration and options to create an OpenID issuer, including credential options, authentication provider details, and claim mappings.

claimMapobjectOptional

Key/value pair mapping for OpenID claims to JSON-LD terms. Can be null/undefined if no 3rd party claims to pull.

Example: {"name":"name"}
singleUsebooleanOptional

Whether or not to expire this issuer (and all URLs related to it) after one credential is issued

Default: falseExample: false
Responses
200
OpenID issuer created
application/json
400
Invalid parameters
application/json
402
Transaction limit reached or upgrade required to proceed
application/json
post
POST /openid/issuers HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 999

{
  "credentialOptions": {
    "persist": true,
    "password": "securepass",
    "template": "",
    "recipientEmail": "",
    "algorithm": "dockbbs",
    "distribute": false,
    "format": "jsonld",
    "credential": {
      "id": "",
      "name": "Basic Credential",
      "description": "My first credential",
      "schema": "https://docknetwork.github.io/vc-schemas/basic-credential.json",
      "context": "https://docknetwork.github.io/vc-schemas/basic-credential.json-ld",
      "type": [
        "BasicCredential"
      ],
      "subject": {
        "id": "did:key:123",
        "name": "A. Holder"
      },
      "issuer": "did:dock:xyz",
      "issuanceDate": "2025-05-16T13:02:05.306Z",
      "expirationDate": "2030-09-20T00:13:59.270Z",
      "status": null
    }
  },
  "authProvider": {
    "url": "https://creds.dock.io/claims",
    "scope": [
      "openid"
    ],
    "clientId": "eyAic2NoZW1hIjogImh0dHBzOi8vZG9ja25ldHdvcmsuZ2l0aHViLmlvL3ZjLXNjaGVtYXMvYmFzaWMtY3JlZGVudGlhbC5qc29uIiwgImNsYWltcyI6IFsibmFtZSJdIH0=",
    "clientSecret": "gpO2IVK+OALL8W+DcFlIfFhJtNA=",
    "claimsSource": "idToken",
    "requestParameters": {
      "login_hint": "user@example.com",
      "prompt": "login"
    }
  },
  "claimMap": {
    "name": "name"
  },
  "singleUse": false
}
{
  "credentialOptions": {
    "persist": true,
    "password": "securepass",
    "template": "",
    "recipientEmail": "",
    "algorithm": "dockbbs",
    "distribute": false,
    "format": "jsonld",
    "credential": {
      "id": "",
      "name": "Basic Credential",
      "description": "My first credential",
      "schema": "https://docknetwork.github.io/vc-schemas/basic-credential.json",
      "context": "https://docknetwork.github.io/vc-schemas/basic-credential.json-ld",
      "type": [
        "BasicCredential"
      ],
      "subject": {
        "id": "did:key:123",
        "name": "A. Holder"
      },
      "issuer": "did:dock:xyz",
      "issuanceDate": "2025-05-16T13:02:05.306Z",
      "expirationDate": "2030-09-20T00:13:59.270Z",
      "status": null
    }
  },
  "authProvider": {
    "url": "https://creds.dock.io/claims",
    "scope": [
      "openid"
    ],
    "clientId": "eyAic2NoZW1hIjogImh0dHBzOi8vZG9ja25ldHdvcmsuZ2l0aHViLmlvL3ZjLXNjaGVtYXMvYmFzaWMtY3JlZGVudGlhbC5qc29uIiwgImNsYWltcyI6IFsibmFtZSJdIH0=",
    "clientSecret": "gpO2IVK+OALL8W+DcFlIfFhJtNA=",
    "claimsSource": "idToken",
    "requestParameters": {
      "login_hint": "user@example.com",
      "prompt": "login"
    }
  },
  "claimMap": {
    "name": "name"
  },
  "singleUse": false,
  "issuer": "text",
  "protocol": "default"
}
post

Generates and returns a credential offer URI for OpenID4VCI. This endpoint is used to initiate the credential issuance process.

Authorizations
Body
idstring · uuidOptional

The OpenID issuer UUID

requestParametersobjectOptional

Optional extra request parameters passed to the federated OpenID provider, such as login hint

Responses
200
OpenID credential offer URI
application/json
400
Invalid or expired OpenID issuer
application/json
402
Transaction limit reached or upgrade required to proceed
application/json
404
Issuer not found
application/json
post
POST /openid/credential-offers HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "requestParameters": {}
}
{
  "url": "openid-credential-offer://?credential_offer=...",
  "offer": {
    "credential_issuer": "text",
    "credentials": [
      "text"
    ],
    "request_parameters": {},
    "grants": {}
  }
}

Get proof request in OID4VP deep link or QR code format

post

Creates and returns a deep link or QR code for an OID4VP proof request, allowing for easy scanning or clicking by users to initiate the proof process.

Authorizations
Path parameters
idstring · uuidRequired

Proof request UUID

Body
withIdTokenbooleanOptionalDefault: false
withRequestURIbooleanOptionalDefault: false
Responses
200
Returns the information about the OID4VP request
application/json
400
Application error
application/json
401
Unauthorized
application/json
404
Proof request was not found.
application/json
post
POST /openid/vp/{id}/request-url HTTP/1.1
Host: api-testnet.dock.io
DOCK-API-TOKEN: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 44

{
  "withIdToken": false,
  "withRequestURI": false
}
{
  "url": "openid://?client_id=https%3A%2F%2Fexample.com%2Fopenid%2Fvp%2F6600...e165&request_uri=https%3A%2F%2Fexample.com%2Fopenid%2Fvp%2F6600...e165%2Frequest"
}