Link Accounts Using APIs

Link Accounts Using APIs

Introduction

This tutorial is to link accounts manually and implement your own credentials management, multifactor authentication, and error handling. If you prefer to use our UI toolkit that does this automatically for you, please see Getting Started with FastLink.


Search for Your Financial Institution (Provider)

Use the GET /providers endpoint to search for your financial institution.

In the name parameter, pass the following:

  • name: financial institution’s name
  • dataset:
    • ACCT_PROFILE[FULL_ACCT_NUMBER.container[bank OR investment OR creditCard]]
    • ACCT_PROFILE[FULL_ACCT_NUMBER.container[bank]]
    • BASIC_AGG_DATA[ACCOUNT_DETAILS.container[bank OR investment] OR HOLDINGS.container[bank]] OR ACCT_PROFILE[FULL_ACCT_NUMBER.container[bank]]
    • BASIC_AGG_DATA
    • BASIC_AGG_DATA OR ACCT_PROFILE
    • BASIC_AGG_DATA [ ACCOUNT_DETAILS OR HOLDINGS ]
    • BASIC_AGG_DATA [ ACCOUNT_DETAILS] OR DOCUMENT

In the JSON response, fetch the providerId. If the financial institution is not listed, it is not supported for IAV.

Retrieve providerId details: Use the GET /providers/{providerId} endpoint to retrieve the provider’s details. Pass the selected providerId and retrieve loginForm and dataset values.

Sample Request

Endpoint
GET /providers?name=bankofamerica
Headers
	"Authorization":Bearer {{your-user-access-token}}
	"Api-Version":"1.1"
Response
{ 
   "provider":[ 
      { 
         "PRIORITY":"SEARCH",
         "id":2852,
         "name":"Bank of America",
         "loginUrl":"https://secure.bankofamerica.com/login/sign-in/signOnV2Screen.go",
         "baseUrl":"https://www.bankofamerica.com/",
         "favicon":"https://yodlee-1.hs.llnwd.net/v1/FAVICON/FAV_2852.SVG",
         "logo":"https://yodlee-1.hs.llnwd.net/v1/LOGO/LOGO_2852_1_2.SVG",
         "status":"Supported",
         "authType":"CREDENTIALS",
         "languageISOCode":"EN",
         "primaryLanguageISOCode":"EN",
         "countryISOCode":"US",
         "lastModified":"2018-05-08T07:20:36Z",
         "forgetPasswordUrl":"https://secure.bankofamerica.com/login/sign-in/signOnV2Screen.go",
         "isAutoRefreshEnabled":true,
         "dataset":[ 
            { 
               "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":"BASIC_AGG_DATA",
               "attribute":[ 
                  { 
                     "name":"ACCOUNT_DETAILS",
                     "container":[ 
                        "bank",
                        "loan",
                        "creditCard"
                     ]
                  },
                  { 
                     "name":"STATEMENTS",
                     "container":[ 
                        "loan",
                        "creditCard"
                     ]
                  },
                  { 
                     "name":"TRANSACTIONS",
                     "container":[ 
                        "bank",
                        "loan",
                        "creditCard"
                     ]
                  }
               ]
            }
         ],
         "isAddedByUser":"false"
      }
   ]
}


Add Account

Use the POST /providerAccounts endpoint to initiate the account linking process with the provider site. Pass the retrieved loginForm & dataset values and add the respective Username and Password credentials of the provider in the body of the providerAccount call.

Sample Request

Endpoint
POST /providerAccounts?providerId=2852
Headers
"Authorization" : Bearer {{your-user-access-token}}
"Api-Version" : "1.1"
"Content-Type" : "application/json"
Body
{ 
   "loginForm":[ 
      { 
         "id":2152,
         "forgetPasswordURL":"https://secure.bankofamerica.com/login/sign-in/signOnV2Screen.go",
         "formType":"login",
         "row":[ 
            { 
               "id":5371,
               "label":"Online ID",
               "form":"0001",
               "fieldRowChoice":"0001",
               "field":[ 
                  { 
                     "id":2863,
                     "name":"LOGIN",
                     "type":"text",
                     "value":"username",
                     "isOptional":false,
                     "valueEditable":true
                  }
               ]
            },
            { 
               "id":5372,
               "label":"Passcode",
               "form":"0001",
               "fieldRowChoice":"0002",
               "field":[ 
                  { 
                     "id":2864,
                     "name":"PASSWORD",
                     "maxLength":20,
                     "type":"password",
                     "value":"password",
                     "isOptional":false,
                     "valueEditable":true
                  }
               ]
            }
         ]
      }
   ]
}
Response
{ 
   "providerAccount":[ 
      { 
         "id":11129603,
         "aggregationSource":"USER",
         "status":"LOGIN_IN_PROGRESS",
         "requestId":"4L6WJDkuijydt8QRQMdqe07isog=",
         "dataset":[ 
            { 
               "name":"BASIC_AGG_DATA",
               "updateEligibility":"DISALLOW_UPDATE"
            }
         ]
      }
   ]
}

 

For more information about the API flows, see API Flow. Next: See how to improve performance of Yodlee APIs