TrustLink Credentials

GenerateCredentialOfferAsync

Create an open standards verifiable credential offer based on a TrustLink Schema containing supplied user data. Returned response can be displayed to an end user with a QR Code or Deeplink.

POST https://api.ultrapassid.com/client/v1/credentials/issue HTTP/1.1
Host: api.ultrapassid.com
Content-Type: application/json
Accept: application/json

POST /v1/credentials/issue

Generate Credential Offer from existing Published Schema

Body parameter

{
  "credential_fields": {
    "property1": "string",
    "property2": "string"
  },
  "schema_key": "f241d2e0-5a44-4703-974b-ec5012713f0b"
}

Parameters

Name In Type Required Description
body body GenerateCredentialOfferCommand false none

Example responses

201 Response

{
  "expiration_date_time_utc": "2024-05-02T02:31:23.0000000+00:00",
  "open_id_credential_offer": "openid-credential-offer://dev-issuer.ultrapassid.com/?credential_offer_uri=https%3A%2F%2Fdev-issuer.ultrapassid.com%2Fopenid4vc%2FcredentialOffer%3Fid%3D4a63e62f-db3d-4b92-9650-0c7034fc3762"
}

400 Response

[
  {
    "error_message": "error1",
    "property_name": "property1"
  },
  {
    "error_message": "error2",
    "property_name": "property2"
  },
  {
    "error_message": "error3",
    "property_name": "property3"
  }
]

424 Response

"Some dependency failed"

Responses

Status Meaning Description Schema
201 Created Created CredentialOfferDto
400 Bad Request Bad Request Inline
401 Unauthorized Unauthorized None
424 Failed Dependency Client Error Inline

GenerateVerificationOfferAsync

Create an open standards verifiable credential presentation request based on a TrustLink Schema containing supplied user data. Returned response can be displayed to an end user with a QR Code or Deeplink.

POST https://api.ultrapassid.com/client/v1/credentials/verify HTTP/1.1
Host: api.ultrapassid.com
Content-Type: application/json
Accept: application/json

POST /v1/credentials/verify

Generate Verification Offer from existing Published Schema

Body parameter

{
  "schema_key": "f241d2e0-5a44-4703-974b-ec5012713f0b"
}

Parameters

Name In Type Required Description
body body GenerateVerificationOfferCommand false none

Example responses

201 Response

{
  "open_id_verification_offer": "openid4vp://authorize?response_type=vp_token&client_id=&response_mode=direct_post&state=83rvNtvkaf2a&presentation_definition_uri=https%3A%2F%2Fdev-verifier.ultrapassid.com%2Fopenid4vc%2Fpd%2F83rvNtvkaf2a&client_id_scheme=redirect_uri&response_uri=https%3A%2F%2Fdev-verifier.ultrapassid.com%2Fopenid4vc%2Fverify%2F83rvNtvkaf2a"
  "session_id": "AVSENPEkDSzb"
}

400 Response

[
  {
    "error_message": "error1",
    "property_name": "property1"
  },
  {
    "error_message": "error2",
    "property_name": "property2"
  },
  {
    "error_message": "error3",
    "property_name": "property3"
  }
]

424 Response

"Some dependency failed"

Responses

Status Meaning Description Schema
201 Created Created VerificationDto
400 Bad Request Bad Request Inline
401 Unauthorized Unauthorized None
424 Failed Dependency Client Error Inline

GetVerificationSessionResultAsync

Retrieve the result of a Verification Request

GET https://api.ultrapassid.com/client/v1/credentials/verify/{sessionId} HTTP/1.1
Host: api.ultrapassid.com
Accept: application/json

GET /v1/credentials/verify/{sessionId}

Get Credential Verification Session Result

Parameters

Name In Type Required Description
sessionId path string true none

Example responses

200 Response

The status can be 1, 2, 3. 1 represents the verification is waiting end user to provide his credential; 2 represents the verification has been fulfilled successfully; 3 represents the verification has been failed.

{
  "status": 1
}

Responses

