Sorry, you need to enable JavaScript to visit this website.
Skip to main content

Advanced Integration

All new customers, please reference our FastLink 4 documentation. FastLink 3 documentation is provided for current customers, but we are encouraging customers to upgrade to FastLink 4 to experience the feature enhancements available in the latest release.

We hope you have gone through the Getting Started with FastLink page that talks about the different FastLink product flows and provides details on how to integrate FastLink for Web.
You can further configure the FastLink application by passing additional launch parameters in the params object of the fastlink.open() method. The params object primarily has the following two types of attributes:

  • Deep linking attributes: Allows deep link to different FastLink flows.
  • dataset attributes: Request different data combinations apart from the predefined aggregation and verification dataset.

Additional Params - Deep Linking Attributes

In addition to passing the userExperienceFlow in the params object (as explained in the Getting Started with FastLink page), the additional parameters allow you to deeplink to different FastLink flows. Following are the different available deep link flows:

Without deeplink, the FastLink application will start with selecting a site. Click to view the screen.

Link Account

The FastLink aggregate account scenario allows you to deeplink the application to a specific provider and add all the accounts belonging to it. Following are the two possible use cases that can be performed by deep linking to a provider:

  • Start by displaying the search results based on the search string. Click to view the screen.

    The parameters to display the search results are:
    Parameter Name Description Example
    keyword The parameter that returns the provider search results based on what the user wants to search in the search page.
    ...
    window.fastlink.open({
        ...
    	params: { keyword : 'citi',
    			userExperienceFlow: 'Aggregation'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
  • Pass flow=add and providerId to start with the site's account authentication screen. Click to view the screen.

    Parameters to deeplink to the site's account authentication screen follow:
    Parameter Name Description Example
    flow The aggregate account flow has to be invoked.
    ...
    window.fastlink.open({
        ...
    	params: { providerId : 16441,
    			flow : 'add',
    			userExperienceFlow: 'Aggregation'
             	}, 
    			...
    	}, 'container-fastlink');
    ...
    providerId The unique identifier for a particular provider (site).

Edit Account Credentials

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

Parameters to deeplink 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',
			userExperienceFlow: 'Aggregation'
         	}, 
			...
	}, 'container-fastlink');
...
providerAccountId The unique identifier for a particular provider account for which the edit account credentials flow will be invoked.

Refresh Account Flow

The FastLink refresh flow allows you to initiate a refresh of an already linked provider account and update it 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 deeplink 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',
			userExperienceFlow: 'Aggregation'
         	}, 
			...
	}, 'container-fastlink');
...
providerAccountId The unique identifier for a provider account for which the edit account credentials flow will be invoked.

Multiple Open Banking Application Support

If the customer has multiple Open Banking applications, passing the following parameter will launch the particular application:

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

Additional Params - Request Dataset

The dataset attribute allows you to request the data that needs to be aggregated from the provider, and it can be passed along with the other attributes in the params object.
Pass the dataset attribute only when the data that you need is not obtained through the predefined data returned using the userExperienceFlow attribute. For more information about the different dataset attributes, refer to Working with Datasets.

