Filter verification
POST/v2/config/digital-wallet/openid/sdjwt/verification/:presentationId/filter
Filters the credentials in the wallet of the holder against the request of the verifier and returns the matches. Call this operation after the receive operation, and use the result to build the request body of the send operation.
The response holds credentials when the verifier sent a DCQL query. DCQL is the only query form that an iGrant.io verifier sends, so this is the usual answer. The response holds inputDescriptors in place of it only for a request from an outside verifier that still uses a DIF Presentation Exchange definition. The wallet never returns both keys.
The array holds one entry for every credential query, even for a query that no credential in the wallet answers. Read matchedCredentials on each entry: an empty array marks a requirement that the holder cannot meet.
The request has no body. The wallet discards a body if you send one.
There is no V3 version of this operation. Use it together with the V3 receive, read and send operations.
Request
Path Parameters
Unique identifier of the presentation record in the wallet of the holder. This is the presentationId property of the record, not its id property.
Responses
- 200
- 400
- 401
- 500
The wallet compared the credentials with the verifier's request and returns the matches.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
- Array [
- Array [
- ]
- ]
- Array [
- Array [
- ]
- ]
credentials object[]
Matches for each credential query in the DCQL query of the verifier, with one entry for every query. The wallet leaves this property out only when the verifier sent a DIF Presentation Exchange definition. Give the id of each entry in the credentials array of the send operation.
Identifier of the DCQL credential query that these credentials match. Give this value as the id of the matching entry in the credentials array of the send operation. For a Presentation Exchange request this is the Input Descriptor identifier.
Human-readable name of the credential requirement. Present only for a Presentation Exchange request that holds a name. Never present for a DCQL query.
Reason why the verifier asks for this credential. Present only for a Presentation Exchange request that holds a purpose. Never present for a DCQL query.
matchedCredentials object[]required
Credentials in the wallet of the holder that agree with this query. The array is empty when the wallet holds no matching credential. The wallet always gives the property, and it is never null.
Identifier of the matching credential in the wallet of the holder. Give this value as credentialId, or in credentialIds, in the request body of the send operation.
Credential types of the matching W3C Verifiable Credential. The wallet leaves this property out for other credential formats.
Verifiable Credential Type of the matching IETF SD-JWT VC. The wallet leaves this property out for other credential formats.
Document type of the matching ISO 18013-5 mDoc credential. The wallet leaves this property out for other credential formats.
match objectrequired
Claims of this credential that agree with the query. The keys are claim path pointers, and they are the values to put in claimIds in the request body of the send operation.
For an ISO 18013-5 mDoc credential on the DCQL path, each key keeps its namespace, for example org.iso.18013.5.1.family_name. Only a request from an outside verifier that still uses Presentation Exchange gives keys without the namespace.
When the query asks for no single claim, the wallet lists every claim that it can disclose: every namespace.element for an mDoc credential, the disclosed claim set for an IETF SD-JWT VC, and the whole credentialSubject for a W3C VC JWT.
Claims of this credential that agree with the query. The keys are claim path pointers, and they are the values to put in claimIds in the request body of the send operation.
For an ISO 18013-5 mDoc credential on the DCQL path, each key keeps its namespace, for example org.iso.18013.5.1.family_name. Only a request from an outside verifier that still uses Presentation Exchange gives keys without the namespace.
When the query asks for no single claim, the wallet lists every claim that it can disclose: every namespace.element for an mDoc credential, the disclosed claim set for an IETF SD-JWT VC, and the whole credentialSubject for a W3C VC JWT.
inputDescriptors object[]
Matches for each Input Descriptor, for a request from an outside verifier that still uses a DIF Presentation Exchange definition, with one entry for every Input Descriptor. The wallet leaves this property out when the verifier sent a DCQL query.
Identifier of the DCQL credential query that these credentials match. Give this value as the id of the matching entry in the credentials array of the send operation. For a Presentation Exchange request this is the Input Descriptor identifier.
Human-readable name of the credential requirement. Present only for a Presentation Exchange request that holds a name. Never present for a DCQL query.
Reason why the verifier asks for this credential. Present only for a Presentation Exchange request that holds a purpose. Never present for a DCQL query.
matchedCredentials object[]required
Credentials in the wallet of the holder that agree with this query. The array is empty when the wallet holds no matching credential. The wallet always gives the property, and it is never null.
Identifier of the matching credential in the wallet of the holder. Give this value as credentialId, or in credentialIds, in the request body of the send operation.
Credential types of the matching W3C Verifiable Credential. The wallet leaves this property out for other credential formats.
Verifiable Credential Type of the matching IETF SD-JWT VC. The wallet leaves this property out for other credential formats.
Document type of the matching ISO 18013-5 mDoc credential. The wallet leaves this property out for other credential formats.
match objectrequired
Claims of this credential that agree with the query. The keys are claim path pointers, and they are the values to put in claimIds in the request body of the send operation.
For an ISO 18013-5 mDoc credential on the DCQL path, each key keeps its namespace, for example org.iso.18013.5.1.family_name. Only a request from an outside verifier that still uses Presentation Exchange gives keys without the namespace.
When the query asks for no single claim, the wallet lists every claim that it can disclose: every namespace.element for an mDoc credential, the disclosed claim set for an IETF SD-JWT VC, and the whole credentialSubject for a W3C VC JWT.
Claims of this credential that agree with the query. The keys are claim path pointers, and they are the values to put in claimIds in the request body of the send operation.
For an ISO 18013-5 mDoc credential on the DCQL path, each key keeps its namespace, for example org.iso.18013.5.1.family_name. Only a request from an outside verifier that still uses Presentation Exchange gives keys without the namespace.
When the query asks for no single claim, the wallet lists every claim that it can disclose: every namespace.element for an mDoc credential, the disclosed claim set for an IETF SD-JWT VC, and the whole credentialSubject for a W3C VC JWT.
{
"credentials": [
{
"id": "Person Identification Data - PID",
"name": "string",
"purpose": "string",
"matchedCredentials": [
{
"credentialId": "d29a6c1e-4b8f-4a1d-9c3e-7f5b2a0d8e11",
"type": [
"string"
],
"vct": "string",
"doctype": "string",
"match": {}
}
]
}
],
"inputDescriptors": [
{
"id": "Person Identification Data - PID",
"name": "string",
"purpose": "string",
"matchedCredentials": [
{
"credentialId": "d29a6c1e-4b8f-4a1d-9c3e-7f5b2a0d8e11",
"type": [
"string"
],
"vct": "string",
"doctype": "string",
"match": {}
}
]
}
]
}
The presentation ID is unknown, or the organisation runs in sandbox mode. Holder operations are not available to sandbox organisations.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}
Unauthorized
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}
Internal server error
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}