---
id: config-filter-digital-wallet-open-id-verification
title: "Filter verification"
description: "Filters the holder's credentials against the verifier's presentation definition to find matches for the OpenID4VP presentation."
sidebar_label: "Filter verification"
hide_title: true
hide_table_of_contents: true
api: eJzlVlFv2zYQ/iuHe1kCyJaTZsAgFMVSu93cFkuwpMlDYCCMdLLZSKRKUnY9Q/99OFK2JTvd9rCHAXuxKZJ3vPvu7rvbYEY2NbJyUitM8L0sHBkLbkGw0EVG5gcLqaGMlJOisCDmQirr/IUlGZlLf6UyZEk5wWogo1wq6ZdOQy5VBqVw6YIs5Np40auK1HRycXfdkxxihLoi4z+mGSaYapXLebBqIufSieJeFAU5ryC78xak/j5GWAkjSmIHMHnYHLj2WcmvNYH0rrDZoHMQfcstWcv/UvURWPk32TzJqirhFhihEiXxV0fDNMMIDX2tpaEME2dqitCmCyoFJht064olrDNSzbFpZnzZVlpZsnx+Phrx30sxoazFO3hrwZAzkpaUga3TlKzN66JYY8SYOVKOFYmqKlqB+ItlbZtja/TTF0odQ6/oKvfI9U+a6Ghn1jRNhAsSmQd7w18XozPW+o+f38P0gGSMNmOdEUZhPelAMIuOTK0M54mTAba99N4rqRzNybC+b6KsCsLkYjRqXlB/FJeOCL4VGUhV1Q52yYVN470/TC9Ru4U28g/iHOhD82OI6/8UmqlyZJQowJJZkgH/zAFGTYSW0tpIt/YZeFnJj8TLGWffWxKGzGXtFn6HvRZzLnJsSQECK8DJlljGpxjhr75+GaSS3EIzoVTaepC4ghOMl+dxoJg4C4oGodRjXZGSWWyzLysXdwsv3vTrvYlzX5/IDrB7L3HPhErdeo8R1qbABBfOVTaJ44xKPRCVHMq5EcoNpfYF11dwbXRWpy1Hvajm7zTcODGXav49cRuODw2Z7cNyw9kZkmobnF12iLDR0mOI654gL9vC2NJ037DL6yk80xq4fJiaA8xDuOUOI4qamKeZjR97eh4hPANlbR08ERN5Lr9RBivpFvAYbIRHOFHakVfgjJCFx6ASKZ1GQMP58EBtAq3g67WuDcMxeKb1m8chNlEvDTf45L/ea1MKhwl+uL899s0TMzj9TAoqYe3WvKCptZnbTc8I2CHoKYExDI/hrtw5bshVI1Wut9wiUs8tVArJsbV1VWnjft7HcxcS+ct+q58I3Rw68GYnBJXRS5mRBQGpZjpwBJL/y10rbYMW6tH3/dCsxVNBMO5MFFNra6FSgpMrX7jTUxAq+47gdbdb74r9+pQtcjrVheXEkRY4q0ixjAVt5kK10HIwQFpbU+Tbe+Qf8wW+hpYDegNPbX3GOKEyYTI78P5KoRzkhV7ZEM4WaW/t/asx3I3h5MP97WkE03e37+FmMvhwfwt34/Da9OYKzn4anb0a/AjlRKdxOfnUeZO1lMJZHjcKmZKynry3xVSJdEFwPhwdhW61Wg2FPx5qM49bWRt/mo7f/XbzbsAyTYROuqKXAx6sTKf1LnoYITNZCPv56Pxi+Gp4xrJMn6VQHXvCdNKbTQ7LoNP4/gMDZltAjr65uCqEVOyXB3LTtoUHXJ6HOSqX3PL6rSHMqEpyl/ftIYDV9T45GgnbHjGLcMENKHnAzeZJWPpsiqbh7a81Gd/uIlwK45M99BFpeZ1hkovC0l8ge/J7OzScwr8z6r4I1JbwFbO9p2dMECN85n5wOAo3s92Q6J0Jl5gUK9cRP5qFmm7Hvr66YWIVLevuO86z7zjtojO19m07bD7BBv7tjLV9kddcDx9p/WZ3PZx8V2BH1+E2I8UD8p9a0Ke0
sidebar_class_name: "post api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Filter verification</h1>

<MethodEndpoint method={"post"} path={"/v2/config/digital-wallet/openid/sdjwt/verification/{presentationId}/filter"}></MethodEndpoint>



Filters the holder's credentials against the verifier's presentation definition to find matches for the OpenID4VP presentation.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique identifier of a presentation session in the holder's wallet.","in":"path","name":"presentationId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Filtered verifications retrieved successfully

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><div><span className={"badge badge--info"}>oneOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>inputDescriptors</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the Input Descriptor from the Presentation Definition."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>matchedCredentials</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of credentials from the holder's wallet that match this Input Descriptor's requirements.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"credentialId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the matching credential in the holder's wallet."}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Credential type strings from the matching W3C Verifiable Credential."}}></SchemaItem><SchemaItem collapsible={false} name={"vct"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Verifiable Credential Type from the matching IETF SD-JWT VC."}}></SchemaItem><SchemaItem collapsible={false} name={"doctype"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Document type from the matching ISO mDoc credential."}}></SchemaItem><SchemaItem collapsible={false} name={"match"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Detailed match information showing which claims satisfy the Input Descriptor constraints."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></TabItem><TabItem label={"MOD2"} value={"1-item-properties"}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentials</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the Input Descriptor from the Presentation Definition."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>matchedCredentials</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of credentials from the holder's wallet that match this Input Descriptor's requirements.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"credentialId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the matching credential in the holder's wallet."}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Credential type strings from the matching W3C Verifiable Credential."}}></SchemaItem><SchemaItem collapsible={false} name={"vct"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Verifiable Credential Type from the matching IETF SD-JWT VC."}}></SchemaItem><SchemaItem collapsible={false} name={"doctype"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Document type from the matching ISO mDoc credential."}}></SchemaItem><SchemaItem collapsible={false} name={"match"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Detailed match information showing which claims satisfy the Input Descriptor constraints."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      