> ## Documentation Index
> Fetch the complete documentation index at: https://docs.argyle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Banking Verifications

> Order asset, income, and transaction reports from financial accounts.

Use a banking verification when the user will connect financial accounts and share the information required for an asset, income, or transaction report.

## Order a banking verification

* `voa` — Verification of Assets.
* `voai` — Verification of Assets and Income.
* `voi` — Verification of Income.
* `voe-transactions` — Verification of Employment based on transaction data.

Send the following body to [`POST /v2/verifications`](/api-reference/verifications/order-a-verification). Select the report type in `report.type`. The optional `report.configuration` object can define the history start date, income confidence threshold, and report custom fields.

```json theme={}
{
  "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
  "report": {
    "type": "voai",
    "configuration": {
      "from_date": "2024-01-01T00:00:00Z",
      "income_stream_confidence_minimum": 50,
      "report_custom_fields": [
        {
          "label": "loanID",
          "value": "12345",
          "shown": true
        }
      ]
    }
  }
}
```

## Choose a session type

After ordering the verification, create an embedded session or send an invite.

<Frame>
  <img src="https://mintcdn.com/argyle/EtHVUNI_SMseJQur/images/argyle-guides/api-ref/banking-reports/1-banking.png?fit=max&auto=format&n=EtHVUNI_SMseJQur&q=85&s=e3e171f6dad5485eae24082b36fa81a9" alt="A user connects financial accounts for a banking verification." width="2116" height="1239" data-path="images/argyle-guides/api-ref/banking-reports/1-banking.png" />
</Frame>

### Embedded banking

Create a session with [`POST /v2/sessions`](/api-reference/verifications/create-a-session), then pass the returned session `link` to the banking SDK as `connectURL`.

<Accordion title="Banking SDK example">
  ```html theme={}
  <div id="connect-container"></div>

  <script type="module">
    import { Connect } from 'https://cdn.openbanking.mastercard.com/js/connect-web-sdk@2.2.0/mastercard-connect-esm.min.js'

    const connectURL = 'SESSION_LINK'
    const eventHandlers = {
      onDone: event => console.log('Connection successful', event),
      onCancel: event => console.log('User cancelled', event),
      onError: event => console.log('Banking flow error', event)
    }

    Connect.launch(connectURL, eventHandlers, {
      popup: false,
      selector: '#connect-container'
    })
  </script>
  ```
</Accordion>

Use SDK callbacks for immediate frontend handling. Subscribe to the [`verifications.updated`](/api-reference/verifications-webhooks/updated) webhook for backend lifecycle tracking.

For SDK installation and configuration options, see the <a href="https://developer.mastercard.com/open-finance-us/documentation/connect/integrating/sdk/web-sdk/sdk/" target="_blank">banking SDK documentation</a>.

### Email or SMS invite

Create an invite session with `type = invite`, the user ID, and an email address, phone number, or both. The user must have an active banking verification. The invitation opens a hosted connection flow, so no frontend SDK initialization is required.

<Note>
  Banking invites and other hosted or no-SDK banking paths must be enabled by Argyle before use. Contact your Argyle Customer Success Manager before using one of these paths.
</Note>

See the [Quickstart invite example](/verifications/quickstart#invites).

## Result

Wait for the [`verifications.updated`](/api-reference/verifications-webhooks/updated) webhook. When the verification reaches `completed` or `completed_with_errors`, retrieve the report from `report.file_url` or `report.json_url`.

* See [Verification Statuses](/verifications/verification-statuses).
* Review the [banking report examples](/verifications/reports-and-source-documents#banking-voa).
* Use the [banking test profiles](/verifications/testing#banking-test-profiles).
