Yodlee Integration

Aggregate held away financial account data globally



Back to Integrations



Contact Yodlee


Yodlee enables applications to connect with users' bank, credit card, loan, and investment accounts to pull in account details such as balances and transactions.

Setup

To get started, you’ll first need to sign up with Yodlee and get your client_id and secret. If you already have a Yodlee account, you can go ahead and sign in to retrieve these values.

Implementation

Once you have Yodlee credentials set up on the Integrations Admin, you can embed Yodlee Fastlink into your app or web page. The Yodlee Fastlink will manage user credential validation, multi-factor authentication, and error handling for each institution that Yodlee supports to ensure that your end-user is able to pull data from the account that they've linked.

Below is a sample Yodlee Fastlink embed code.


  <script type='text/javascript' src='https://cdn.yodlee.com/fastlink/v2/initialize.js'></script>
  <body>
  <div id="container-fastlink">
  	<div style="text-align: center;">
              <input type="submit" id="btn-fastlink" value="Link an Account">
        </div>
  </div>
  <script>
  	(function (window) {
             //Open FastLink
  	     var fastlinkBtn = document.getElementById('btn-fastlink');
  	     fastlinkBtn.addEventListener('click', function () {
  	          window.fastlink.open({
  		       fastLinkURL: '<widget_url>',
                       jwtToken: 'Bearer <your-jwt-token>',
  		       onSuccess: function (data) {
                             console.log(data);
  		       },
  		       onError: function (data) {
  			     console.log(data);
  		       },
  		       onExit: function (data) {
                             console.log(data);
  		       },
                       onEvent: function (data) {
                             console.log(data);
                       }
  		    }, 'container-fastlink');
  		}, false);
  	    }(window));
  </script>
  </body>

1) Create a user in Yodlee for the client_id that was created in Nucleus. This will connect the Hydrogen user to the Yodlee user. This process can also be automated through the Hydrogen Integration Admin settings if you wish to use Yodlee for all clients that you sign up:

POST /integration/v1/user

Sample Request

 
{
    "nucleus_client_id": "<nucleus_client_id>",
    "product": "atom",
    "integration_type": "aggregation",
    "vendor_name": "yodlee"
}

2) Next, you will need to perform a token exchange to replace the jwtToken in the Yodlee embed code above. This can be retrieved via the following Hydrogen endpoint to perform the token exchange:

POST /integration/token_exchange


{
     "nucleus_client_id":"<nucleus_client_id>",
     "vendor_name":"yodlee",
     "integration_type":"aggregation",
     "product":"atom"
}

Sample Response

 
{
    "nucleus_client_id": "5f8c6b1b-c032-4fff-9d4f-e0cd3ec6291c",
    "integration_type": "aggregation",
    "product": "atom",
    "vendor_name": "yodlee",
    "vendor_response": {
        "user_token": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzdWIiOiI1ZjhjNmIxYi1jMDMyLTRmZmYtOWQ0Zi1lMGNkM2VjNjI5MWMiLCJpc3MiOiIwMDk4ZTc5OC00MWQyZTQ4ZC0yMjkwLTQ4M2EtOThkZC0yNzAzZGQ2OWUyZjciLCJleHAiOjE1Nzk4NzAxNTcsImlhdCI6MTU3OTg2ODM1N30.J59Nqzo010bFw1kw4_sT1N2_zWTU4b62U8sfSful9dVUTFF4gR2ZD8Gs845ahf19qXzJ-d7pH082i3VRkDeGc54C3_msB2s7eZiBoU7Th-s7Mv_6fyenA0Yp3bKJg4bGxfUpzhPMpFqSZyOp9UZXRwRWaBaVCbnMzX4tVJxsPRg"
    }
}
 

The user_token in the vendor_response above will be used as the value for the jwtToken in the Yodlee widget code.

3) The second and last replacement in the widget code is the fastlinkURL. To replace this, you can use the following endpoint to get the latest URL:

GET/integration/v1/widget_link/{nucleus_client_id}?vendor_name=yodlee

Sample Response

 
{
    "widget_url": "https://development.node.yodlee.com/authenticate/development-400/?channelAppName=tieredpreprod",
    "vendor_name": "yodlee"
}
 

In the response, use the widget_url and replace the fastlinkURL in the Yodlee widget code above. Now, the code snippet is ready to launch the Yodlee Fastlink applet.

4) Now we just have to create the aggregation account to store all the data in Nucleus from the response above.

POST /integration/v1/aggregation/account


{
    "nucleus_client_id": "<nucleus_client_id>",
    "product": "atom"
}

5) Once the account is stored, you can pull balances, transactions, and holdings for the account.

GET /integration/v1/aggregation/balance/{aggregation_account_id}

GET /integration/v1/aggregation/transaction/{aggregation_account_id}

GET /integration/v1/aggregation/holding/{aggregation_account_id}