How to Handle Events
The way you’ll handle widget events depends on your integration method.- Web Widget SDK
- React Native SDK
- JavaScript Loader
- WebView
If you’re using the Web Widget SDK, you’ll listen for widget events by passing a
callbacks.onEvent handler to the ConnectWidget constructor. The handler receives an event object with type and metadata fields.All payloads include the user_guid (string) and session_guid (string) fields.The following is an example integration that lets you listen to the events we send.Notable Widget Events
The section details important widget events and what to do when you receive them.| Widget Event | What To Do |
|---|---|
| Back to Search | If you disabled the search institution step by setting disable_institution_search: true, listen to this event to know when your user will be navigated to the search step so you can close the widget. |
| Connect Loaded | Track the start of the user’s journey. You can also use this if you intend on hiding the widget from the user until you know it’s loaded. |
| Institution Search and Institution Selected | Use these events to track trends in institutions your users want to connect to. If you identify a trend, you can customize the top 10 institutions in the default institutions list. You could also create UI that calls out and loads your users to connect to that institution directly. |
| Member Connected, Primary Action Selected | If you don’t want the end user to return to connect more accounts after they connected to one, close the widget. |
| OAuth Requested | This event only applies if you embedded the widget inside a mobile app using a WebView, or using an iFrame inside a WebView. Send the user to the OAuth provider’s site, opening the URL (contained in the event’s metadata) in the device’s default browser. |
| Widget Ping | Used to keep the widget session alive. See Handling Session Timeouts for more info. |
Back to Search
Sent when the user selects a button that navigates to thesearch step, as defined in the Step Change event. Used in relation with disable_institution_search widget configuration option.
Recommended use: If you disabled the search institution step by setting disable_institution_search: true, listen to this event to know when your user will be navigated to the search step so you can close the widget.
Fields:
user_guid(string)session_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Connect Loaded
Sent when the Connect Widget loads. It’s often useful to know what “step” or view the user started on. Recommended use: Track the start of the user’s journey. You can also use this if you intend on hiding the widget from the user until you know it’s loaded. Fields:user_guid(string)session_guid(string)initial_step(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
initial_step can be:
| Value | Definition |
|---|---|
connected | The initial step when configured with current_member_guid and the member is in a connected state. |
disclosure | The initial step when configured to display the disclosure screen that shows the MX privacy policy first. This is optional and is turned off by default. |
enterCreds | The initial step when configured with current_institution_guid or current_member_guid, and updated_credentials set to true. |
loginError | The initial step when configured with current_member_guid and the member is in an error state. |
mfa | The initial step when configured with current_member_guid and the member has encountered multi-factor authentication. |
search | The default initial step. |
verifyExistingMember | The initial step when configured with data_request.products set to account_verification. |
Enter Credentials
Sent when a user submits credentials for a given institution for the first time. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)institution(object)code(string)guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Initial Data Ready
NOTEThis event only applies if you’re using Platform API version 20250224.
Institution Search
Sent when the end user searches for an institution. This is useful in determining what users are searching for. Recommended use: Track this to find trends in institutions your users want to connect to. If you identify a trend, you can customize the top 10 institutions in the default institutions list. You could also create UI that calls out the FI directly and loads your users to connect to that institution directly. Fields:user_guid(string)session_guid(string)query(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Institution Selected
Sent when an end user selects an institution from the institution list. Recommended use: Similar to the Institution Search event. Track this to find trends in institutions your users want to connect to. If you identify a trend, you can customize the top 10 institutions in the default institutions list. You could also create UI that calls out the FI directly and loads your users to connect to that institution directly. Fields:user_guid(string)session_guid(string)code(string)guid(string)name(string)url(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Invalid Data
Sent when there are no valid demand deposit (DDA) accounts on the member. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:code(string)member_guid(string)session_guid(string)user_guid(string)
"mode": "verification"- The member receives an error as one of the codes below.
code can be:
| Value | Definition |
|---|---|
1000 | No demand deposit (DDA) accounts for verification job. |
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Invalid Data, Primary Action Selected
Sent when there are no valid demand deposit (DDA) accounts on the member and the end user selects Try again on the associated error screen. When the end user selects Try again, the widget will send them to the institution search screen. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:member_guid(string)session_guid(string)user_guid(string)
data_request.productsincludesaccount_verification.disable_institution_searchis set totrue.- The member doesn’t have any valid DDA accounts.
- The user selects Try again on the error screen.
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Connected
Sent when a member has successfully connected and the data you requested in your Widget URL request has finished aggregating. Recommended use: Retrieve the data you requested in your Widget URL request, which has finished aggregating. If you don’t want the user to acknowledge they connected to a member in our UI, you could close the widget after receiving this event and present your own success screen. Fields:user_guid(string)session_guid(string)member_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Connected, Primary Action Selected
Sent when the user selects the primary button on the connected step. Recommended use: If you don’t want the end user to return to connect more accounts, close the widget. Fields:user_guid(string)session_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Connection Error
Sent when a member has encountered an error state. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)member(object)guid(string)connection_status(number)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Create Error
Sent when a member failed to get created when credentials were entered. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)institution_guid(string)institution_code(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Deleted
Sent when a member has been deleted in the widget. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)member_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Member Status Update
Sent when a member’s connection status has changed while connecting. Recommended use: Useful for determining the current connection status of the member. If the status isCONNECTED, you can start polling to ensure that data is ready for retrieval. If the status is related to an error, you can begin a resolution flow depending on the error.
Fields:
user_guid(string)session_guid(string)member_guid(string)connection_status(number)
INFOA
connection_status of 6 (CONNECTED) doesn’t mean data is available yet. To ensure that data is available, refer to the member connected event instead.- Web Widget SDK
- React Native SDK
- JavaScript Loader
Microdeposit Account Details Submitted
Sent when the end user submits account details for a given institution for the first time and amicrodeposit object is created on the MX system.
For guidance, see Microdeposits Workflow in the Connect Widget.
Fields:
user_guid(string)session_guid(string)microdeposit_guid(string)
Microdeposit Blocked Routing Number
Sent when the end user submits a blocked routing number on the Enter Details step. For guidance, see Microdeposits Workflow in the Connect Widget. Fields:user_guid(string)session_guid(string)routing_number(string)reason(string). Possible values are:BLOCKED: MX has blocked this routing number. Microdeposit verification can’t proceed.CLIENT_BLOCKED: An MX client has requested that this routing number be blocked. Microdeposit verification can’t proceed.IAV_PREFERRED: The institution associated with the routing number has an Instant Account Verification (IAV) connection that is preferred over microdeposit verification. The IAV flow will be suggested to the end user.
Microdeposit Come Back, Primary Action Selected
Sent when the end user selects the primary button on the Come Back step. This step is visible while the microdeposit is in theREQUESTED status.
For guidance, see Microdeposits Workflow in the Connect Widget.
Fields:
user_guid(string)session_guid(string)microdeposit_guid(string)
Microdeposit Error, Primary Action Selected
Sent when the end user selects the primary button on the Error step. This page is visible after entering deposits and getting aPREVENTED status.
For guidance, see Microdeposits Workflow in the Connect Widget.
Fields:
user_guid(string)session_guid(string)microdeposit_guid(string)microdeposit_status(string)
Microdeposit Flow Loaded
Sent when the microdeposit flow is loaded in the Connect Widget. For guidance, see Microdeposits Workflow in the Connect Widget. Fields:user_guid(string)session_guid(string)initial_step(string)
Microdeposit Verified
Sent when an end user successfully verifies the microdeposit amounts. For guidance, see Microdeposits Workflow in the Connect Widget. Fields:user_guid(string)session_guid(string)microdeposit_guid(string)
Microdeposit Verified, Primary Action Selected
Sent when the end user selects the primary button on Verified step. This step is visible after entering the correct deposit amounts. For guidance, see Microdeposits Workflow in the Connect Widget. Fields:user_guid(string)session_guid(string)
OAuth Error
Sent when the user lands on the OAuth error page. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)member_guid(optional) (string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
OAuth Requested
NOTEThis event only applies if you embedded the widget inside a mobile app using a WebView, or using an iFrame inside a WebView.
mx://connect/oauthRequested?metadata={...JSON encoded payload ...}), then to the provider.
Recommended use: Only use if you embedded the widget inside a mobile app using a WebView, or using an iFrame inside a WebView.
Fields:
user_guid(string)session_guid(string)url(string)member_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Step Change
Sent when the end user changes from one “step” to another. Recommended use: Intended for analytics tracking purposes only, and not for controlling or altering the user’s experience. Fields:user_guid(string)session_guid(string)previous(string)current(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
previous and current can be:
| Current/Previous Value | Definition |
|---|---|
addManualAccount | Where the user creates manual accounts. Manual accounts are not currently offered in the Platform API; partners should not expect to see this value. |
connected | Where the user lands when they have successfully connected. |
connecting | Where the user goes while the connection is being attempted. |
disclosure | Where the user reads the MX privacy policy and agrees by selecting Continue. This is optional and is turned off by default. |
enterCreds | Where the user enters credentials for a particular institution. |
error | Where the user lands when the member create was unsuccessful due to user or system error. |
existingMember | Where the user lands if they are trying to add a member they have previously added. |
loginError | Where the user lands when they have unsuccessfully connected due to user or system error. |
mfa | Where the user enters in MFA responses. |
oauth | Where the user goes instead of enter credentials if the institution and client supports oauth. |
search | Where the user searches for institutions. |
timeOut | When the user has been connecting for more than 60 seconds without any updates to the member, if the member’s connection_status isn’t PENDING. |
verifyExistingMember | Where the user can verify existing members when data_request.products includes account_verification. |
Submit MFA
Sent when a user submits an MFA answer. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)member_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Update Credentials
Sent when a user submits credentials while trying to update their existing credentials. Recommended use: Use as needed for your implementation, or for informational and tracking purposes. Fields:user_guid(string)session_guid(string)member_guid(string)institution(object)code(string)guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Widget Load
Sent when the app is loaded.INFOThis event applies to all MX widgets. For the Connect Widget specifically, there is a separate event—Connect Loaded—that’s sent when the widget loads and also includes the initial view the user started on. For more details, see Connect Loaded.
type (string) and mx (boolean).
- Web Widget SDK
- React Native SDK
- JavaScript Loader
Widget Ping
Used to keep the widget session alive. See Handling Session Timeouts for more info. Fields:user_guid(string)session_guid(string)
- Web Widget SDK
- React Native SDK
- JavaScript Loader

