# Instant Onboarding User Events source: https://developer.mastercard.com/open-finance-us/documentation/usecases/onboarding/instant-onboarding-events/index.md User events provide full visibility into the customer's actions while they're interacting with the Instant Onboarding application (app). These events are compatible with analytics tools, allowing you to build web analytics dashboards to evaluate conversions, success rates, and error rates. ## AddAccounts {#addaccounts} | Name | Application Support | Description | |-------------|------------------------------------------------------------|-----------------------------------------------------| | AddAccounts | Data Connect Full / Data Connect Lite / Instant Onboarding | Sent when a customer attempt to add their accounts. | This event is sent two times. The first event is sent when the customer attempts to add their bank accounts. The return includes: * A null value for the `success`, `accounts`, and `errorCode` fields. * The second event sent provides the details about the attempt. The customer successfully added their accounts if: * `accounts` = populated * `success` = true * `errorCode` = null The customer failed to add their accounts if: * `accounts` = null * `success` = false * `errorCode` = populated Note: If the first event is received, but the second event never arrives, then the customer ended the attempt to add accounts before Data Connect could successfully add the accounts. **Example response (first event):** ```JSON { "action": "AddAccounts", "institutionId": 123, "institutionLoginId": null, "accounts": null, "accountIds": [], "success": null, "errorCode": null } ``` **Example response (second event success):** ```JSON { "action": "AddAccounts", "institutionId": 123, "institutionLoginId": 456, "accounts": 5, "accountIds": [ "7079115306", "7079115307", "7079115308", "7079115309", "7079115310" ], "success": true, "errorCode": null } ``` **Example response (second event fail):** ```JSON { "action": "AddAccounts", "institutionId": 123, "institutionLoginId": null, "accounts": null, "accountIds": [], "success": false, "errorCode": 500 } ``` ## Cancel {#cancel} | Name | Application Support | Description | |--------|---------------------|---------------------------------------------------------------------------------| | Cancel | Instant Onboarding | Sent when the customer exits the Instant Onboarding flow without completing it. | Check the code field to determine the reason: The customer manually closed the flow if: * `code` = 100 * `reason` = "exit"\` The session timed out due to inactivity if: * `code` = 1440 * `reason` = "timeout" Note: Use this to track drop-off rates. A high rate of `code: 1440` may indicate the session duration is too short for your user base. **Example response (user exited):** ```json { "code": 100, "reason": "exit" } ``` Example response (session timeout): ```json { "code": 1440, "reason": "timeout" } ``` ## DisplayAlert {#displayalert} | Name | Application Support | Description | |--------------|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| | DisplayAlert | Data Connect Full / Data Connect Lite / Data Connect Fix / Instant Onboarding | Sent when a customer receives an alert within a Data Connect session. The return includes: * The error code * The error code message | Note: These fields are only sent if an alert occurs for an FI: * `institutionId` * `institutionName` **Example response:** ```JSON { "action": "DisplayAlert", "alertType": "ERROR", "title": "Error", "message": "An error occurred.", "errorCode": 500, "data": { "details": "Invalid input" } } ``` ## End {#end} | Name | Application Support | Description | |------|---------------------------------------------------------|---------------------------------------------------------------------| | End | Data Connect Full, Data Connect Fix, Instant Onboarding | Sent when the Instant Onboarding session terminates for any reason. | This event can be sent multiple times during the session. It is sent when an end user finishes adding accounts, and when the session ends. When the field `type` is `instant‑onboard`, the session has officially concluded. The session completed successfully if: * `code` = 200 * `reason` = "complete" * Event arrives in `onDone` callback The session was cancelled by the user if: * `code` = 100 * `reason` = "exit" * Event arrives in `onCancel` callback The session timed out if: * `code` = 1440 * `reason` = "timeout" * Event arrives in `onCancel` callback The session ended in error if: * `code` = 500 * `reason` = "error" * Event arrives in `onError` callback Note: Use this event to determine when to clean up your session state. The `ttl` field indicates when the session data will expire. ##### Fields: {#fields} | Field | Type | Description | |------------|--------|------------------------------------------------------------------| | action | string | Always `End` | | reason | string | `complete`, `exit`, `timeout`, or `error` | | code | number | `200` (success), `100` (cancel), `1440` (timeout), `500` (error) | | customerId | string | The Mastercard Open Banking customer ID | | partnerId | string | Your partner ID | | timestamp | string | Unix timestamp (ms) when the session ended | | ttl | string | Unix timestamp (ms) when session data expires | | experience | string | Experience configuration ID | | sessionId | string | Unique session identifier | | type | string | Always `instant-onboard` | | product | string | Product type (for example, `aggregation`) | **Example response (success):** ```json { "action": "End", "reason": "complete", "customerId": "7003898270", "partnerId": "2445584362351", "timestamp": "1755797900000", "ttl": "1755808700000", "experience": "550e8400-e29b-41d4-a716-446655440000", "sessionId": "6e5bb1bb17cd185926799d167a66dc6bf299c726c907ca1056416861cd1e8962", "code": 200, "type": "instant-onboard", "product": "aggregation" } ``` ## Error {#error} | Name | Application Support | Description | |-------|---------------------|--------------------------------------------------------------------------| | Error | Instant Onboarding | Sent when the Instant Onboarding flow encounters an unrecoverable error. | This event indicates the session cannot continue. The customer was shown an error screen. The flow is terminated. **Example response:** ```json { "code": 500, "reason": "error" } ``` ## FlowFailed {#flowfailed} | Name | Application Support | Description | |------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------| | FlowFailed | Instant Onboarding | Sent when an upstream service or remote dependency reports a failure that prevents successful completion of the Instant Onboarding flow. | This event provides information about failures originating from a remote service or dependency. Note: A `FlowFailed` event may be followed by a `DisplayAlert`, `Error`, or `End` event depending on how the failure is handled within the customer experience. ##### Fields {#fields} | Field | Type | Description | |--------------|--------|------------------------------------------| | action | string | Always `FlowFailed` | | sourceRemote | string | The remote service reporting the failure | | error | object | Details about the reported failure | **Example response:** ```json { "action": "FlowFailed", "sourceRemote": "identity-service", "error": { "code": "500", "message": "Unexpected service error" } } ``` ## Initialize {#initialize} | Name | Application Support | Description | |------------|-----------------------------------------------------------|-----------------------------------------------------------------------| | Initialize | Data Connect Full / Data Connect Fix / Instant Onboarding | Sent when a user starts a Data Connect or Instant Onboarding session. | **Example response:** ```JSON { "action": "Initialize", "customerId": 12345, "partnerId": 67890, "timestamp": 1717132800000, "ttl": 1717140000000, "type": "full", "experience": "550e8400-e29b-41d4-a716-446655440000", "secondaryDataInput": "Last4SSN", "sessionId": "7035b169d6f13306a240e7291bf7eab1a28010af26b57249ca1ccf5c49a30ce4", "product": "aggregation", "borrowerType": "primary" } ``` ## InstantOnboardingBackClicked {#instantonboardingbackclicked} | Name | Application Support | Description | |------------------------------|---------------------|-----------------------------------------------------------------------------------------------------------------------| | InstantOnboardingBackClicked | Instant Onboarding | Sent when the customer selects the host application's back button while participating in the Instant Onboarding flow. | This event can be used to understand customer navigation patterns and identify screens where customers frequently navigate backwards. **Example response:** ```json { "action": "InstantOnboardingBackClicked" } ``` ## InstantOnboardingCloseClicked {#instantonboardingcloseclicked} | Name | Application Support | Description | |-------------------------------|---------------------|------------------------------------------------------------------------------------------------------------------------| | InstantOnboardingCloseClicked | Instant Onboarding | Sent when the customer selects the host application's close button while participating in the Instant Onboarding flow. | This event indicates the customer initiated an attempt to leave the experience before completion. Note: The flow may continue if the customer dismisses any confirmation prompt that follows. Use the End event to determine whether the session actually terminated. **Example response:** ```json { "action": "InstantOnboardingCloseClicked" } ``` ## InstantOnboardingConnectCompleted {#instantonboardingconnectcompleted} | Name | Application Support | Description | |-----------------------------------|---------------------|-----------------------------------------------------------------------------------------------| | InstantOnboardingConnectCompleted | Instant Onboarding | Sent when the customer completes bank account linking within the embedded Connect experience. | This event fires when the customer successfully links one or more bank accounts. After this event, the customer is returned to the Review \& Share screen to confirm and submit their data. Note: This does **not** mean the Instant Onboarding flow is complete. The customer must still confirm and share their data. Listen for the `PrefillShared` event with `success: "true"`, the `End` event with `code: 200`, or the `End` event with `code: "200"` and `type: "instant-onboard"` for full flow completion. **Example response:** ```json { "action": "InstantOnboardingConnectCompleted" } ``` ## InstantOnboardingConnectLaunch {#instantonboardingconnectlaunch} | Name | Application Support | Description | |--------------------------------|---------------------|---------------------------------------------------------------------------------------------------------------| | InstantOnboardingConnectLaunch | Instant Onboarding | Sent when the embedded bank linking experience (Data Connect) is launched within the Instant Onboarding flow. | This event fires when the customer initiates account linking by selecting a suggested bank from the list or by clicking "Link Account", "Add/Remove Accounts", or "Find another bank". Note: During the bank linking sub-flow, Data Connect's granular events (search, credentials, MFA challenges, etc.) are *not* forwarded to native SDK integrations. You will only receive the coarse lifecycle events: `InstantOnboardingConnectLaunch`, `InstantOnboardingConnectMounted`, and `InstantOnboardingConnectCompleted`. Web SDK (iframe) integrations do receive the full Connect event stream. ##### Fields: {#fields-1} | Field | Type | Description | |--------------|----------------|-------------------------------------------------------------------------------------------| | action | string | Always `InstantOnboardingConnectLaunch` | | connectMode | string or null | The type of Connect session: `addAccounts`, `manageAccounts`, or `null` | | launchReason | string or null | What triggered the launch: `suggestedBank`, `findAnother`, `emptyState`, `manageAccounts` | **Example response:** ```json { "action": "InstantOnboardingConnectLaunch", "connectMode": "addAccounts", "launchReason": "suggestedBank" } ``` ## InstantOnboardingConnectMounted {#instantonboardingconnectmounted} | Name | Application Support | Description | |---------------------------------|---------------------|-------------------------------------------------------------------------------------------| | InstantOnboardingConnectMounted | Instant Onboarding | Sent when the embedded bank linking experience has loaded and is visible to the customer. | This event confirms that Connect Client has mounted in the DOM and the customer can interact with the bank linking UI. Note: Measure the time between InstantOnboardingConnectLaunch and InstantOnboardingConnectMounted to track Connect load time for your integration. **Example response:** ```json { "action": "InstantOnboardingConnectMounted" } ``` ## InstantOnboardingEditUserDataSubmit {#instantonboardingedituserdatasubmit} | Name | Application Support | Description | |-------------------------------------|---------------------|-------------------------------------------------------------------------| | InstantOnboardingEditUserDataSubmit | Instant Onboarding | Sent when the customer submits edits to prefilled personal information. | This event fires when the customer attempts to save changes to information displayed during the review process. **Example response:** ```json { "action": "InstantOnboardingEditUserDataSubmit" } ``` ## InstantOnboardingEditUserDataSuccess {#instantonboardingedituserdatasuccess} | Name | Application Support | Description | |--------------------------------------|---------------------|-----------------------------------------------------------------------------------------| | InstantOnboardingEditUserDataSuccess | Instant Onboarding | Sent when customer updates to prefilled personal information are successfully accepted. | This event confirms that the submitted changes were saved and the customer may continue through the review process. **Example response:** ```json { "action": "InstantOnboardingEditUserDataSuccess" } ``` ## InstantOnboardingInitialize {#instantonboardinginitialize} | Name | Application Support | Description | |-----------------------------|---------------------|-------------------------------------------------------------------------------------------------------------| | InstantOnboardingInitialize | Instant Onboarding | Sent when the Instant Onboarding experience is successfully initialized and ready for customer interaction. | This event indicates the Instant Onboarding session has been created and the customer has entered the flow. Note: This event is Instant Onboarding specific and may be used to measure successful session launches. **Example response:** ```json { "action": "InstantOnboardingInitialize", "customerId": "12345", "partnerId": "67890", "experience": "550e8400-e29b-41d4-a716-446655440000", "type": "instant-onboard", "secondaryDataInput": "Last4SSN", "sessionId": "7035b169d6f13306a240e7291bf7eab1a28010af26b57249ca1ccf5c49a30ce4", "timestamp": 1717132800000 } ``` ## InstantOnboardingOptionalLinkPromptLinkAccountSelected {#instantonboardingoptionallinkpromptlinkaccountselected} | Name | Application Support | Description | |--------------------------------------------------------|---------------------|-----------------------------------------------------------------------------------------------| | InstantOnboardingOptionalLinkPromptLinkAccountSelected | Instant Onboarding | Sent when the customer chooses to link bank accounts from an optional account linking prompt. | After this event, the customer proceeds into the embedded Connect experience. **Example response:** ```json { "action": "InstantOnboardingOptionalLinkPromptLinkAccountSelected" } ``` ## InstantOnboardingOptionalLinkPromptShown {#instantonboardingoptionallinkpromptshown} | Name | Application Support | Description | |------------------------------------------|---------------------|-----------------------------------------------------------------------------------------| | InstantOnboardingOptionalLinkPromptShown | Instant Onboarding | Sent when the customer is presented with an optional opportunity to link bank accounts. | This event indicates the customer has reached a decision point where account linking is available but not required. **Example response:** ```json { "action": "InstantOnboardingOptionalLinkPromptShown" } ``` ## InstantOnboardingOptionalLinkPromptSkipSelected {#instantonboardingoptionallinkpromptskipselected} | Name | Application Support | Description | |-------------------------------------------------|---------------------|-------------------------------------------------------------------------------------------------| | InstantOnboardingOptionalLinkPromptSkipSelected | Instant Onboarding | Sent when the customer chooses to skip account linking from an optional account linking prompt. | This event indicates the customer elected to continue through onboarding without linking bank accounts. **Example response:** ```json { "action": "InstantOnboardingOptionalLinkPromptSkipSelected" } ``` ## InstantOnboardingRequiredLinkBlocked {#instantonboardingrequiredlinkblocked} | Name | Application Support | Description | |--------------------------------------|---------------------|-------------------------------------------------------------------------------------------------------------------------------| | InstantOnboardingRequiredLinkBlocked | Instant Onboarding | Sent when the customer attempts to continue without linking bank accounts in an experience where account linking is required. | This event indicates progression through the flow was blocked because required account linking has not been completed. **Example response:** ```json { "action": "InstantOnboardingRequiredLinkBlocked" } ``` ## LaunchOAuth {#launchoauth} | Name | Application Support | Description | |-------------|----------------------------------------|---------------------------------------------------------| | LaunchOAuth | Data Connect Full / Instant Onboarding | Sent when the customer opens an OAuth window for an FI. | See [OAuth Connections](https://developer.mastercard.com/open-finance-us/documentation/financial-institution/oauth-connections/index.md). Note: If no other OAuth events are received after this event, then the customer most likely closed the OAuth window. **Example response:** ```JSON { "action": "LaunchOAuth", "institutionId": 789, "success": true, "errorCode": null } ``` ## ManualEntrySubmitted {#manualentrysubmitted} | Name | Application Support | Description | |----------------------|---------------------|------------------------------------------------------------------------------------------------------------| | ManualEntrySubmitted | Instant Onboarding | Sent when the customer has manually filled out PII data, added bank accounts (if required), and submitted. | This event fires when the customer completes the manual data entry form. Manual entry is the fallback path when automatic identity verification (`PrefillVerification`) fails. The manual entry was accepted if: * `success` = "true" The manual entry was rejected if: * `success` = "false" **Example response:** ```JSON { "action": "ManualEntrySubmitted", "customerId": 12345, "partnerId": 67890, "success": "false", "timestamp": 1717132800000, "sessionId": "7035b169d6f13306a240e7291bf7eab1a28010af26b57249ca1ccf5c49a30ce4" } ``` ## MfaAttempt {#mfaattempt} | Name | Application Support | Description | |------------|-------------------------------------------------------------------------------|-------------------------------------------------------------| | MfaAttempt | Data Connect Full / Data Connect Lite / Data Connect Fix / Instant Onboarding | Sent when the customer attempts to answer an MFA challenge. | This event is sent two times. The first event is sent when the customer attempts to sign in to their bank. The return includes: * A null value for the `success`, `accounts`, and `errorCode` fields. A second event sent provides the details about the attempt. The customer successfully signed in to their accounts if: * `accounts` = populated * `success` = true * `errorCode` = null The customer encountered another MFA challenge if: * `accounts` = null * `success` = true * `errorCode` = null The customer failed to sign in to their accounts if: * accounts= null * success= false * errorCode= populated **Example response (first event):** ```JSON { "action": "MfaAttempt", "institutionId": 123, "accounts": null, "accountIds": [], "success": null, "errorCode": null } ``` **Example response (second event success):** ```JSON { "action": "MfaAttempt", "institutionId": 123, "accounts": 5, "accountIds": [ "7079115306", "7079115307", "7079115308", "7079115309", "7079115310" ], "success": true, "errorCode": null } ``` **Example response (second event fail):** ```JSON { "action": "MfaAttempt", "institutionId": 123, "accounts": null, "accountIds": [], "success": null, "errorCode": 185 } ``` ## OAuthAddAccounts {#oauthaddaccounts} | Name | Application Support | Description | |------------------|----------------------------------------|--------------------------------------------------------------------| | OAuthAddAccounts | Data Connect Full / Instant Onboarding | Sent when the customer attempts to add an OAuth account for an FI. | See [OAuth Connections](https://developer.mastercard.com/open-finance-us/documentation/financial-institution/oauth-connections/index.md). **Example response:** ```JSON { "action": "OAuthAddAccounts", "institutionId": 123, "institutionLoginId": 456, "accounts": 5, "accountIds": [ "7079115306", "7079115307", "7079115308", "7079115309", "7079115310" ], "success": true, "errorCode": null } ``` ## OAuthSignInAttempt {#oauthsigninattempt} | Name | Application Support | Description | |--------------------|----------------------------------------|---------------------------------------------------------------------------| | OAuthSignInAttempt | Data Connect Full / Instant Onboarding | Sent when the customer attempts to sign in to an OAuth account for an FI. | See [OAuth Connections](https://developer.mastercard.com/open-finance-us/documentation/financial-institution/oauth-connections/index.md). **Example response:** ```JSON { "action": "OAuthSignInAttempt", "institutionId": 456, "success": true, "errorCode": null } ``` ## PrefillShared {#prefillshared} | Name | Application Support | Description | |---------------|---------------------|-------------------------------------------------------------------------------------------------------------| | PrefillShared | Instant Onboarding | Sent when customer has reviewed, verified, edited (if applicable), and chosen to share their data with you. | This is the primary success signal for the Instant Onboarding flow. When success = "`true`", the customer has reviewed their prefilled information and consented to share it with your application. The data was shared successfully if: * `success` = "true" * Event arrives in `onDone` callback The share failed if: * `success` = "false" * Event arrives in `onError` callback Note: Account and PII data become available upon receipt of the onDone SDK event. We recommend immediately fetching the data upon receipt; however, the data is available for 3 hours after the beginning of the session. **Example response (success --- delivered via onDone):** ```json { "action": "PrefillShared", "customerId": "7003898270", "partnerId": "2445584362351", "success": "true", "secondaryDataInput": "Last4SSN", "timestamp": "1755797890000", "sessionId": "6e5bb1bb17cd185926799d167a66dc6bf299c726c907ca1056416861cd1e8962" } ``` ## PrefillVerification {#prefillverification} | Name | Application Support | Description | |---------------------|---------------------|-------------------------------------------------------------------------------------------| | PrefillVerification | Instant Onboarding | Sent when the customer submits their identity verification (Last 4 SSN or Date of Birth). | This event fires twice during the identity verification step: * **First event:** sent when the customer submits the form. The success field is `false` (pending verification). * **Second event:** sent when the verification result returns. Check success to determine the outcome. The customer's identity was verified if: * `success` = "true" The customer's identity could not be verified if: * `success` = "false" (on the second event) Note: If verification fails, the customer may be offered a manual entry path. Listen for the ManualEntrySubmitted event if the partner experience is configured to allow manual fallback. **Example response (submission --- first event):** ```json { "action": "PrefillVerification", "customerId": "7003898270", "partnerId": "2445584362351", "success": "false", "secondaryDataInput": "Last4SSN", "timestamp": "1755797412000", "sessionId": "6e5bb1bb17cd185926799d167a66dc6bf299c726c907ca1056416861cd1e8962" } ``` **Example response (success --- second event):** ```json { "action": "PrefillVerification", "customerId": "7003898270", "partnerId": "2445584362351", "success": "true", "secondaryDataInput": "Last4SSN", "timestamp": "1755797415000", "sessionId": "6e5bb1bb17cd185926799d167a66dc6bf299c726c907ca1056416861cd1e8962" } ``` **Example response (failure --- second event):** ```json { "action": "PrefillVerification", "customerId": "7003898270", "partnerId": "2445584362351", "success": "false", "secondaryDataInput": "DoB", "timestamp": "1755797415000", "sessionId": "6e5bb1bb17cd185926799d167a66dc6bf299c726c907ca1056416861cd1e8962" } ``` ## RemoveAccounts {#removeaccounts} | Name | Application Support | Description | |----------------|----------------------------------------|------------------------------------------------------| | RemoveAccounts | Data Connect Full / Instant Onboarding | Sent when a customer tries to remove their accounts. | This event is sent two times. The first event is sent when the customer attempts to sign in to their bank. The return includes: * A null value for the `success`, `accounts`, and `errorCode` fields. A second event is sent with the results about the customer's attempt to remove their accounts: * Successfully removes accounts * Failed to remove accounts Note: If the first event is received, but the second event never arrives, then the customer ended the attempt to remove their accounts before Data Connect could successfully remove them. **Example response (first event):** ```JSON { "action": "RemoveAccounts", "institutionId": 123, "institutionLoginId": null, "accounts": null, "accountIds": [], "success": null, "errorCode": null } ``` **Example response (second event success):** ```JSON { "action": "RemoveAccounts", "institutionId": 123, "institutionLoginId": 456, "accounts": 5, "accountIds": [ "7079115306", "7079115307", "7079115308", "7079115309", "7079115310" ], "success": true, "errorCode": null } ``` **Example response (second event fail):** ```JSON { "action": "RemoveAccounts", "institutionId": 123, "institutionLoginId": null, "accounts": null, "accountIds": [], "success": false, "errorCode": 500 } ``` ## SearchInstitutions {#searchinstitutions} | Name | Application Support | Description | |--------------------|----------------------------------------|--------------------------------------| | SearchInstitutions | Data Connect Full / Instant Onboarding | Sent when a user searches for an FI. | The return includes: * The customer's query search words. * The number of matching search results. * The number of times the customer attempted to search. Note: The event is only sent if this condition occurs: at least three letters are typed and the customer pauses after typing for 300 ms. **Example response:** ```JSON { "action": "SearchInstitutions", "searchTerm": "Bank of America", "resultCount": 5 } ``` ## SelectInstitution {#selectinstitution} | Name | Application Support | Description | |-------------------|----------------------------------------|-----------------------------------------------------| | SelectInstitution | Data Connect Full / Instant Onboarding | Sent when the customer selects an FI to sign in to. | The return includes: * The institution ID the customer selected. * If the FI is supported for the product. **Example response:** ```JSON { "action": "SelectInstitution", "institutionId": 123, "supported": true } ``` ## SessionTimeout {#sessiontimeout} | Name | Application Support | Description | |----------------|-------------------------------------------------------------------------------|-----------------------------------------------------------------| | SessionTimeout | Data Connect Full / Data Connect Lite / Data Connect Fix / Instant Onboarding | Sent when a customer's session has timed out due to inactivity. | **Example response:** ```JSON { "action": "SessionTimeout", "customerId": 12345, "partnerId": 67890, "timestamp": 1717132800000, "sessionId": "7035b169d6f13306a240e7291bf7eab1a28010af26b57249ca1ccf5c49a30ce4" } ``` ## SignInAttempt {#signinattempt} | Name | Application Support | Description | |---------------|----------------------------------------|---------------------------------------------------------| | SignInAttempt | Data Connect Full / Instant Onboarding | Sent when a customer attempts to sign in to an account. | This event is sent two times. The first event is sent when the customer attempts to sign in to their bank. The return includes: * A null value for the `success`, `accounts`, and `errorCode` fields. A second event sent provides the details about the attempt. The customer successfully signed in to their accounts if: * `accounts` = populated * `success` = true * `errorCode` = null The customer encountered an MFA challenge if: * `accounts` = null * `success` = true * `errorCode` = null The customer failed to sign in to their accounts if: * `accounts` = null * `success` = false * `errorCode` = populated Note: If the first event is received, but the second event never arrives, then the customer ended the attempt before Data Connect successfully connected to the FI. **Example response (first event):** ```JSON { "action": "SignInAttempt", "institutionId": 456, "accounts": null, "accountIds": [], "success": null, "errorCode": null } ``` **Example response (second event success):** ```JSON { "action": "SignInAttempt", "institutionId": 456, "accounts": 5, "accountIds": [ "7079115306", "7079115307", "7079115308", "7079115309", "7079115310" ], "success": true, "errorCode": 0 } ``` **Example response (second event fail):** ```JSON { "action": "SignInAttempt", "institutionId": 456, "accounts": null, "accountIds": [], "success": false, "errorCode": 103 } ``` ## SubmitAccounts {#submitaccounts} | Name | Application Support | Description | |----------------|----------------------------------------|-----------------------------------------------------------| | SubmitAccounts | Data Connect Full / Instant Onboarding | Sent when the customer attempts to submit their accounts. | The return includes: * The accounts
This user event indicates: * The customer attempted to submit their accounts. * The account number if the customer's attempt to submit accounts was successful.
**Example response:** ```JSON { "action": "SubmitAccounts", "customerId": 12345, "partnerId": 67890, "timestamp": 1717132800000, "ttl": 1717140000000, "type": "full", "experience": "550e8400-e29b-41d4-a716-446655440000", "sessionId": "7035b169d6f13306a240e7291bf7eab1a28010af26b57249ca1ccf5c49a30ce4", "product": "aggregation" } ``` ## Success {#success} | Name | Application Support | Description | |---------|---------------------|-----------------------------------------------------------------------------------| | Success | Instant Onboarding | Sent when the customer successfully completes the entire Instant Onboarding flow. | This event confirms the customer has completed identity verification, optionally linked accounts, and shared their data. You will receive this alongside PrefillShared (success) and End (code 200). Note: Account and PII data are available within 3 hours of generating an Instant Onboarding session. Retrieve the data immediately after the user completes the flow in order to not lose user data. **Example response:** ```json { "reason": "complete", "code": 200 } ``` ## UserRegistrationCompleted {#userregistrationcompleted} | Name | Application Support | Description | |---------------------------|---------------------|------------------------------------------------------------------------------------------------------| | UserRegistrationCompleted | Instant Onboarding | Sent when customer registration has completed successfully within the Instant Onboarding experience. | This event indicates the customer has completed the registration step and may continue through the onboarding flow. **Example response:** ```json { "action": "UserRegistrationCompleted" } ``` ## Resources {#resources} * [Instant Onboarding](https://developer.mastercard.com/open-finance-us/documentation/usecases/onboarding/index.md) * [Instant Onboarding Quick Start Guide](https://developer.mastercard.com/open-finance-us/documentation/usecases/onboarding/instant-onboarding-quick-start/index.md)