Status Meaning Description Schema
200 OK Success OrganizationDto
400 Bad Request Bad Request Inline
401 Unauthorized Unauthorized None

Credential Models

CredentialOfferDto

{
  "expirationDateTimeUtc": "2019-08-24T14:15:22Z",
  "openIdCredentialOffer": "string"
}

Properties

Name Type Required Restrictions Description
expirationDateTimeUtc string(date-time) false none none
openIdCredentialOffer string¦null false none none

CredentialTypeDto

{
  "key": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "name": "string"
}

Properties

Name Type Required Restrictions Description
key CredentialTypeKey false none none
name string¦null false none none

CredentialTypeKey

{
  "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
  "value": "a860a344-d7b2-406e-828e-8d442f23f344"
}

Properties

Name Type Required Restrictions Description
guid string(uuid) false none none
value string(uuid) false none none

FieldType

0

Properties

Name Type Required Restrictions Description
anonymous integer(int32) false none none

Enumerated Values

Property Value
anonymous 0
anonymous 1
anonymous 2
anonymous 4
anonymous 5

GenerateCredentialOfferCommand

{
  "credentialFields": {
    "property1": "string",
    "property2": "string"
  },
  "schemaKey": "f241d2e0-5a44-4703-974b-ec5012713f0b"
}

Properties

Name Type Required Restrictions Description
credentialFields object¦null false none none
» additionalProperties string false none none
schemaKey string(uuid) false none none

GenerateVerificationOfferCommand

{
  "schemaKey": "f241d2e0-5a44-4703-974b-ec5012713f0b"
}

Properties

Name Type Required Restrictions Description
schemaKey string(uuid) false none none

IssuanceExpirationPeriod

1

Properties

Name Type Required Restrictions Description
anonymous integer(int32) false none none

Enumerated Values

Property Value
anonymous 1
anonymous 2
anonymous 3

OrganizationDto

{
  "description": "string",
  "domain": "string",
  "imageUrl": "string",
  "key": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "name": "string",
  "websiteUrl": "string"
}

Properties

Name Type Required Restrictions Description
description string¦null false none none
domain string¦null false none none
imageUrl string¦null false none none
key OrganizationKey false none none
name string¦null false none none
websiteUrl string¦null false none none

OrganizationKey

{
  "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
  "value": "a860a344-d7b2-406e-828e-8d442f23f344"
}

Properties

Name Type Required Restrictions Description
guid string(uuid) false none none
value string(uuid) false none none

Verification Schemas

Retrieve available Verification Schemas for the Organization. Verification Schemas can be managed using the Ultrapass Portal.

GetAllSchemaVerifiersAsync

GET https://api.ultrapassid.com/client/v1/schema-verifiers HTTP/1.1
Host: api.ultrapassid.com
Accept: application/json

GET /v1/schema-verifiers

Get all Schema Verifiers

Parameters

Name In Type Required Description
pageNumber query integer(int32) false Format - int32. The index of page to return
pageSize query integer(int32) false Format - int32. Number of items returned

Example responses

200 Response

{
  "data": [
    {
      "issuer_key": "23c7007f-7234-4ebc-9a44-1bbd0aa45af1",
      "issuer_name": "UltrapassId Corp",
      "key": "6b8d9d10-25a4-4693-a5ad-10d2f9bd0780",
      "schema_key": "18222c6f-04e9-4296-8690-d4637eab573b",
      "schema_name": "NY Driver's License"
    },
    {
      "issuer_key": "23c7007f-7234-4ebc-9a44-1bbd0aa45af1",
      "issuer_name": "UltrapassId Corp",
      "key": "502b3238-8593-4a4d-8b31-7b6327e16722",
      "schema_key": "502b3238-8593-4a4d-8b31-7b6327e16722",
      "schema_name": "TX Driver's License"
    }
  ],
  "page_number": 1,
  "page_size": 2,
  "total_count": 2
}

Responses

Status Meaning Description Schema
200 OK Success SchemaVerifierDtoPaginatedResponseEntity
401 Unauthorized Unauthorized None

Published Schemas

Retrieve available Published Schemas for the Organization. Schemas can be managed using the Ultrapass Portal.

