Yodlee Integration

Aggregate held away financial account data globally




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, if you aren't yet a user. Once on the Yodlee developer portal, follow the instructions below:

Hydrogen only supports Yodlee's Development and Production environments, not Sandbox (dummy accounts).

  1. Yodlee requires a RSA key pair in the PKCS#8 format, using a key size of 2048 bits, in order to use its Development or Production servers. On your Yodlee dashboard, click "Create Auth Keys". To generate a key pair, you can use this RSA key generator.
  2. After generating the keys, copy the Private Key and paste it into the Hydrogen Admin Credentials screen as the "Password/Client Secret" for Yodlee.
  3. Copy the Public Key and paste it into the Yodlee API Auth Keys modal where it says "Upload New Key." After submitting to Yodlee, you will be presented with an "Issuer Id" (e.g. 0098e798-41d2e48d-2290-483a-98dd-2703dd69e2f7 as depicted below) You can then copy this value and paste it into the Hydrogen Admin Credentials screen as the "Username/Client ID" for Yodlee.
  4. Lastly, copy the "Yodlee FastLink Launch URL," located on the Yodlee dashboard. On the Hydrogen Admin Settings screen, after choosing Yodlee as the vendor for Aggregation, there will be an input for the "Widget Link Url." Paste the value into this box and click "Save." You are now all set up!
  5. Choose Plaid as the vendor for financial account aggregation under the "Aggregation" tab of the Hydrogen Admin Settings.

* Once you wish to move to production with Yodlee, you will be required to whitelist your server IP address. Please submit a support ticket on the Hydrogen developer portal and we will give you the IP addresses of our servers.

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 with a button that can be used to invoke the widget. For more advanced customization options please see this guide. To customize the styling of the widget, you can click the "Launch Fastlink Configuration Tool" button on the Yodlee dashboard.


  <script type='text/javascript' src='https://cdn.yodlee.com/fastlink/v3/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>

Implementation

User Creation

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"
}
Token Exchange

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.

Widget Link

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.

Account Aggregation

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"
}

The result above will create an aggregation_account_id in Nucleus. If you select "Automatically retrieve the latest balance, transactions and holdings after initial Aggregation Account creation" in the Integration Admin Settings, this data will pull in once the account is stored. Otherwise, you can perform the following calls to pull various account data:

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

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

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

Webhooks

After submitting your credentials in the initial setup, Hydrogen will automatically register callback URLs for webhooks on your behalf. We have integrated all events offered by Yodlee for the following data, so you can sit back and watch the data automatically populate in Nucleus!

  • Balances
  • Transactions
  • Holdings

  • *Yodlee is a technology integration on the Hydrogen platform. There is no implied partnership or company affiliation unless otherwise stated.