OpenID

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.

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
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-06-30T23:17:57.312Z",
      "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": "[email protected]",
      "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-06-30T23:17:57.312Z",
      "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": "[email protected]",
      "prompt": "login"
    }
  },
  "claimMap": {
    "name": "name"
  },
  "singleUse": false,
  "issuer": "text",
  "protocol": "default"
}

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.

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
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": {}
  }
}

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
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-06-30T23:17:57.312Z",
        "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": "[email protected]",
        "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
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-06-30T23:17:57.312Z",
      "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": "[email protected]",
      "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
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
get
GET /openid/vp/{id}/request HTTP/1.1
Host: api-testnet.dock.io
X-RapidAPI-Proxy-Secret: YOUR_API_KEY
Accept: */*
eyJhbG...zKQIDw

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
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"
}

Last updated

Was this helpful?