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

# Instant Account Verification

> Get account and routing numbers for demand deposit accounts

<Note>
  **NEW TO MX CONNECTIVITY?**

  See the [Connectivity Overview](/products/connectivity/overview) to learn about our Connectivity products and integration options.
</Note>

<CardGroup cols={2}>
  <Card title="Integrate using the Connect Widget" href="/products/connectivity/overview/connectivity-integration-guides/connect-widget-flow" cta="Go to Guide">
    Use the Connect Widget and Platform API to let end users connect to their accounts.
  </Card>

  <Card title="Integrate using the Platform API" href="/products/connectivity/overview/connectivity-integration-guides/api-only-flow" cta="Go to Guide">
    Use the Platform API to power a non-MX UI connection experience.
  </Card>
</CardGroup>

With Instant Account Verification, you can connect to an end user's financial institution and retrieve account and routing numbers for their demand deposit accounts. You can use this data for any number of solutions such as moving money or account opening. In many cases, Instant Account Verification must be used in conjunction with Account Owner Identification and Balance Checks to prevent problems like ACH returns.

<img src="https://mintcdn.com/mx-7a01b258/OOfo2VTBgMqAqqgz/images/connectivity/instant-account-verification/iav_landing_diagram.png?fit=max&auto=format&n=OOfo2VTBgMqAqqgz&q=85&s=abc67ea3b4fe9bd4d0d76f27e18b7649" alt="Diagram flow of the steps to get account and routing numbers" width="1510" height="374" data-path="images/connectivity/instant-account-verification/iav_landing_diagram.png" />

## Tokenized Account Numbers​

Tokenized Account Numbers (TANs) are substitute account numbers used for secure ACH money movement. When users connect accounts via OAuth with supported institutions, the institution provides a TAN instead of the actual account number.

This allows third-party applications to interact with an account, such as facilitating ACH money movement, without accessing the user's actual account number. Because each application receives a unique TAN for the same bank account, users or their financial institutions can manage access on a per-application basis without exposing the underlying account details.

**Understanding account objects:**

MX uses two objects that display account numbers differently:

| Feature               | `accounts` object                                                                                         | `account_numbers` object                                                            |
| --------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| Available through     | List Accounts, List Accounts by Member, Read Account, and Read Account by Member                          | List Account Numbers by Member and Read Account Numbers by Account                  |
| Set by                | Create Member or through the Connect Widget when the user connects to an institution                      | Verify Member or Create Member                                                      |
| Account number format | `feed_account_number` field contains a masked account number (usually last 4 digits) from the institution | Contains either the full account number or a TAN (for supported institutions)       |
| Last 4 digits         | Included in masked format                                                                                 | Does **not** include a field with the last 4 digits                                 |
| Data source           | The `*_set_by` field shows the data source (typically `FEED` unless you send a user-specified value)      | N/A                                                                                 |
| Can be null           | Yes, if the institution doesn't provide it                                                                | No                                                                                  |
| TAN matching          | N/A                                                                                                       | When a TAN is returned, it won't match the masked digits from the `accounts` object |

**Key properties:**

* The TAN and routing number are valid for ACH transfers **only when used together**. They won't work for wire transfers, and third-party verification services may not recognize them.
* Using a TAN with a different routing number—even from the same institution—will cause the transfer to fail.
* You cannot reliably match TANs to your existing account records using the last 4 digits. The masked account number from the `accounts` object won't necessarily match the corresponding TAN.
* OAuth connections: Call `/users/{user_guid}/members/{member_guid}/account_numbers` to retrieve the TAN in the `account_number` field.
* Non-OAuth connections: Return traditional (non-tokenized) account and routing numbers.
* The standard `accounts` object endpoints always return masked account numbers, regardless of connection type.

<Warning>
  Do not display the TAN in your UI; users won't recognize it. Show the masked account number from the `/users/{user_identifier}/accounts` endpoint instead.
</Warning>

**Institution-specific behavior:**

| Institution | TAN Behavior                                                                                                                                                    |
| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Chase       | TAN becomes invalid if MX revokes consent, the user revokes consent directly, or Chase flags the account for fraud.                                             |
| U.S. Bank   | TAN remains active for money movement even after the MX connection is deleted. See the [U.S. Bank Developer Portal](https://developer.usbank.com/) for details. |

## Quick Links

<CardGroup>
  <Card title="API Reference" href="/api-reference/platform-api/reference/mx-platform-api" cta="Go to Reference">
    Learn about the full features of the Platform API.
  </Card>

  <Card title="Connect Widget" href="/connect" cta="Go to Docs">
    Learn about the Connect Widget.
  </Card>

  <Card title="Demo App" href="https://github.com/mxenabled/mx-quickconnect" cta="Go to GitHub">
    View the demo app on GitHub.
  </Card>
</CardGroup>

## Account Number Sample Data

This sample response shows the data you can expect to get for account owners.

```json theme={null}
{
  "account_numbers": [
    {
      "account_guid": "ACT-82a93692-f756-534f-9b2e-ad10a0f38462",
      "account_number": "10001",
      "institution_number": null,
      "member_guid": "MBR-3bdc7d6b-efd4-1497-a0af-b23501cf9bd0",
      "routing_number": "091000019",
      "passed_validation": true,
      "transit_number": null,
      "user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 25,
    "total_entries": 1,
    "total_pages": 1
  }
}
```

## Related Products

<CardGroup>
  <Card title="Account Owner Identification" href="/products/connectivity/account-owner-identification" cta="Read Documentation">
    Get account owner information like name, address, and email.
  </Card>

  <Card title="Account Aggregation" href="/products/connectivity/account-aggregation" cta="Read Documentation">
    Get account and transaction data.
  </Card>

  <Card title="Balance Checks" href="/products/connectivity/balance-checks" cta="Read Documentation">
    Prevent returns and other costly errors.
  </Card>
</CardGroup>
