Skip to main content

Connect Widget Overview

The Connect Widget lets end users search for and connect to their accounts. It collects users' credentials, prompts for multifactor authentication, and resolves connection errors between end users and their financial institutions.

You'll embed the widget into your website or mobile app. We offer a React Native SDK for mobile implementations and a Web SDK for desktop implementations.

image of the Connect Widget

Retrievable Data

The following are example responses for each product.

Account and transaction data (using our Account Aggregation product)

See Account Aggregation for more info.

This sample response shows the data you can expect to get for financial accounts.


_59
{
_59
"accounts": [
_59
{
_59
"account_number": "5366",
_59
"apr": 1.0,
_59
"apy": 1.0,
_59
"available_balance": 1000.0,
_59
"available_credit": 1000.0,
_59
"balance": 1000.0,
_59
"cash_balance": 1000.0,
_59
"cash_surrender_value": 1000.0,
_59
"created_at": "2016-10-13T17:57:37.000Z",
_59
"credit_limit": 100.0,
_59
"currency_code": "USD",
_59
"day_payment_is_due": 20,
_59
"death_benefit": 1000,
_59
"guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
_59
"holdings_value": 1000.0,
_59
"id": "1040434698",
_59
"imported_at": "2015-10-13T17:57:37.000Z",
_59
"institution_code": "chase",
_59
"insured_name": "Frodo Baggins",
_59
"interest_rate": 1.0,
_59
"is_closed": false,
_59
"is_hidden": false,
_59
"last_payment": 100.0,
_59
"last_payment_at": "2015-10-13T17:57:37.000Z",
_59
"loan_amount": 1000.0,
_59
"matures_on": "2015-10-13T17:57:37.000Z",
_59
"member_guid": "MBR-3bdc7d6b-efd4-1497-a0af-b23501cf9bd0",
_59
"member_id": "member-9876",
_59
"member_is_managed_by_user": false,
_59
"metadata": "some metadata",
_59
"minimum_balance": 100.0,
_59
"minimum_payment": 10.0,
_59
"name": "Test account 2",
_59
"nickname": "My Checking",
_59
"original_balance": 10.0,
_59
"pay_out_amount": 10.0,
_59
"payment_due_at": "2015-10-13T17:57:37.000Z",
_59
"payoff_balance": 10.0,
_59
"premium_amount": 1.0,
_59
"routing_number": "68899990000000",
_59
"started_on": "2015-10-13T17:57:37.000Z",
_59
"subtype": "NONE",
_59
"total_account_value": 1.0,
_59
"type": "SAVINGS",
_59
"updated_at": "2016-10-13T18:08:00.000Z",
_59
"user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c",
_59
"user_id": "partner-2345"
_59
}
_59
],
_59
"pagination": {
_59
"current_page": 1,
_59
"per_page": 25,
_59
"total_entries": 1,
_59
"total_pages": 1
_59
}
_59
}

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


_56
{
_56
"transactions": [
_56
{
_56
"account_guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
_56
"account_id": "account123",
_56
"amount": 61.11,
_56
"category": "Groceries",
_56
"category_guid": "CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8",
_56
"check_number_string": "6812",
_56
"created_at": "2016-10-06T09:43:42.000Z",
_56
"currency_code": "USD",
_56
"date": "2013-09-23T00:00:00.000Z",
_56
"description": "Whole foods",
_56
"extended_transaction_type": "partner_transaction_type",
_56
"guid": "TRN-265abee9-889b-af6a-c69b-25157db2bdd9",
_56
"id": "transaction-265abee9-889b-af6a-c69b-25157db2bdd9",
_56
"is_bill_pay": false,
_56
"is_direct_deposit": false,
_56
"is_expense": true,
_56
"is_fee": false,
_56
"is_income": false,
_56
"is_international": false,
_56
"is_overdraft_fee": false,
_56
"is_payroll_advance": false,
_56
"is_recurring": false,
_56
"is_subscription": false,
_56
"latitude": -43.2075,
_56
"localized_description": "This is a localized_description",
_56
"localized_memo": "This is a localized_memo",
_56
"longitude": 139.691706,
_56
"member_guid": "MBR-3bdc7d6b-efd4-1497-a0af-b23501cf9bd0",
_56
"member_is_managed_by_user": false,
_56
"memo": "This is a memo",
_56
"merchant_category_code": 5411,
_56
"merchant_guid": "MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b",
_56
"merchant_location_guid": "MCL-00024e59-18b5-4d79-b879-2a7896726fea",
_56
"metadata": "some metadata",
_56
"original_description": "WHOLEFDS TSQ 102",
_56
"posted_at": "2016-10-07T06:00:00.000Z",
_56
"status": "POSTED",
_56
"top_level_category": "Food & Dining",
_56
"transacted_at": "2016-10-06T13:00:00.000Z",
_56
"type": "DEBIT",
_56
"updated_at": "2016-10-07T05:49:12.000Z",
_56
"user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c",
_56
"user_id": "partner-2345"
_56
},
_56
// •••
_56
],
_56
"pagination": {
_56
"current_page": 1,
_56
"per_page": 10,
_56
"total_entries": 243,
_56
"total_pages": 25
_56
}
_56
}