GetAllPublishedSchemasAsync

GET https://api.ultrapassid.com/client/v1/schemas HTTP/1.1
Host: api.ultrapassid.com
Accept: application/json

GET /v1/schemas

Get all Published Schemas

Parameters

Name In Type Required Description
pageNumber query integer(int32) false Format - int32. The index of page to return
pageSize query integer(int32) false Format - int32. Number of items returned

Example responses

200 Response

{
  "data": [
    {
      "credential_type": {
        "key": "b154b8e9-9d55-4962-a1dd-fadc42002e7b",
        "name": "NationalId"
      },
      "fields": [
        {
          "field_type": 0,
          "is_required": true,
          "name": "First Name"
        },
        {
          "field_type": 0,
          "is_required": true,
          "name": "Last Name"
        },
        {
          "field_type": 4,
          "is_required": true,
          "name": "Date of Birth"
        },
        {
          "field_type": 0,
          "is_required": false,
          "name": "City"
        },
        {
          "field_type": 0,
          "is_required": false,
          "name": "State"
        }
      ],
      "is_schema_unique_per_wallet": false,
      "issuance_expiration_date_time_utc": "2025-05-02T12:00:00.0000000+00:00",
      "key": "18222c6f-04e9-4296-8690-d4637eab573b",
      "name": "NY Drivers License",
      "status": 1
    },
    {
      "credential_type": {
        "key": "b154b8e9-9d55-4962-a1dd-fadc42002e7b",
        "name": "NationalId"
      },
      "fields": [
        {
          "field_type": 0,
          "is_required": true,
          "name": "First Name"
        },
        {
          "field_type": 0,
          "is_required": true,
          "name": "Last Name"
        },
        {
          "field_type": 4,
          "is_required": true,
          "name": "Date of Birth"
        },
        {
          "field_type": 0,
          "is_required": false,
          "name": "City"
        },
        {
          "field_type": 0,
          "is_required": false,
          "name": "State"
        }
      ],
      "is_schema_unique_per_wallet": false,
      "issuance_expiration_date_time_utc": "2025-05-02T12:00:00.0000000+00:00",
      "key": "502b3238-8593-4a4d-8b31-7b6327e16722",
      "name": "TX Drivers License",
      "status": 1
    }
  ],
  "page_number": 1,
  "page_size": 2,
  "total_count": 2
}

400 Response

[
  {
    "error_message": "error1",
    "property_name": "property1"
  },
  {
    "error_message": "error2",
    "property_name": "property2"
  },
  {
    "error_message": "error3",
    "property_name": "property3"
  }
]

Responses

Status Meaning Description Schema
200 OK Success SchemaDtoPaginatedResponseEntity
400 Bad Request Bad Request Inline
401 Unauthorized Unauthorized None

Schema Models

OrganizationDto

{
  "description": "string",
  "domain": "string",
  "imageUrl": "string",
  "key": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "name": "string",
  "websiteUrl": "string"
}

Properties

Name Type Required Restrictions Description
description string¦null false none none
domain string¦null false none none
imageUrl string¦null false none none
key OrganizationKey false none none
name string¦null false none none
websiteUrl string¦null false none none

OrganizationKey

{
  "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
  "value": "a860a344-d7b2-406e-828e-8d442f23f344"
}

Properties

Name Type Required Restrictions Description
guid string(uuid) false none none
value string(uuid) false none none

SchemaDto

{
  "credentialType": {
    "key": {
      "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
      "value": "a860a344-d7b2-406e-828e-8d442f23f344"
    },
    "name": "string"
  },
  "fields": [
    {
      "fieldType": 0,
      "isRequired": true,
      "name": "string"
    }
  ],
  "isSchemaUniquePerWallet": true,
  "issuanceExpirationDateTimeUtc": "2019-08-24T14:15:22Z",
  "issuanceExpirationPeriod": 1,
  "issuanceExpirationUnits": 0,
  "key": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "name": "string",
  "status": 1
}

Properties

