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