Account and routing numbers (using our Instant Account Verification product)

See Instant Account Verification for more info.

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


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

Account owner data (using our Account Owner Identification product)

See Account Owner Identification for more info.

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


_26
{
_26
"account_owners": [
_26
{
_26
"account_guid": "ACT-82a93692-f756-534f-9b2e-ad10a0f38462",
_26
"address": "123 This Way",
_26
"city": "Middlesex",
_26
"country": "US",
_26
"email": "donnie@darko.co",
_26
"first_name": "Donnie",
_26
"guid": "ACO-63dc7714-6fc0-4aa2-a069-c06cdccd1af9",
_26
"last_name": "Darko",
_26
"member_guid": "MBR-3bdc7d6b-efd4-1497-a0af-b23501cf9bd0",
_26
"owner_name": "Donnie Darko",
_26
"phone": "555-555-5555",
_26
"postal_code": "00000-0000",
_26
"state": "VA",
_26
"user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
_26
}
_26
],
_26
"pagination": {
_26
"current_page": 1,
_26
"per_page": 25,
_26
"total_entries": 1,
_26
"total_pages": 1
_26
}
_26
}

Transaction data

You can configure the widget to return transactions when its mode is set to verification.

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


_56
{
_56
"transactions": [
_56
{
_56
"account_guid": "ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1",
_56
"account_id": "account123",
_56
"amount": 61.11,
_56
"category": "Groceries",
_56
"category_guid": "CAT-9588eaad-90a4-bb5c-66c8-1812503d0db8",
_56
"check_number_string": "6812",
_56
"created_at": "2016-10-06T09:43:42.000Z",
_56
"currency_code": "USD",
_56
"date": "2013-09-23T00:00:00.000Z",
_56
"description": "Whole foods",
_56
"extended_transaction_type": "partner_transaction_type",
_56
"guid": "TRN-265abee9-889b-af6a-c69b-25157db2bdd9",
_56
"id": "transaction-265abee9-889b-af6a-c69b-25157db2bdd9",
_56
"is_bill_pay": false,
_56
"is_direct_deposit": false,
_56
"is_expense": true,
_56
"is_fee": false,
_56
"is_income": false,
_56
"is_international": false,
_56
"is_overdraft_fee": false,
_56
"is_payroll_advance": false,
_56
"is_recurring": false,
_56
"is_subscription": false,
_56
"latitude": -43.2075,
_56
"localized_description": "This is a localized_description",
_56
"localized_memo": "This is a localized_memo",
_56
"longitude": 139.691706,
_56
"member_guid": "MBR-3bdc7d6b-efd4-1497-a0af-b23501cf9bd0",
_56
"member_is_managed_by_user": false,
_56
"memo": "This is a memo",
_56
"merchant_category_code": 5411,
_56
"merchant_guid": "MCH-7ed79542-884d-2b1b-dd74-501c5cc9d25b",
_56
"merchant_location_guid": "MCL-00024e59-18b5-4d79-b879-2a7896726fea",
_56
"metadata": "some metadata",
_56
"original_description": "WHOLEFDS TSQ 102",
_56
"posted_at": "2016-10-07T06:00:00.000Z",
_56
"status": "POSTED",
_56
"top_level_category": "Food & Dining",
_56
"transacted_at": "2016-10-06T13:00:00.000Z",
_56
"type": "DEBIT",
_56
"updated_at": "2016-10-07T05:49:12.000Z",
_56
"user_guid": "USR-11141024-90b3-1bce-cac9-c06ced52ab4c",
_56
"user_id": "partner-2345"
_56
},
_56
// •••
_56
],
_56
"pagination": {
_56
"current_page": 1,
_56
"per_page": 10,
_56
"total_entries": 243,
_56
"total_pages": 25
_56
}
_56
}