Name Type Required Restrictions Description
credentialType CredentialTypeDto false none none
fields [SchemaFieldDto]¦null false none none
isSchemaUniquePerWallet boolean false none none
issuanceExpirationDateTimeUtc string(date-time)¦null false none none
issuanceExpirationPeriod IssuanceExpirationPeriod false none none
issuanceExpirationUnits integer(int32)¦null false none none
key SchemaKey false none none
name string¦null false none none
status SchemaStatus false none none

SchemaDtoPaginatedResponseEntity

{
  "data": [
    {
      "credentialType": {
        "key": {
          "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
          "value": "a860a344-d7b2-406e-828e-8d442f23f344"
        },
        "name": "string"
      },
      "fields": [
        {
          "fieldType": 0,
          "isRequired": true,
          "name": "string"
        }
      ],
      "isSchemaUniquePerWallet": true,
      "issuanceExpirationDateTimeUtc": "2019-08-24T14:15:22Z",
      "issuanceExpirationPeriod": 1,
      "issuanceExpirationUnits": 0,
      "key": {
        "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
        "value": "a860a344-d7b2-406e-828e-8d442f23f344"
      },
      "name": "string",
      "status": 1
    }
  ],
  "pageNumber": 0,
  "pageSize": 0,
  "totalCount": 0
}

Properties

Name Type Required Restrictions Description
data [SchemaDto]¦null false none none
pageNumber integer(int32) false none none
pageSize integer(int32) false none none
totalCount integer(int32) false none none

SchemaFieldDto

{
  "fieldType": 0,
  "isRequired": true,
  "name": "string"
}

Properties

Name Type Required Restrictions Description
fieldType FieldType false none none
isRequired boolean false none none
name string¦null false none none

SchemaKey

{
  "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
  "value": "a860a344-d7b2-406e-828e-8d442f23f344"
}

Properties

Name Type Required Restrictions Description
guid string(uuid) false none none
value string(uuid) false none none

SchemaStatus

1

Properties

Name Type Required Restrictions Description
anonymous integer(int32) false none none

Enumerated Values

Property Value
anonymous 1
anonymous 2
anonymous 3

SchemaVerifierDto

OrganizationDto

{
  "fields": [
    {
      "fieldType": 0,
      "isRequired": true,
      "name": "string"
    }
  ],
  "issuerKey": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "issuerName": "string",
  "key": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "schemaKey": {
    "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
    "value": "a860a344-d7b2-406e-828e-8d442f23f344"
  },
  "schemaName": "string"
}

Properties

Name Type Required Restrictions Description
fields [SchemaFieldDto]¦null false none none
issuerKey OrganizationKey false none none
issuerName string¦null false none none
key SchemaVerifierKey false none none
schemaKey SchemaKey false none none
schemaName string¦null false none none

SchemaVerifierDtoPaginatedResponseEntity

{
  "data": [
    {
      "fields": [
        {
          "fieldType": 0,
          "isRequired": true,
          "name": "string"
        }
      ],
      "issuerKey": {
        "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
        "value": "a860a344-d7b2-406e-828e-8d442f23f344"
      },
      "issuerName": "string",
      "key": {
        "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
        "value": "a860a344-d7b2-406e-828e-8d442f23f344"
      },
      "schemaKey": {
        "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
        "value": "a860a344-d7b2-406e-828e-8d442f23f344"
      },
      "schemaName": "string"
    }
  ],
  "pageNumber": 0,
  "pageSize": 0,
  "totalCount": 0
}

Properties

Name Type Required Restrictions Description
data [SchemaVerifierDto]¦null false none none
pageNumber integer(int32) false none none
pageSize integer(int32) false none none
totalCount integer(int32) false none none

SchemaVerifierKey

{
  "guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
  "value": "a860a344-d7b2-406e-828e-8d442f23f344"
}

Properties

Name Type Required Restrictions Description
guid string(uuid) false none none
value string(uuid) false none none

VerificationDto

{
  "openIdVerificationOffer": "string"
}

Properties

Name Type Required Restrictions Description
openIdVerificationOffer string¦null false none none

Page last modified: May 3 2024.