FastLink 4 Advanced Integration

We hope you have gone through the FastLink 4 Documentation page that talks about the different FastLink product flows and provides details on how to integrate FastLink for Web.

For more information on errors, see Handling Errors.

Additional Params

You can further configure the FastLink application by passing additional launch parameters to customize the way FastLink application loads. In addition to passing the configName in the params object (as explained in the FastLink 4 Documentation page), the following types of additional parameters can be passed:

  • Deep-Linking attributes: Pass the attributes to launch FastLink in the desired flow.
  • Callback details: Pass the callback URL that has to be called when the flow ends and pass the callbackLocation, if the callback URL is used in an iFrame integration.

Deep-Linking Attributes

The different deep-linking flows are as follows:

Without calling on a specific deep-linking flow, the FastLink application will start with selecting a site. Click to view the screen.

Link Account

  • Link account - Start with login form

    The FastLink aggregate account scenario allows you to deep-link the application to a specific provider and add all the accounts belonging to it. Pass flow=add and providerId to start with the site's account authentication screen. Click to view the screen.

    Parameters to deep-link to the site's account authentication screen follow:
    Parameter Name Description Example
    flow Pass add to invoke the aggregate account flow.
    ...
    window.fastlink.open({
        ...
    	params: { providerId : 16441,
    			flow : 'add',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    providerId The unique identifier for a particular provider (site).
    groupId The unique group identifier to get the single site experience.
    Note: Applies only to UK OB.
    ...
    window.fastlink.open({
        ...
    	params: { groupId : 23235,
    			flow : 'add',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    routingNumber A bank routing number or routing transit number (RTN) is a nine-digit number used in the US to identify a financial institution in a transaction.
    ...
    window.fastlink.open({
        ...
    	params: { routingNumber : 11103093,
    			flow : 'add',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
  • Add Manual Account

    The add manual account flow allows you to deep-link the application to the Add Manual Account screen, so that consumers can manually add accounts that the Yodlee aggregation engine does not support. Click to view the screen.

    Parameters to deep-link to the Add Manual Account screen follow:
    Parameter Name Description Example
    flow Pass addManual to invoke the manual account flow.
    ...
    window.fastlink.open({
        ...
    	params: { flow : 'addManual',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
  • Add Real Estate Account

    In the FastLink add real estate account flow, you can deep-link the application to the Add Real Estate Account screen to allow consumers to add the value of their home or property to their profile. Click to view the screen.

    Parameters to deep-link to the Add Real Estate Account screen follow:
    Parameter Name Description Example
    flow Pass addRealEstate to invoke the add real estate account flow.
    ...
    window.fastlink.open({
        ...
    	params: { flow : 'addRealEstate',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...

Edit Account

  • Edit account credentials flow

    The FastLink edit credentials flow allows you to view the edit credentials screen of an already linked provider account. Click to view the screen.

    Parameters to deep-link to the edit account view based on the providerAccountId follow:

    Parameter Name Description Example
    flow The edit account credentials flow has to be invoked.
    ...
    window.fastlink.open({
        ...
    	params: { providerAccountId : 11799016,
    			flow : 'edit',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    providerAccountId The unique identifier for a particular provider account for which the edit account credentials flow will be invoked.
  • Edit manual account flow

    The FastLink edit manual account flow allows you to view the edit account screen of a manually added account. Parameters to deep-link to the edit manual account view based on the accountId follow:

    Parameter Name Description Example
    flow Pass editManual to invoke the edit manual account flow.
    ...
    window.fastlink.open({
        ...
    	params: { accountId : <accountId>,
    			flow : 'editManual',
    			configName: '<config-name-from-config-tool>',
                container: <container>
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    accountId The unique identifier for a particular manual account for which the edit account flow will be invoked.
    container The container of the account for which the edit account flow will be invoked.
    Applicable container values: bank, creditCard, investment, insurance, loan, reward, bill, otherAssets, and otherLiabilities.
  • Edit real estate account flow

    The FastLink edit real estate account flow allows you to view the edit account screen of an already added real estate account. Parameters to deep-link to the edit real estate account view based on the accountId follow:

    Parameter Name Description Example
    flow Pass editRealEstate to invoke the edit real estate account flow.
    ...
    window.fastlink.open({
        ...
    	params: { accountId : <accountId>,
    			flow : 'editRealEstate',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    accountId The unique identifier for a particular real estate account for which the edit account flow will be invoked.

Refresh Account Flow

The FastLink refresh account flow allows you to initiate the refresh of an already linked provider account and update with the latest data. This flow may prompt for the additional multi-factor authentication (MFA) required by the site during login. Click to view the screen.

Parameters to deep-link to the refresh account view follow:

Parameter Name Description Example
flow The refresh account flow has to be invoked.
...
window.fastlink.open({
    ...
	params: { providerAccountId : 11799016,
			flow : 'refresh',
			configName: '<config-name-from-config-tool>'
         	}, 
			...
	}, 'container-fastlink');
...
providerAccountId The unique identifier for a provider account for which the refresh account credentials flow will be invoked.

Account Balance Refresh

The balance refresh verification flow allows you to verify accounts by performing an on-demand refresh to get the latest account balance. The balance refresh flow can only be invoked when the Verification config name is passed.

Parameters to deep-link to the balance refresh flow follow:

Parameter Name Description Example
flow The balanceRefresh flow has to be invoked.
...
window.fastlink.open({
    ...
	params: { providerAccountId : 11799016,
			flow : 'balanceRefresh',
			configName: '<config-name-from-config-tool>'
         	}, 
			...
	}, 'container-fastlink');
...
providerAccountId The unique identifier for the provider account has to be mandatorily passed for which the balance refresh flow will be invoked.

Open Banking

Multiple Open Banking Application Support

If the customer has multiple OB application, passing the following parameter will launch the particular application:

Parameter Name Description Example
obAppName The OB application name that is defined in the FastLink Configuration Tool.
...
window.fastlink.open({
    ...
	params: { providerId : 16441,
			flow : 'add',
			configName: '<config-name-from-config-tool>'
			obAppName: '<OB-application-name-from-config-tool>'
         	}, 
			...
	}, 'container-fastlink');
...

The consent dashboard or manage consent feature in the UK OB and AU OB lets consumers renew or delete their consent to share account data (for the sites that require the consumer’s consent).

  • Consent dashboard – Parameters to deep-link to launch the consent dashboard for UK OB and AU OB follow:
    Parameter Name Description Example
    flow The manageConsent flow has to be invoked to launch the consent dashboard.
    ...
    window.fastlink.open({
        ...
    	params: { flow : 'manageConsent',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
  • Consent details – Parameters to deep-link to the consent details screen of a particular financial institution follows:
    Parameter Name Description Example
    flow The manageConsent flow has to be invoked to launch the consent dashboard.
    ...
    window.fastlink.open({
        ...
    	params: { providerAccountId : 11799016,
    			flow : 'manageConsent',
    			configName: '<config-name-from-config-tool>'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    providerAccountId The unique identifier for the provider account has to be mandatorily passed for which the consent details are displayed.

The notification screen notifies the consumer if it has been more than 90 days since the consumer has provided consent to the collection and the use of the account data.

Parameter to deep-link to consent notifications follow:

Parameter Name Description Example
flow The notifications flow has to be invoked to launch the notifications screen.
...
window.fastlink.open({
    ...
	params: { flow : 'notifications',
			configName: '<config-name-from-config-tool>'
         	}, 
			...
	}, 'container-fastlink');
...

A consumer can choose to renew consent if, for example, the selection of accounts has changed at the financial institution site or consent is about to expire at the site and it has to be renewed.

Parameters to launch the renew consent flow follows

Parameter Name Description Example
flow The renew flow has to be invoked to launch the consent dashboard.
...
window.fastlink.open({
    ...
	params: { providerAccountId : 11799016,
			flow : 'renew',
			configName: '<config-name-from-config-tool>'
         	}, 
			...
	}, 'container-fastlink');
...
providerAccountId The unique identifier for the provider account has to be mandatorily passed for which the consent details are displayed.

Callback Details

The callback details allow you to receive the control from the FastLink application at the end of the flow or when the user exits the application. The parameters to define the callback URL and location follow:

Parameter Name Description Example
callback The URL that has to be called at the end of the flow or when the user exits the application. This parameter is not mandatory to pass.
...
window.fastlink.open({
    ...
	params: { callback : <URL>,
			callbackLocation: 'top',
            configName: '<config-name-from-config-tool>   '
         	}, 
			...
	}, 'container-fastlink');
...
callbackLocation Pass the key-value pair callbackLocation: 'top', if the callback URL is used in an iFrame integration and also if the FastLink application is integrated in a different location like an iFrame or a new window. This parameter is not mandatory to pass.

Post Messages

The FastLink application shares the account addition status with the customer application using the following four callback methods:

The callback/post message attributes follows:

Parameter Description Applicable Product Flow
providerAccountId The providerAccountId created through the add, edit, or refresh flow. All product flows.
providerName The name of the provider. Aggregation, Verification, Aggregation plus Verification, and Verification plus Aggregation.
accountId The unique identifier of an account. Verification, Aggregation Plus Verification, and Verification Plus Aggregation.
isAlreadyVerified When the consumer is re-adding the account, the isAlreadyVerified value will be true if the account is already verified. Verification, Aggregation Plus Verification, and Verification Plus Aggregation.
status The status of the added provider sent by the application. Following are the statuses:
  • SUCCESS – The provider is successfully added by the consumer.
  • FAILED - The provider addition process has failed.
  • ACTION_ABANDONED - The consumer has terminated the account addition process before it completes.
  • MIGRATION_IN_PROGRESS - Suppose the consumer is migrating accounts from screen-scraping user logins (i.e., the login which correspond to the already added accounts) to the new Open Banking (OB) user login. And the migration process takes more time than expected; the application ends the flow and sends this status.
All product flows.
providerId The unique identifier of the provider. Aggregation, Verification, Aggregation plus Verification, and Verification plus Aggregation.
reason The reason for the provider addition failure. Aggregation, Verification, Aggregation plus Verification, and Verification plus Aggregation.
requestId The unique identifier for every request that returns contextual data. Aggregation, Verification, Aggregation plus Verification, and Verification plus Aggregation.
action Specifies that the consumer has clicked/tapped one of the exit points of the FastLink application and you have to handle closing the floater implementation.
Note: This parameter applies only to post message.
All product flows.
additionalStatus The status of the refresh, such as ACCT_SUMMARY_RECEIVED, USER_ACTION_NEEDED_AT_SITE, etc. Aggregation, Verification, Aggregation plus Verification, and Verification plus Aggregation.
accountType The type of account. Following is the list of account types: SAVINGS, CHECKING, PREPAID, CREDIT, INSURANCE, , BROKERAGE_CASH, ANNUITY, PERSONAL_LOAN, HOME_LOAN, OTHER_ASSETS, OTHER_LIABILITIES, and REAL_ESTATE Add manual account flow and add real estate account flow.
container The container of the account. Following is the list of containers: bank, creditCard, insurance, investment, loan, otherAssets, otherLiabilities, and realEstate. Add manual account flow and add real estate account flow.
valuationType Applies only to the realEstate container. Following are the possible values:
  • MANUAL: The real estate account added manually by the consumer.
  • SYSTEM: The real estate account added by the consumer using SmartZip.
Add manual account flow and add real estate account flow.
isDeleted Indicates the account has been deleted by the consumer. Add manual account flow and add real estate account flow.
isManual Indicates the account is manually added by the consumer. Add manual account flow

onSuccess(data) Method

The onSuccess(data) method reports intermediate account addition event to inform the customer that the consumer’s account is successfully added.

{
   "fnToCall":"accountStatus",
   "providerName":"Dag Site",
   "requestId":"COX3l5DppA40dIiJDrkJjmmhVt8=",
   "providerAccountId":32132249739,
   "status":"SUCCESS",
   "providerId":16441,
   "additionalStatus":"ACCT_SUMMARY_RECEIVED"
}

 

onError(data) Method

The onError(data) method reports intermediate account addition failure event, integration error, and FastLink application launch error.

Events Post Message Sample Format

Account addition failed message

{
   "providerId":16441,
   "providerName":"Dag Site",
   "requestId":"rsglj0CIMoQsopKQrNLE4fz7nzE=",
   "reason":"Please visit Dag Site to update your account information or password.",
   "status":"FAILED",
   "additionalStatus":"USER_ACTION_NEEDED_AT_SITE",
   "providerAccountId":11350520
}

Application launch Error

{
   "code":"NXXX",
   "title":"{error_title_NXX}",
   "message":"{error_description_NXX}",
   "fnToCall":"errorHandler",
   "redirectUrl":"{sso_redirect_url}"
}

Integration error

{
   "code":"E701",
   "title":"INVALID_PARAMETER_OR_VALUE",
   "message":"Invalid value for providerId",
   "fnToCall":"errorHandler"
}

For more information, see Handling Errors.

onClose(data) Method

The onClose(data) method refers to the action where a consumer has exited or terminated the flow – either abruptly or intentionally, which marks the end of the session.
Following are the possible exit points where an exit post message will be received:

  • Clicking or tapping the X or close icon in the header of the FastLink application.
  • Clicking or tapping exit points such as Cancel, Save, or Finish buttons in the success screen.
  • Clicking or tapping the Close button in the error screen.
  • Clicking or tapping the Save & Link More Accounts button in the add deep-link flow.
Flow Post Message Sample Format
Aggregation
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Wells Fargo",
         "requestId":"vNHnOZ05sXZF1gFzEpF9BoMlSt0=",
         "status":"SUCCESS",
         "additionalStatus":"AVAILABLE_DATA_RETRIEVED",
         "providerAccountId":11333937
      }
   ]
}
Verification(Success)
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Wells Fargo",
         "requestId":"vNHnOZ05sXZF1gFzEpF9BoMlSt0=",
         "status":"SUCCESS",
         "additionalStatus":"AVAILABLE_DATA_RETRIEVED",
         "accountId":134539937,
         "providerAccountId":11333937,
         "isAlreadyVerified":false
      }
   ]
}
Verification
(Failed as there are no verification eligible accounts)
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Wells Fargo",
         "requestId":"vNHnOZ05sXZF1gFzEpF9BoMlSt0=",
         "status":"FAILED",
         "additionalStatus":"NO_ACCOUNTS_FOR_VERIFICATION",
         "providerAccountId":11333937,
         "reason":"You do not have any accounts eligible for verification with this site. Verification eligibility is determined by Company based on the type of data available for this account."
      }
   ]
}

When the consumer terminates the account addition flow during first time attempt, confirming to delete the accounts.

{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Wells Fargo",
         "requestId":"4CQQB7ylnUJcI7DR/D3z111lPy8=",
         "reason":"User cancelled the linking process confirming account deletion.",
         "status":"ACTION_ABANDONED",
         "providerAccountId":11333937
      }
   ]
}
Deep-link add flow
{
   "action":"linkAnotherSite",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Wells Fargo",
         "requestId":"vNHnOZ05sXZF1gFzEpF9BoMlSt0=",
         "status":"SUCCESS",
         "additionalStatus":"AVAILABLE_DATA_RETRIEVED",
         "providerAccountId":11333937
      }
   ]
}
Manual account
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "accountId":12658703,
         "accountType":"CD",
         "providerAccountId":11548845,
         "container":"bank",
         "status":"SUCCESS",
         "isManual":true
      }
   ]
}
When the consumer deletes a manually added account
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "accountId":12658703,
         "accountType":"CD",
         "providerAccountId":11548845,
         "isDeleted":true,
         "container":"bank",
         "status":"SUCCESS",
         "isManual":true
      }
   ]
}
Real estate account
[
   {
      "action":"exit",
      "fnToCall":"accountStatus",
      "sites":[
         {
            "accountId":13078724,
            "accountType":"Real Estate",
            "providerAccountId":11545871,
            "container":"realEstate",
            "status":"SUCCESS",
            "valuationType":"SYSTEM"
         }
      ]
   },
   {
      "action":"exit",
      "fnToCall":"accountStatus",
      "sites":[
         {
            "accountId":13078722,
            "accountType":"Real Estate",
            "providerAccountId":11545869,
            "container":"realEstate",
            "status":"SUCCESS",
            "valuationType":"MANUAL"
         }
      ]
   }
]
When the consumer deletes an added real estate account
 
{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "accountId":13078722,
         "accountType":"Real Estate",
         "providerAccountId":11545869,
         "container":"realEstate",
         "status":"SUCCESS",
         "valuationType":"MANUAL",
         "isDeleted":true
      }
   ]
}

If the consumer is migrating his/her account from a non-OB to OB user login, and the migration process takes more time than expected, the application ends the flow and send this post message.

{
   "action":"exit",
   "fnToCall":"accountStatus",
   "sites":[
      {
         "providerId":5,
         "providerName":"Dag oAuth",
         "requestId":"vNHnOZ05sXZF1gFzEpF9BoMlSt0=",
         "status":"MIGRATION_IN_PROGRESS",
         "additionalStatus":"MIGRATION_IN_PROGRESS",
         "providerAccountId":11333937
      }
   ]
}

onEvent(data) Method

The onEvent(data) method is called to notify intermittent status messages to the host application.

Challenge Deposit Verification Entry Point Post Messages

The challenge deposit verification (CDV) or manual verification entry point post messages are as follows:

Events Post Message Sample Format
User clicks the Enter Account Information button in site selection screen
{
   "pageName":"SELECT_A_SITE",
   "action":"cdv_exit",
   "type":"CDV",
   "pageTitle":"SITE_SELECTION"
}
User clicks the Enter Account Information button in site search screen.
{
   "pageName":"SITE_SEARCH",
   "action":"cdv_exit",
   "type":"CDV",
   "pageTitle":"SITE_SELECTION"
}
User clicks the Enter Account Information button in login screen.
{
   "pageName":"LOGIN_PAGE",
   "action":"cdv_exit",
   "type":"CDV",
   "pageTitle":"LOGIN"
}
The search for a specific site is unsuccessful, the user then clicks the Enter Account Information button in site search screen.
{
   "pageName":"ERROR_PAGE",
   "action":"cdv_exit",
   "type":"CDV",
   "pageTitle":"ERROR"
}
User clicks the Enter Account Information button in account summary screen.
{
   "pageName":"ACCOUNT_SUMMARY",
   "action":"cdv_exit",
   "type":"CDV",
   "pageTitle":"ACCOUNT_SUMMARY"
}