Connection Errors

When the widget is loaded, it automatically chooses the best course of action for resolving a connection error between a user and their financial institution.

For more info, see Member Connection Statuses.

Browser Support

MX supports HTML5-compliant browsers that support TLSv1.2 or higher. Older versions of supported browsers aren't explicitly tested. MX will review issues as reported, but upgrading may be required if compatibility can't be ensured.

Supported Desktop Browsers

MX tests its web applications on the current version and previous version of the following browsers:

BrowserPCMac
ChromeYesYes
Microsoft EdgeYesN/A
FirefoxYesYes
SafariNoYes
Blocked Browsers

MX may actively block some browsers from displaying our products when the results would provide an extremely poor user experience. Browsers in Compatibility or Quirks mode may not function and can be blocked if performance is degraded.

Supported Mobile Browsers

MX tests its web applications on the current version and previous version of iOS and Android, using the following browsers:

BrowseriOSAndroid
ChromeNoYes
SafariYesN/A
WKWebViewYesN/A
Android WebViewN/AYes
note

UIWebView is no longer supported. Apple recommends using WKWebView.

Language Support

To change the display language from English, set the Accept-Language header in the Request Widget URL endpoint to one of these supported languages:

  • en-CA
  • es
  • fr

Widget Dimensions

The Connect Widget uses a responsive design. Layout and styles may adjust based on screen size, and certain elements may become hidden/visible at different widths.

The minimum dimensions supported for mobile and desktop platforms are:

  • Height: 550px
  • Width: 320px

Design changes may occur at the following width breakpoints, which are based on common device resolutions:

  • Small: 320px–767px
  • Medium: 768px–1199px
  • Large: 1200px and higher
note

Breakpoints and layout behavior are subject to change.

OAuth Support

You must register for OAuth before you can use it with real institutions.

For institutions using an OAuth flow, the Connect Widget will redirect to that institution's page or mobile app, where the end user can authorize the accounts they want to connect.

See Connect Widget OAuth Workflows.

Handling Session Timeouts

When integrating our Connect Widget, consider the session timeout built into the widget and the session timeout built into your website or mobile app.

The widget automatically times out after 15 minutes of inactivity. Reach out to your account representative to customize this duration.

Thirty seconds before the timeout, a No recent activity screen appears and prompts the user to select Continue to avoid timing out. If no user activity is detected within those 30 seconds, the widget will timeout and display a Session expired screen.

Member Use Cases

note

Work with MX to enable this functionality.

You can opt in to setting the use_cases field in applicable requests so each member has an associated use_case. This ensures only the data associated with the use case for that member (PFM or Money Movement) is returned. It also lets you filter a user’s data through a single use_case, even if data relating to a different use_case is in our system.

If you’ve implemented the Connect Widget and have worked with MX to enable member use cases, you must include the use_cases field when requesting your widget URL to ensure:

  • Each member is associated with a specific use case.
  • Our Personal Finance Management and Financial Insights products reflect data only for members with the PFM use case.
  • Members with "use_cases": ["MONEY_MOVEMENT"] do not aggregate transaction data.

In the Connect Widget, this change impacts the flow of new and existing members.

For more info about other changes relating to creating members, updating members, and available query parameters for use cases, see the Platform API docs.

New Members

When you request a widget URL with a widget_type of connect_widget or connections_widget, set the use_cases field. The use cases provided in this request will be saved to any member created inside of the widget.

For example, if you:

  1. Set use_cases: ["PFM"] in the widget URL request.
  2. Load the Connect Widget using the URL returned from the request.
  3. Successfully create a member.
  4. Read that member, which will have a use_case of PFM as set in step 1.

Existing Members

The widget won’t remove use cases from an existing member, it will only add new ones.

For example, let’s assume a member already exists that has use_cases: ["MONEY_MOVEMENT"]:

  1. You set use_cases: ["PFM"] in the widget URL request.
  2. The end user finds their institution and enters their same credentials as before.
  3. The widget will update the existing member so to have use_cases: [“MONEY_MOVEMENT”, "PFM"].