Triveria Wallet API (1.0.0)
Download OpenAPI specification:Download
Triveria Wallet API allows to manage credentials inside a specific wallet and interactions between wallets as specified by the OIDC4VC specification.
WalletList
Provides list of wallets owned by the authenticated client.
Authorizations:
Responses
Response samples
- 200
- 500
[- {
- "walletId": "string",
- "name": "string",
- "canSign": false,
- "config": {
- "credentialIssuers": [
- {
- "credentialFormat": "jwt_vc",
- "credentialType": [
- "string"
], - "credentialIssuer": "CtWalletSame"
}
], - "credentialVerifiers": [
- {
- "scope": "string",
- "presentationDefinition": {
- "id": "string",
- "format": {
- "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}
}, - "input_descriptors": [
- {
- "id": "string",
- "constraints": {
- "fields": [
- null
]
}
}
]
}
}
]
}
}
]WalletSave
The first call will authenticate the client and create a new wallet that will be accessible only to the client. Any further calls are meant to update the wallet configuration. Be careful when changing the configuration as it may result in the wallet malfunction.
Authorizations:
header Parameters
| wallet-id | string Has to be provided for updates. |
Request Body schema: application/json
| walletId | string (Wallet ID) |
| name required | string (Wallet Name) |
| canSign required | boolean Default: false |
required | object (Wallet config) Wallet specific configuration. |
Responses
Request samples
- Payload
{- "walletId": "string",
- "name": "string",
- "canSign": false,
- "config": {
- "credentialIssuers": [
- {
- "credentialFormat": "jwt_vc",
- "credentialType": [
- "string"
], - "credentialIssuer": "CtWalletSame"
}
], - "credentialVerifiers": [
- {
- "scope": "string",
- "presentationDefinition": {
- "id": "string",
- "format": {
- "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}
}, - "input_descriptors": [
- {
- "id": "string",
- "constraints": {
- "fields": [
- {
- "filter": { },
- "path": [ ]
}
]
}
}
]
}
}
]
}
}Response samples
- 200
- 400
- 500
{- "walletId": "string",
- "name": "string",
- "canSign": false,
- "config": {
- "credentialIssuers": [
- {
- "credentialFormat": "jwt_vc",
- "credentialType": [
- "string"
], - "credentialIssuer": "CtWalletSame"
}
], - "credentialVerifiers": [
- {
- "scope": "string",
- "presentationDefinition": {
- "id": "string",
- "format": {
- "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}
}, - "input_descriptors": [
- {
- "id": "string",
- "constraints": {
- "fields": [
- {
- "filter": { },
- "path": [ ]
}
]
}
}
]
}
}
]
}
}WalletGet
Provides wallet details
Authorizations:
header Parameters
| wallet-id required | string |
Responses
Response samples
- 200
- 500
{- "walletId": "string",
- "name": "string",
- "canSign": false,
- "config": {
- "credentialIssuers": [
- {
- "credentialFormat": "jwt_vc",
- "credentialType": [
- "string"
], - "credentialIssuer": "CtWalletSame"
}
], - "credentialVerifiers": [
- {
- "scope": "string",
- "presentationDefinition": {
- "id": "string",
- "format": {
- "jwt_vc": {
- "alg": [
- "string"
]
}, - "jwt_vp": {
- "alg": [
- "string"
]
}
}, - "input_descriptors": [
- {
- "id": "string",
- "constraints": {
- "fields": [
- {
- "filter": { },
- "path": [ ]
}
]
}
}
]
}
}
]
}
}WalletNotifications
Provides wallet notifications
Authorizations:
path Parameters
| wallet_id required | string Wallet ID |
Responses
Response samples
- 200
- 500
[- {
- "subjectDid": "string",
- "eventType": "vp.verified",
- "eventDetails": {
- "verifierScope": "string"
}, - "time": "2019-08-24T14:15:22Z"
}
]CredentialList
Retrieves a list of credentials.
Authorizations:
header Parameters
| wallet-id required | string |
Responses
Response samples
- 200
- 500
{- "list": [
- {
- "id": "string",
- "name": "string",
- "status": "draft",
- "property1": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}, - "property2": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}
}
]
}CredentialCreate
Creates a new credential, which is always created in a draft state.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
A Verifiable Credential payload in JSON format.
required | object (Verifiable Credential) |
| name required | string (Credential name) |
| property name* additional property | any (Any additional key, value pairs used to categorize or denote the Credential) |
Responses
Request samples
- Payload
{- "credential": {
- "@context": [
- "string"
], - "id": "string",
- "type": [
- "string"
], - "credentialSchema": {
- "id": "string",
- "name": "string",
- "type": "string"
}, - "credentialSubject": {
- "id": "string"
}, - "credentialStatus": {
- "id": "string",
- "type": "string",
- "statusPurpose": "string",
- "statusListIndex": "string",
- "statusListCredential": "string"
}, - "evidence": [
- {
- "id": "string",
- "type": [
- "string"
]
}
], - "validFrom": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "issued": "2019-08-24T14:15:22Z",
- "issuanceDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "holder": "string",
- "issuer": "string",
- "refreshService": {
- "id": "string",
- "type": "ManualRefreshService2018"
}, - "termsOfUse": {
- "id": "string",
- "type": "IssuerPolicy"
}, - "proof": {
- "type": "Ed25519Signature2020",
- "created": "2019-08-24T14:15:22Z",
- "verificationMethod": "string",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
}, - "name": "string",
- "property1": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}, - "property2": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}
}Response samples
- 200
- 400
- 500
{- "id": "string"
}CredentialImport
Import pre-signed credential into wallet
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
A Verifiable Credential payload in JSON format.
| credential required | string |
| name required | string |
Responses
Request samples
- Payload
{- "credential": "string",
- "name": "string"
}Response samples
- 200
- 400
- 500
{- "@context": [
- "string"
], - "id": "string",
- "type": [
- "string"
], - "credentialSchema": {
- "id": "string",
- "name": "string",
- "type": "string"
}, - "credentialSubject": {
- "id": "string"
}, - "credentialStatus": {
- "id": "string",
- "type": "string",
- "statusPurpose": "string",
- "statusListIndex": "string",
- "statusListCredential": "string"
}, - "evidence": [
- {
- "id": "string",
- "type": [
- "string"
]
}
], - "validFrom": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "issued": "2019-08-24T14:15:22Z",
- "issuanceDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "holder": "string",
- "issuer": "string",
- "refreshService": {
- "id": "string",
- "type": "ManualRefreshService2018"
}, - "termsOfUse": {
- "id": "string",
- "type": "IssuerPolicy"
}, - "proof": {
- "type": "Ed25519Signature2020",
- "created": "2019-08-24T14:15:22Z",
- "verificationMethod": "string",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
}CredentialRequest
TBD
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
A Verifiable Credential request: types and URL of the issuer
| types required | Array of strings |
| url required | string <url> |
| state | string |
| legalEntity required | boolean |
Responses
Request samples
- Payload
{- "types": [
- "string"
], - "url": "string",
- "state": "string",
- "legalEntity": true
}Response samples
- 200
- 400
- 500
[- "string"
]CredentialGet
Retrieves a specific verifiable credential based on the provided identifier. Upon retrieval the status of the credential is checked on the fly and therefore guaranteed.
Authorizations:
path Parameters
| credential_id required | string (Verifiable Credential ID) Verifiable Credential Identifier |
header Parameters
| wallet-id required | string |
Responses
Response samples
- 200
{- "metadata": {
- "id": "string",
- "name": "string",
- "status": "draft",
- "property1": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}, - "property2": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}
}, - "vc": {
- "@context": [
- "string"
], - "id": "string",
- "type": [
- "string"
], - "credentialSchema": {
- "id": "string",
- "name": "string",
- "type": "string"
}, - "credentialSubject": {
- "id": "string"
}, - "credentialStatus": {
- "id": "string",
- "type": "string",
- "statusPurpose": "string",
- "statusListIndex": "string",
- "statusListCredential": "string"
}, - "evidence": [
- {
- "id": "string",
- "type": [
- "string"
]
}
], - "validFrom": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "issued": "2019-08-24T14:15:22Z",
- "issuanceDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "holder": "string",
- "issuer": "string",
- "refreshService": {
- "id": "string",
- "type": "ManualRefreshService2018"
}, - "termsOfUse": {
- "id": "string",
- "type": "IssuerPolicy"
}, - "proof": {
- "type": "Ed25519Signature2020",
- "created": "2019-08-24T14:15:22Z",
- "verificationMethod": "string",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
}, - "signedVc": "string"
}CredentialPatch
Endpoint used to update an existing Credential in draft state. Can be used for additional updates before the Credential is issued. After credential is issued it may not be changed in any way.
path Parameters
| credential_id required | string (Verifiable Credential ID) Verifiable Credential Identifier |
header Parameters
| wallet-id required | string |
Request Body schema: application/json
required | object (Verifiable Credential) |
| name required | string (Credential name) |
| property name* additional property | any (Any additional key, value pairs used to categorize or denote the Credential) |
Responses
Request samples
- Payload
{- "credential": {
- "@context": [
- "string"
], - "id": "string",
- "type": [
- "string"
], - "credentialSchema": {
- "id": "string",
- "name": "string",
- "type": "string"
}, - "credentialSubject": {
- "id": "string"
}, - "credentialStatus": {
- "id": "string",
- "type": "string",
- "statusPurpose": "string",
- "statusListIndex": "string",
- "statusListCredential": "string"
}, - "evidence": [
- {
- "id": "string",
- "type": [
- "string"
]
}
], - "validFrom": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "issued": "2019-08-24T14:15:22Z",
- "issuanceDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "holder": "string",
- "issuer": "string",
- "refreshService": {
- "id": "string",
- "type": "ManualRefreshService2018"
}, - "termsOfUse": {
- "id": "string",
- "type": "IssuerPolicy"
}, - "proof": {
- "type": "Ed25519Signature2020",
- "created": "2019-08-24T14:15:22Z",
- "verificationMethod": "string",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
}, - "name": "string",
- "property1": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}, - "property2": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}
}Response samples
- 200
{- "id": "string"
}CredentialMetadataPatch
Verifiable Credential metadata may be updated even after the credential was issued. It is available as a key value storage for a client to store any additional data for the credential.
path Parameters
| credential_id required | string (Verifiable Credential ID) Verifiable Credential Identifier |
header Parameters
| wallet-id required | string |
Request Body schema: application/json
Verifiable Credential metadata in JSON
| id required | string (Verifiable Credential ID) |
| name required | string (Verifiable Credential name) |
| status required | string (Verifiable Credential status) Enum: "draft" "valid" "invalid" |
| property name* additional property | any (Any additional key, value pairs used to categorize or denote the Credential) |
Responses
Request samples
- Payload
{- "id": "string",
- "name": "string",
- "status": "draft",
- "property1": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}, - "property2": {
- "focus": "education",
- "type": "diploma",
- "origin": "SK"
}
}Response samples
- 200
{- "id": "string"
}OidcAddCredToIssuanceQueue
Adds created Verifiable Credential draft to issuance queue for a specified client using authorized in-time or deferred flow.
Authorizations:
path Parameters
| credential_id required | string |
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| clientId | string |
| idTokenRequestId | string |
Responses
Request samples
- Payload
{- "clientId": "string",
- "idTokenRequestId": "string"
}Response samples
- 400
- 500
{- "Message": "string"
}IssuerCredentialTypesList
Returns verifiable credential format and types that are supported by the issuer.
- format: the verifiable credential format (for example "jwt_vc")
- type: a list of strings that define supported verifiable credential type(s)
query Parameters
| url required | string |
Responses
Response samples
- 200
[- {
- "format": "string",
- "type": [
- "string"
]
}
]OidcInitiatePreauth
Initiates issuing of the verifiable credential using pre-authorized flow.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| clientId | string DID of holder for which the offer is created. |
| idTokenRequestId | string ID of ID token request issued to the holder. |
| credentialTypes required | Array of strings |
| offerEndpoint | string Default: "openid-credential-offer://" |
Responses
Request samples
- Payload
{- "clientId": "string",
- "idTokenRequestId": "string",
- "credentialTypes": [
- "string"
], - "offerEndpoint": "openid-credential-offer://"
}Response samples
- 200
- 400
- 500
{- "preauthCode": "string",
- "pin": "string",
- "issuerUrl": "string",
- "offer": "string"
}OidcInitiateIntime
Initiates issuing of the verifiable credential using authorized flow.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| credentialTypes required | Array of strings |
| offerEndpoint | string Default: "openid-credential-offer://" |
Responses
Request samples
- Payload
{- "credentialTypes": [
- "string"
], - "offerEndpoint": "openid-credential-offer://"
}Response samples
- 200
- 500
{- "state": "string",
- "issuerUrl": "string",
- "offer": "string"
}OidcInitiateDeferred
Initiates issuing of the credential using the authorized deferred flow, in which the holder will receive credential asynchronously.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| credentialTypes required | Array of strings |
| offerEndpoint | string Default: "openid-credential-offer://" |
Responses
Request samples
- Payload
{- "credentialTypes": [
- "string"
], - "offerEndpoint": "openid-credential-offer://"
}Response samples
- 200
- 500
{- "state": "string",
- "issuerUrl": "string",
- "offer": "string"
}OidcVerifyInitUrl
Returns an url where verifier accepts presentations.
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| clientId | string DID of client for which verification url is created |
| idTokenRequestId | string Id of ID token request with which the client shares its did |
| verifierScope required | string |
Responses
Request samples
- Payload
{- "clientId": "string",
- "idTokenRequestId": "string",
- "verifierScope": "string"
}Response samples
- 200
- 404
{- "verifierUrl": "string"
}OidcAcceptOffer
Issue verifiable credential using OIDC4VCI offer acceptance
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
Offer URL and optional PIN for the request
| Url required | string <url> |
| Pin | string |
| LegalEntity | boolean |
Responses
Request samples
- Payload
{- "Url": "string",
- "Pin": "string",
- "LegalEntity": true
}Response samples
- 200
- 400
- 500
[- "string"
]HolderCreateAuthOffer
Creates an authorized credential offer (deferred or instant) for holder-initiated credential request using provided parameters. The offer is an URL that the creator should provide to the client via a redirect, link, or QR code.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| issuerUrl required | string |
| types required | Array of strings |
| state required | string |
| deferred required | boolean |
Responses
Request samples
- Payload
{- "issuerUrl": "string",
- "types": [
- "string"
], - "state": "string",
- "deferred": true
}OidcSendIdToken
Responds to an ID token request
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| requestUrl required | string |
Responses
Request samples
- Payload
{- "requestUrl": "string"
}Response samples
- 400
- 500
{- "Message": "string"
}OidcPresentCredentials
Initiates a presentation of credentials to a verifier.
Authorizations:
header Parameters
| wallet-id required | string |
Request Body schema: application/json
| verifierUrl required | string URL of verifier authorization server. MUST contain the verifier scope as a query parameter( |
Responses
Request samples
- Payload
{- "verifierUrl": "string"
}Response samples
- 400
- 404
{- "Message": "string"
}