EUDIPLO Service API main¶
This is the API documentation for the EUDIPLO Service, which provides credential issuance and verification services
Tenant¶
GET /tenant¶
Get all tenants
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"id": "string",
"name": "string",
"description": "string",
"status": "string",
"clients": [
{
"clientId": "string",
"secret": "string",
"tenantId": "string",
"description": "string",
"roles": [
"presentation:manage"
],
"tenant": null
}
]
}
]
POST /tenant¶
Initialize a tenant
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string",
"enum": [
"presentation:manage",
"presentation:offer",
"issuance:manage",
"issuance:offer",
"clients:manage",
"tenants:manage"
]
}
},
"id": {
"type": "string",
"description": "The unique identifier for the tenant."
},
"name": {
"type": "string",
"description": "The name of the tenant."
},
"description": {
"type": "string",
"description": "The description of the tenant."
}
},
"required": [
"id",
"name"
]
}
Response 201 Created
GET /tenant/{id}¶
Get a tenant by ID
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
{
"id": "string",
"name": "string",
"description": "string",
"status": "string",
"clients": [
{
"clientId": "string",
"secret": "string",
"tenantId": "string",
"description": "string",
"roles": [
"presentation:manage"
],
"tenant": null
}
]
}
Schema of the response body
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the tenant."
},
"name": {
"type": "string",
"description": "The name of the tenant."
},
"description": {
"type": "string",
"description": "The description of the tenant."
},
"status": {
"type": "string",
"description": "The current status of the tenant."
},
"clients": {
"description": "The clients associated with the tenant.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientEntity"
}
}
},
"required": [
"id",
"name",
"status",
"clients"
]
}
DELETE /tenant/{id}¶
Deletes a tenant by ID
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
client¶
GET /client¶
Get all clients for a user
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
POST /client¶
Create a new client
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "The unique identifier for the client."
},
"description": {
"type": "string",
"description": "The description of the client."
},
"roles": {
"type": "array",
"description": "The roles assigned to the client.",
"items": {
"type": "string",
"enum": [
"presentation:manage",
"presentation:offer",
"issuance:manage",
"issuance:offer",
"clients:manage",
"tenants:manage"
]
}
}
},
"required": [
"clientId",
"roles"
]
}
Response 201 Created
{
"clientId": "string",
"secret": "string",
"tenantId": "string",
"description": "string",
"roles": [
"presentation:manage"
],
"tenant": null
}
Schema of the response body
{
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "The unique identifier for the client."
},
"secret": {
"type": "string",
"description": "The secret key for the client."
},
"tenantId": {
"type": "string",
"description": "The unique identifier for the tenant that the client belongs to. Only null for accounts that manage tenants, that do not belong to a client."
},
"description": {
"type": "string",
"description": "The description of the client."
},
"roles": {
"description": "The roles assigned to the client.",
"type": "array",
"items": {
"type": "string",
"enum": [
"presentation:manage",
"presentation:offer",
"issuance:manage",
"issuance:offer",
"clients:manage",
"tenants:manage"
]
}
},
"tenant": {
"description": "The tenant that the client belongs to.",
"allOf": [
{
"$ref": "#/components/schemas/TenantEntity"
}
]
}
},
"required": [
"clientId",
"roles"
]
}
GET /client/{id}¶
Get a client by its id
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
{
"clientId": "string",
"secret": "string",
"tenantId": "string",
"description": "string",
"roles": [
"presentation:manage"
],
"tenant": null
}
Schema of the response body
{
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "The unique identifier for the client."
},
"secret": {
"type": "string",
"description": "The secret key for the client."
},
"tenantId": {
"type": "string",
"description": "The unique identifier for the tenant that the client belongs to. Only null for accounts that manage tenants, that do not belong to a client."
},
"description": {
"type": "string",
"description": "The description of the client."
},
"roles": {
"description": "The roles assigned to the client.",
"type": "array",
"items": {
"type": "string",
"enum": [
"presentation:manage",
"presentation:offer",
"issuance:manage",
"issuance:offer",
"clients:manage",
"tenants:manage"
]
}
},
"tenant": {
"description": "The tenant that the client belongs to.",
"allOf": [
{
"$ref": "#/components/schemas/TenantEntity"
}
]
}
},
"required": [
"clientId",
"roles"
]
}
PATCH /client/{id}¶
Update a client by its id
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "The description of the client."
},
"roles": {
"type": "array",
"description": "The roles assigned to the client.",
"items": {
"type": "string",
"enum": [
"presentation:manage",
"presentation:offer",
"issuance:manage",
"issuance:offer",
"clients:manage",
"tenants:manage"
]
}
}
},
"required": [
"roles"
]
}
Response 200 OK
DELETE /client/{id}¶
Get a client by its id
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
GET /client/{id}/secret¶
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
Key¶
GET /key¶
Get all keys for the tenant.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"id": "string",
"tenantId": "string",
"tenant": null,
"crt": "string",
"type": {},
"description": "string",
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z"
}
]
POST /key¶
Add a new key to the key service.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"privateKey": {
"description": "The private key in JWK format.",
"allOf": [
{
"$ref": "#/components/schemas/Key"
}
]
},
"crt": {
"type": "string",
"description": "Optional certificate in PEM format."
},
"description": {
"type": "string",
"description": "Description of the key."
}
},
"required": [
"privateKey"
]
}
Response 201 Created
PUT /key/{id}¶
Updates an existing key in the key service.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Request body
Response 200 OK
DELETE /key/{id}¶
Delete a key from the key service.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
Presentation management¶
POST /presentation-management/request¶
Create an presentation request that can be sent to the user
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"response_type": {
"type": "string",
"description": "The type of response expected from the presentation request.",
"enum": [
"qrcode",
"uri",
"dc-api"
]
},
"requestId": {
"type": "string",
"description": "Identifier of the presentation configuration"
},
"webhook": {
"description": "Webhook configuration to receive the response.\nIf not provided, the configured webhook from the configuration will be used.",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
}
},
"required": [
"response_type",
"requestId"
]
}
Response 201 Created
GET /presentation-management¶
Returns the presentation request configurations.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"id": "string",
"tenant": null,
"description": "string",
"lifeTime": 10.12,
"dcql_query": null,
"registrationCert": null,
"webhook": null,
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z",
"attached": [
{
"format": "string",
"data": {},
"credential_ids": [
"string"
]
}
]
}
]
POST /presentation-management¶
Store a presentation request configuration. If it already exists, it will be updated.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
{
"id": "string",
"tenant": null,
"description": "string",
"lifeTime": 10.12,
"dcql_query": null,
"registrationCert": null,
"webhook": null,
"attached": [
{
"format": "string",
"data": {},
"credential_ids": [
"string"
]
}
]
}
Schema of the request body
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the VP request."
},
"tenant": {
"description": "The tenant that owns this object.",
"allOf": [
{
"$ref": "#/components/schemas/TenantEntity"
}
]
},
"description": {
"type": "string",
"description": "Description of the presentation configuration."
},
"lifeTime": {
"type": "number",
"description": "Lifetime how long the presentation request is valid after creation, in seconds."
},
"dcql_query": {
"description": "The DCQL query to be used for the VP request.",
"allOf": [
{
"$ref": "#/components/schemas/DCQL"
}
]
},
"registrationCert": {
"description": "The registration certificate request containing the necessary details.",
"allOf": [
{
"$ref": "#/components/schemas/RegistrationCertificateRequest"
}
]
},
"webhook": {
"description": "Optional webhook URL to receive the response.",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"attached": {
"description": "Attestation that should be attached",
"type": "array",
"items": {
"$ref": "#/components/schemas/PresentationAttachment"
}
}
},
"required": [
"id",
"tenant",
"dcql_query"
]
}
Response 201 Created
DELETE /presentation-management/{id}¶
Deletes a presentation request configuration by its ID.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
Session management¶
GET /session¶
Retrieves all sessions.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"status": "active",
"id": "string",
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z",
"expiresAt": "2022-04-13T15:42:05.901Z",
"useDcApi": true,
"tenantId": "string",
"tenant": null,
"issuanceId": "string",
"authorization_code": "string",
"request_uri": "string",
"auth_queries": null,
"nonce": "string",
"offer": {},
"offerUrl": "string",
"credentialPayload": null,
"claimsWebhook": null,
"notifyWebhook": null,
"notifications": [
{}
],
"requestId": "string",
"requestUrl": "string",
"requestObject": "string",
"credentials": [
{}
],
"vp_nonce": "string"
}
]
GET /session/{id}¶
Retrieves the session information for a given session ID.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No | The session ID |
Response 200 OK
{
"status": "active",
"id": "string",
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z",
"expiresAt": "2022-04-13T15:42:05.901Z",
"useDcApi": true,
"tenantId": "string",
"tenant": null,
"issuanceId": "string",
"authorization_code": "string",
"request_uri": "string",
"auth_queries": null,
"nonce": "string",
"offer": {},
"offerUrl": "string",
"credentialPayload": null,
"claimsWebhook": null,
"notifyWebhook": null,
"notifications": [
{}
],
"requestId": "string",
"requestUrl": "string",
"requestObject": "string",
"credentials": [
{}
],
"vp_nonce": "string"
}
Schema of the response body
{
"type": "object",
"properties": {
"status": {
"description": "Status of the session.",
"enum": [
"active",
"fetched",
"completed",
"expired",
"failed"
],
"type": "string"
},
"id": {
"type": "string",
"description": "Unique identifier for the session."
},
"createdAt": {
"format": "date-time",
"type": "string",
"description": "The timestamp when the request was created."
},
"updatedAt": {
"format": "date-time",
"type": "string",
"description": "The timestamp when the request was last updated."
},
"expiresAt": {
"format": "date-time",
"type": "string",
"description": "The timestamp when the request is set to expire."
},
"useDcApi": {
"type": "boolean",
"description": "Flag indicating whether to use the DC API for the presentation request."
},
"tenantId": {
"type": "string",
"description": "Tenant ID for multi-tenancy support."
},
"tenant": {
"description": "The tenant that owns this object.",
"allOf": [
{
"$ref": "#/components/schemas/TenantEntity"
}
]
},
"issuanceId": {
"type": "string"
},
"authorization_code": {
"type": "string",
"description": "Authorization code for the session."
},
"request_uri": {
"type": "string",
"description": "Request URI from the authorization request."
},
"auth_queries": {
"description": "Authorization queries associated with the session.",
"allOf": [
{
"$ref": "#/components/schemas/AuthorizeQueries"
}
]
},
"nonce": {
"type": "string",
"description": "Nonce used for the OID4VCI flow."
},
"offer": {
"type": "object",
"description": "Credential offer object containing details about the credential offer or presentation request."
},
"offerUrl": {
"type": "string",
"description": "Offer URL for the credential offer."
},
"credentialPayload": {
"description": "Credential payload containing the offer request details.",
"allOf": [
{
"$ref": "#/components/schemas/OfferRequestDto"
}
]
},
"claimsWebhook": {
"description": "Webhook configuration to send result and may receive further information.",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"notifyWebhook": {
"description": "Webhook configuration to send the result of the notification response.",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"notifications": {
"description": "Notifications associated with the session.",
"type": "array",
"items": {
"type": "object"
}
},
"requestId": {
"type": "string"
},
"requestUrl": {
"type": "string",
"description": "The URL of the presentation auth request."
},
"requestObject": {
"type": "string",
"description": "Signed presentation auth request."
},
"credentials": {
"description": "Verified credentials from the presentation process.",
"type": "array",
"items": {
"type": "object"
}
},
"vp_nonce": {
"type": "string",
"description": "Noncce from the Verifiable Presentation request."
}
},
"required": [
"status",
"id",
"createdAt",
"updatedAt",
"useDcApi",
"tenantId",
"tenant",
"notifications"
]
}
DELETE /session/{id}¶
Deletes a session by its ID
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
POST /session/revoke¶
Update the status of the credentials of a specific session.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Schema of the request body
{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"description": "The session ID of the user"
},
"credentialConfigurationId": {
"type": "string",
"description": "The ID of the credential configuration\nThis is optional, if not provided, all credentials will be revoked of the session."
},
"status": {
"type": "number",
"description": "The status of the credential\n0 = valid, 1 = revoked",
"enum": [
0,
1
]
}
},
"required": [
"sessionId",
"status"
]
}
Response 201 Created
Credentials¶
GET /issuer-management/credentials¶
Returns the credential configurations for this tenant.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"embeddedDisclosurePolicy": null,
"id": "string",
"description": "string",
"tenant": null,
"config": {
"format": "string",
"display": [
{
"name": "string",
"description": "string",
"locale": "string",
"background_color": "string",
"text_color": "string",
"background_image": {
"uri": "string"
},
"logo": null
}
],
"scope": "string"
},
"claims": {},
"disclosureFrame": {},
"vct": {
"vct": "string",
"name": "string",
"description": "string",
"extends": "string",
"extends#integrity": "string",
"schema_uri": "string",
"schema_uri#integrity": "string"
},
"keyBinding": true,
"keyId": "string",
"key": {
"id": "string",
"tenantId": "string",
"tenant": null,
"crt": "string",
"type": {},
"description": "string",
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z"
},
"statusManagement": true,
"lifeTime": 10.12,
"schema": {
"$schema": "string",
"type": "string",
"properties": {},
"required": [
"string"
],
"title": "string",
"description": "string"
},
"issuanceConfigs": [
{
"authenticationConfig": null,
"id": "string",
"tenant": null,
"description": "string",
"credentialConfigs": null,
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z",
"claimsWebhook": null,
"notifyWebhook": null,
"batchSize": 10.12,
"dPopRequired": true
}
]
}
]
POST /issuer-management/credentials¶
Stores the credential configuration for this tenant.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
{
"embeddedDisclosurePolicy": null,
"id": "string",
"description": "string",
"config": {
"format": "string",
"display": [
{
"name": "string",
"description": "string",
"locale": "string",
"background_color": "string",
"text_color": "string",
"background_image": {
"uri": "string"
},
"logo": null
}
],
"scope": "string"
},
"claims": {},
"disclosureFrame": {},
"vct": {
"vct": "string",
"name": "string",
"description": "string",
"extends": "string",
"extends#integrity": "string",
"schema_uri": "string",
"schema_uri#integrity": "string"
},
"keyBinding": true,
"keyId": "string",
"statusManagement": true,
"lifeTime": 10.12,
"schema": {
"$schema": "string",
"type": "string",
"properties": {},
"required": [
"string"
],
"title": "string",
"description": "string"
}
}
Schema of the request body
{
"type": "object",
"properties": {
"embeddedDisclosurePolicy": {
"description": "Embedded disclosure policy (discriminated union by `policy`).\nThe discriminator makes class-transformer instantiate the right subclass,\nand then class-validator runs that subclass’s rules.",
"oneOf": [
{
"$ref": "#/components/schemas/AttestationBasedPolicy"
},
{
"$ref": "#/components/schemas/NoneTrustPolicy"
},
{
"$ref": "#/components/schemas/AllowListPolicy"
},
{
"$ref": "#/components/schemas/RootOfTrustPolicy"
}
],
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedDisclosurePolicy"
}
]
},
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"config": {
"$ref": "#/components/schemas/IssuerMetadataCredentialConfig"
},
"claims": {
"type": "object"
},
"disclosureFrame": {
"type": "object"
},
"vct": {
"$ref": "#/components/schemas/VCT"
},
"keyBinding": {
"type": "boolean"
},
"keyId": {
"type": "string"
},
"statusManagement": {
"type": "boolean"
},
"lifeTime": {
"type": "number"
},
"schema": {
"$ref": "#/components/schemas/SchemaResponse"
}
},
"required": [
"id",
"config"
]
}
Response 201 Created
DELETE /issuer-management/credentials/{id}¶
Deletes an credential configuration.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
Issuer management¶
POST /issuer-management/offer¶
Create an offer for a credential.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
{
"response_type": "qrcode",
"issuanceId": "pid",
"session": "fd3ebf28-8ad6-4909-8a7a-a739c2c412c0"
}
{
"response_type": "qrcode",
"issuanceId": "pid-none",
"claims": {
"pid": {
"given_name": "Max"
}
}
}
Schema of the request body
{
"type": "object",
"properties": {
"response_type": {
"enum": [
"qrcode",
"uri",
"dc-api"
],
"type": "string",
"examples": [
{
"value": "qrcode"
}
],
"description": "The type of response expected for the offer request."
},
"claims": {
"type": "object",
"description": "Override the default values for the credential claims.",
"properties": {},
"examples": [
{
"pid": {
"given_name": "ERIKA",
"family_name": "MUSTERMANN"
}
}
]
},
"issuanceId": {
"type": "string",
"description": "Issuance config id to reference the issuance configuration."
},
"credentialConfigurationIds": {
"description": "Overrides the default values for the credential ids.",
"type": "array",
"items": {
"type": "string"
}
},
"claimsWebhook": {
"description": "Webhook configuration for claims",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"session": {
"type": "string",
"description": "Pre defined session id",
"format": "uuid"
}
},
"required": [
"response_type",
"issuanceId"
]
}
Response 201 Created
GET /issuer-management/issuance¶
Returns the issuance configurations for this tenant.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
[
{
"authenticationConfig": null,
"id": "string",
"tenant": null,
"description": "string",
"credentialConfigs": [
{
"embeddedDisclosurePolicy": null,
"id": "string",
"description": "string",
"tenant": null,
"config": {
"format": "string",
"display": [
{
"name": "string",
"description": "string",
"locale": "string",
"background_color": "string",
"text_color": "string",
"background_image": {
"uri": "string"
},
"logo": null
}
],
"scope": "string"
},
"claims": {},
"disclosureFrame": {},
"vct": {
"vct": "string",
"name": "string",
"description": "string",
"extends": "string",
"extends#integrity": "string",
"schema_uri": "string",
"schema_uri#integrity": "string"
},
"keyBinding": true,
"keyId": "string",
"key": {
"id": "string",
"tenantId": "string",
"tenant": null,
"crt": "string",
"type": {},
"description": "string",
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z"
},
"statusManagement": true,
"lifeTime": 10.12,
"schema": {
"$schema": "string",
"type": "string",
"properties": {},
"required": [
"string"
],
"title": "string",
"description": "string"
},
"issuanceConfigs": null
}
],
"createdAt": "2022-04-13T15:42:05.901Z",
"updatedAt": "2022-04-13T15:42:05.901Z",
"claimsWebhook": null,
"notifyWebhook": null,
"batchSize": 10.12,
"dPopRequired": true
}
]
POST /issuer-management/issuance¶
Stores the issuance configuration for this tenant.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
{
"authenticationConfig": null,
"credentialConfigIds": [
"string"
],
"id": "string",
"description": "string",
"claimsWebhook": null,
"notifyWebhook": null,
"batchSize": 10.12,
"dPopRequired": true
}
Schema of the request body
{
"type": "object",
"properties": {
"authenticationConfig": {
"description": "Authentication configuration for the issuance process.",
"oneOf": [
{
"$ref": "#/components/schemas/AuthenticationMethodNone"
},
{
"$ref": "#/components/schemas/AuthenticationMethodAuth"
},
{
"$ref": "#/components/schemas/AuthenticationMethodPresentation"
}
]
},
"credentialConfigIds": {
"description": "Ids of the credential configurations associated with this issuance configuration.",
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "string",
"description": "Unique identifier for the issuance configuration."
},
"description": {
"type": "string",
"description": "Description of the issuance configuration."
},
"claimsWebhook": {
"description": "Webhook to receive claims for the issuance process.",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"notifyWebhook": {
"description": "Webhook to send the result of the notification response",
"allOf": [
{
"$ref": "#/components/schemas/WebhookConfig"
}
]
},
"batchSize": {
"type": "number",
"description": "Value to determine the amount of credentials that are issued in a batch.\nDefault is 1."
},
"dPopRequired": {
"type": "boolean",
"description": "Indicates whether DPoP is required for the issuance process. Default value is true."
}
},
"required": [
"authenticationConfig",
"credentialConfigIds",
"id"
]
}
Response 201 Created
DELETE /issuer-management/issuance/{id}¶
Deletes an issuance configuration.
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No | |
id |
path | string | No |
Response 200 OK
Display¶
GET /display¶
Get display information for a user
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Response 200 OK
POST /display¶
Create a new display for a user
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Response 201 Created
{
"tenant": null,
"value": [
{
"name": "string",
"locale": "string",
"logo": {
"url": "string"
}
}
]
}
Schema of the response body
{
"type": "object",
"properties": {
"tenant": {
"description": "The tenant that owns this object.",
"allOf": [
{
"$ref": "#/components/schemas/TenantEntity"
}
]
},
"value": {
"description": "The display information.",
"type": "array",
"items": {
"$ref": "#/components/schemas/DisplayInfo"
}
}
},
"required": [
"tenant",
"value"
]
}
Health¶
GET /health¶
Endpoint to check the health of the service.
Response 200 OK
{
"status": "ok",
"info": {
"database": {
"status": "up"
}
},
"error": {},
"details": {
"database": {
"status": "up"
}
}
}
Schema of the response body
{
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "ok"
},
"info": {
"type": "object",
"example": {
"database": {
"status": "up"
}
},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"nullable": true
},
"error": {
"type": "object",
"example": {},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"nullable": true
},
"details": {
"type": "object",
"example": {
"database": {
"status": "up"
}
},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
}
}
}
}
Response 503 Service Unavailable
{
"status": "error",
"info": {
"database": {
"status": "up"
}
},
"error": {
"redis": {
"status": "down",
"message": "Could not connect"
}
},
"details": {
"database": {
"status": "up"
},
"redis": {
"status": "down",
"message": "Could not connect"
}
}
}
Schema of the response body
{
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "error"
},
"info": {
"type": "object",
"example": {
"database": {
"status": "up"
}
},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"nullable": true
},
"error": {
"type": "object",
"example": {
"redis": {
"status": "down",
"message": "Could not connect"
}
},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"nullable": true
},
"details": {
"type": "object",
"example": {
"database": {
"status": "up"
},
"redis": {
"status": "down",
"message": "Could not connect"
}
},
"additionalProperties": {
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": true
}
}
}
}
Prometheus¶
GET /metrics¶
Response 200 OK
Storage¶
POST /storage¶
Upload files that belong to a tenant like images
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
oauth2 |
header | string | N/A | No |
Request body
Response 201 Created
GET /storage/{key}¶
Input parameters
Parameter | In | Type | Default | Nullable | Description |
---|---|---|---|---|---|
key |
path | string | No |
Response 200 OK
Schemas¶
AllowListPolicy¶
Name | Type |
---|---|
policy |
string |
values |
Array<string> |
ApiKeyConfig¶
Name | Type |
---|---|
headerName |
string |
value |
string |
AttestationBasedPolicy¶
Name | Type |
---|---|
policy |
string |
values |
Array<PolicyCredential> |
AuthenticationMethodAuth¶
Name | Type |
---|---|
config |
AuthenticationUrlConfig |
method |
string |
AuthenticationMethodNone¶
Name | Type |
---|---|
method |
string |
AuthenticationMethodPresentation¶
Name | Type |
---|---|
config |
PresentationDuringIssuanceConfig |
method |
string |
AuthenticationUrlConfig¶
Name | Type |
---|---|
url |
string |
webhook |
AuthorizeQueries¶
Name | Type |
---|---|
auth_session |
string |
client_id |
string |
code_challenge |
string |
code_challenge_method |
string |
dpop_jkt |
string |
issuer_state |
string |
redirect_uri |
string |
request_uri |
string |
resource |
string |
response_type |
string |
scope |
string |
CertEntity¶
Name | Type |
---|---|
createdAt |
string(date-time) |
crt |
string |
description |
string |
id |
string |
tenant |
|
tenantId |
string |
type |
|
updatedAt |
string(date-time) |
Claim¶
Name | Type |
---|---|
path |
Array<string> |
ClaimsQuery¶
Name | Type |
---|---|
id |
string |
path |
Array<string> |
values |
Array<> |
ClientEntity¶
Name | Type |
---|---|
clientId |
string |
description |
string |
roles |
Array<string> |
secret |
string |
tenant |
|
tenantId |
string |
ClientSecretResponseDto¶
Name | Type |
---|---|
secret |
string |
CreateClientDto¶
Name | Type |
---|---|
clientId |
string |
description |
string |
roles |
Array<string> |
CreateTenantDto¶
Name | Type |
---|---|
description |
string |
id |
string |
name |
string |
roles |
Array<string> |
CredentialConfig¶
Name | Type |
---|---|
claims |
|
config |
IssuerMetadataCredentialConfig |
description |
string |
disclosureFrame |
|
embeddedDisclosurePolicy |
|
id |
string |
issuanceConfigs |
Array<IssuanceConfig> |
key |
CertEntity |
keyBinding |
boolean |
keyId |
string |
lifeTime |
number |
schema |
SchemaResponse |
statusManagement |
boolean |
tenant |
|
vct |
VCT |
CredentialConfigCreate¶
Name | Type |
---|---|
claims |
|
config |
IssuerMetadataCredentialConfig |
description |
string |
disclosureFrame |
|
embeddedDisclosurePolicy |
|
id |
string |
keyBinding |
boolean |
keyId |
string |
lifeTime |
number |
schema |
SchemaResponse |
statusManagement |
boolean |
vct |
VCT |
CredentialQuery¶
Name | Type |
---|---|
claims |
Array<Claim> |
format |
string |
id |
string |
meta |
|
multiple |
boolean |
trusted_authorities |
Array<TrustedAuthorityQuery> |
CredentialSetQuery¶
Name | Type |
---|---|
options |
Array<Array<string>> |
required |
boolean |
DCQL¶
Name | Type |
---|---|
credential_set |
Array<CredentialSetQuery> |
credentials |
Array<CredentialQuery> |
Display¶
Name | Type |
---|---|
background_color |
string |
background_image |
DisplayImage |
description |
string |
locale |
string |
logo |
DisplayImage |
name |
string |
text_color |
string |
DisplayCreateDto¶
Name | Type |
---|---|
value |
Array<DisplayInfo> |
DisplayEntity¶
Name | Type |
---|---|
tenant |
|
value |
Array<DisplayInfo> |
DisplayImage¶
Name | Type |
---|---|
uri |
string |
DisplayInfo¶
Name | Type |
---|---|
locale |
string |
logo |
DisplayLogo |
name |
string |
DisplayLogo¶
Name | Type |
---|---|
url |
string |
EmbeddedDisclosurePolicy¶
Name | Type |
---|---|
policy |
string |
FileUploadDto¶
Name | Type |
---|---|
file |
string(binary) |
IssuanceConfig¶
Name | Type |
---|---|
authenticationConfig |
|
batchSize |
number |
claimsWebhook |
|
createdAt |
string(date-time) |
credentialConfigs |
Array<CredentialConfig> |
description |
string |
dPopRequired |
boolean |
id |
string |
notifyWebhook |
|
tenant |
|
updatedAt |
string(date-time) |
IssuanceDto¶
Name | Type |
---|---|
authenticationConfig |
|
batchSize |
number |
claimsWebhook |
|
credentialConfigIds |
Array<string> |
description |
string |
dPopRequired |
boolean |
id |
string |
notifyWebhook |
IssuerMetadataCredentialConfig¶
Name | Type |
---|---|
display |
Array<Display> |
format |
string |
scope |
string |
Key¶
Name | Type |
---|---|
alg |
string |
crv |
string |
d |
string |
kid |
string |
kty |
string |
x |
string |
y |
string |
KeyImportDto¶
Name | Type |
---|---|
crt |
string |
description |
string |
privateKey |
NoneTrustPolicy¶
Name | Type |
---|---|
policy |
string |
OfferRequestDto¶
Name | Type |
---|---|
claims |
|
claimsWebhook |
|
credentialConfigurationIds |
Array<string> |
issuanceId |
string |
response_type |
string |
session |
string(uuid) |
OfferResponse¶
Name | Type |
---|---|
session |
string |
uri |
string |
PolicyCredential¶
Name | Type |
---|---|
claims |
Array<ClaimsQuery> |
credential_sets |
Array<CredentialSetQuery> |
credentials |
Array<CredentialQuery> |
PresentationAttachment¶
Name | Type |
---|---|
credential_ids |
Array<string> |
data |
|
format |
string |
PresentationConfig¶
Name | Type |
---|---|
attached |
Array<PresentationAttachment> |
createdAt |
string(date-time) |
dcql_query |
|
description |
string |
id |
string |
lifeTime |
number |
registrationCert |
|
tenant |
|
updatedAt |
string(date-time) |
webhook |
PresentationConfigCreateDto¶
Name | Type |
---|---|
attached |
Array<PresentationAttachment> |
dcql_query |
|
description |
string |
id |
string |
lifeTime |
number |
registrationCert |
|
tenant |
|
webhook |
PresentationDuringIssuanceConfig¶
Name | Type |
---|---|
type |
string |
PresentationRequest¶
Name | Type |
---|---|
requestId |
string |
response_type |
string |
webhook |
RegistrationCertificateRequest¶
Name | Type |
---|---|
body |
|
id |
string |
RootOfTrustPolicy¶
Name | Type |
---|---|
policy |
string |
values |
string |
SchemaResponse¶
Name | Type |
---|---|
$schema |
string |
description |
string |
properties |
|
required |
Array<string> |
title |
string |
type |
string |
Session¶
Name | Type |
---|---|
auth_queries |
|
authorization_code |
string |
claimsWebhook |
|
createdAt |
string(date-time) |
credentialPayload |
|
credentials |
Array<> |
expiresAt |
string(date-time) |
id |
string |
issuanceId |
string |
nonce |
string |
notifications |
Array<> |
notifyWebhook |
|
offer |
|
offerUrl |
string |
request_uri |
string |
requestId |
string |
requestObject |
string |
requestUrl |
string |
status |
string |
tenant |
|
tenantId |
string |
updatedAt |
string(date-time) |
useDcApi |
boolean |
vp_nonce |
string |
StatusUpdateDto¶
Name | Type |
---|---|
credentialConfigurationId |
string |
sessionId |
string |
status |
number |
TenantEntity¶
Name | Type |
---|---|
clients |
Array<ClientEntity> |
description |
string |
id |
string |
name |
string |
status |
string |
TrustedAuthorityQuery¶
Name | Type |
---|---|
type |
string |
values |
Array<string> |
UpdateClientDto¶
Name | Type |
---|---|
description |
string |
roles |
Array<string> |
UpdateKeyDto¶
Name | Type |
---|---|
crt |
string |
description |
string |
VCT¶
Name | Type |
---|---|
description |
string |
extends |
string |
extends#integrity |
string |
name |
string |
schema_uri |
string |
schema_uri#integrity |
string |
vct |
string |
WebHookAuthConfigHeader¶
Name | Type |
---|---|
config |
|
type |
string |
WebHookAuthConfigNone¶
Name | Type |
---|---|
type |
string |
WebhookConfig¶
Name | Type |
---|---|
auth |
|
url |
string |
Security schemes¶
Name | Type | Scheme | Description |
---|---|---|---|
oauth2 | oauth2 |
More documentation¶
Documentation