Parameter Name Description Example
dataset The attributes that have to be aggregated from the provider.
Note: Pass only the attributes that you have subscribed to and is required for your product flow.
...
window.fastlink.open({
    ...
	params: { 
			...

			dataset : [ {
			    name: 'BASIC_AGG_DATA',
			    attribute: [ {
			         name: 'BASIC_ACCOUNT_INFO',
			         container: ['bank', 'creditCard', 'loan', 'investment']
			    }, {
			         name: 'ACCOUNT_DETAILS',
			         container: ['bank', 'creditCard', 'loan', 'investment']
			    }, {
			         name: 'TRANSACTIONS',
			         container: ['bank', 'creditCard', 'loan', 'investment']
			    }, {
			         name: 'HOLDINGS',
			         container: ['investment']
			    }, {
			         name: 'STATEMENTS',
			         container: ['creditCard', 'loan']
			    }]
			}, {
			    name: 'ACCT_PROFILE',
			    attribute: [ {
			         name: 'FULL_ACCT_NUMBER',
			         container: ['bank']
			    }, {
			         name: 'BANK_TRANSFER_CODE',
			         container: ['bank']
			    }, {
			         name: 'HOLDER_NAME',
			         container: ['bank']
			    }, {
			         name: 'HOLDER_DETAILS',
			         container: ['bank']
			    }, {
			         name: 'PAYMENT_PROFILE',
			         container: ['loan']
			    }]
			}, {
			    name: 'ADVANCE_AGG_DATA',
			    attribute: [ {
			         name: 'INTEREST_DETAILS',
			         container: ['loan']
			    }, {
			         name: 'PAYMENT_DETAILS',
			         container: ['loan']
			    }]
			},
        ...
	}, 'container-fastlink');
...

Post Messages

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

  • onSuccess(data)
  • onError(data)
  • onExit(data)
  • onEvent(data)

The callback methods' argument attributes are as follows:

Parameter Description
providerAccountId The providerAccountId is created through the add, edit, or refresh flow.
bankName The name of the provider.
status The status of the added provider sent by the application. The 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.
  • SELECTION_COMPLETE - The account is successfully verified by the consumer and applies only to userExperienceFlow=verification.
providerId The unique identifier of the provider.
reason The reason for the provider addition failure.
requestId The unique identifier for every request that returns contextual data.
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.

Events and their post message sample formats are as follows:

Event Post Message Sample Format
Aggregate account
{
  fnToCall: "accountStatus", 
  bankName: "Dag Site", 
  requestId: "COX3l5DppA40dIiJDrkJjmmhVt8=",
  providerAccountId: 32132249739, 
  status: "SUCCESS", 
  ...
}
additionalStatus: "ACCT_SUMMARY_RECEIVED"
bankName: "Dag Site"
fnToCall: "accountStatus"
providerAccountId: 32132249739
providerId: 16441
requestId: "COX3l5DppA40dIiJDrkJjmmhVt8="
status: "SUCCESS"
Edit account
{
  fnToCall: "accountStatus", 
  bankName: "Dag Site", 
  requestId: "SRJOgqfCjb04a9VIzAke3lTBgpM=",
  providerAccountId: 32132249739, 
  status: "SUCCESS", 
  ...
}
additionalStatus: "ACCT_SUMMARY_RECEIVED"
bankName: "Dag Site"
fnToCall: "accountStatus"
providerAccountId: 32132249739
providerId: 16441
requestId: "SRJOgqfCjb04a9VIzAke3lTBgpM="
status: "SUCCESS"
Refresh account
{
  fnToCall: "accountStatus",
  bankName: "Dag Site", 
  requestId: "fzQUhFmXqfJ3RIdw5jNJH8sHhQ8=",
  providerAccountId: 32132249739, 
  status: "SUCCESS", 
  ...
}
additionalStatus: "ACCT_SUMMARY_RECEIVED"
bankName: "Dag Site"
fnToCall: "accountStatus"
providerAccountId: 32132249739
providerId: 16441
requestId: "fzQUhFmXqfJ3RIdw5jNJH8sHhQ8="
status: "SUCCESS"
Data service account verification initiated for select accounts screen
{
  fnToCall: "accountStatus", 
  bankName: "Dag Site", 
  requestId: "5vqBaTSOCUlDmZJde2ReJKAH0rA=",
  providerAccountId: 32132249743, 
  status: "SUCCESS", 
  ...
}
additionalStatus: "ACCT_SUMMARY_RECEIVED"
bankName: "Dag Site"
fnToCall: "accountStatus"
providerAccountId: 32132249743
providerId: 16441
requestId: "5vqBaTSOCUlDmZJde2ReJKAH0rA="
status: "SUCCESS"
When the consumer closes the FastLink application after successful account verification
{
  fnToCall: "accountStatus", 
  action: "exit",
  sites: Array(1)
}
action: "exit"
fnToCall: "accountStatus"
sites: Array(1)
00:00
bankName: "Dag Site"
providerAccountId: 32132249745
providerId: 16441
requestId: "om/LITOXyvBUrdgQ5sOL8730gXU="
status: "ACTION_ABANDONED"
statusCode: "AVAILABLE_DATA_RETRIEVED"
When the consumer closes the FastLink application after successful account addition
{
 fnToCall: "accountStatus", 
 action: "exit",
 sites: Array(1)
}
action: "exit"
fnToCall: "accountStatus"
sites: Array(1)
00:00
bankName: "Dag Site"
providerAccountId: 32132249745
providerId: 16441
requestId: "c8b8k207AAdTwH9GQt9ADZTE7Rg="
status: "SUCCESS"
statusCode: "AVAILABLE_DATA_RETRIEVED"
Error scenario
{
 fnToCall: "accountStatus", 
 bankName: "Dag Site", 
 providerAccountId: 32132249751, 
 reason: "Hmm. Did your Dag Site login or password change? Double-check and re-enter the most current login information you have.",     
 providerId: 16441, 
 ...
} 
bankName: "Dag Site"
fnToCall: "accountStatus"
providerAccountId: 32132249751
providerId: 16441
reason: "Hmm. Did your Dag Site login or password change? Double-check and re-enter the most current login information you have." 
requestId: "tEu+LHy0mFOARutT/JDasHKzoC8=" 
status: "FAILED"
statusCode: "INCORRECT_CREDENTIALS"