Overview

Data extracts services help Envestnet Yodlee customers (also referred as cobrand) retrieve their consumers' data in an efficient and secure way. These services provide incremental payload data that gets inserted, updated, or deleted in the system for a defined duration.

Implementation Methods

There are two ways to implement data extracts:

Data Updates Event Triggering Actions

Actions that will generate DATA_UPDATES event during the polling or notification methods are:
  • A successful or failed action to add a provider account through API or add an account through FastLink.
  • A successful or failed action to update/refresh a provider account through API, edit credentials through FastLink, refresh account through FastLink, or refresh account through application.
  • Deleting a provider account through API or application.
  • Updating details of an aggregated account or a manual account through API or application, for example, updating the account nickname.
  • Adding a manual account through API or FastLink.
  • Deleting an aggregated account or a manual account through API or application.
  • Updating an aggregated transaction through API or application, for example, updating the transaction category.
  • Cache/auto refreshes
  • Reconciliation process

Supported Entities

Entities that are supported in data extracts services are as follows:
  • Provider account
  • Account
  • Transactions
  • Holdings

Get User Data Service - Payload Processing Recommendations

The payload of an entity in the get user data service response is same as that of your retrieval services documented on the Yodlee API page.

The only difference between the get user data payload and the respective retrieval service payload is the isDeleted attribute. Deleted records of an entity are indicated by the isDeleted attribute set to true in the get user data service. For example, the account information provided in the get user data service is same as that of the get account detail service.

  • Your payload processing and database updates should rely on the following logic:
    • Provider accounts processing –
      • The providerAccountId is a unique identifier that can be used to perform add and update operations.
      • The isDeleted flag will be returned as true for deleted records. Using the isDeleted flag, the providerAccounts that are deleted from the Yodlee database can be identified and the same can be deleted from your database. refreshInfo will not be provided in the providerAccount response for the deleted account. Ensure that you delete all the child records such as transactions, holdings, and accounts associated with the deleted providerAccount.
    • Accounts processing –
      • The accountId and providerAccountId together will be the unique identifier of an account that can be used to perform add and update operations.
      • The isDeleted flag will be returned as true for deleted records. Using the isDeleted flag, the accounts that are deleted from the Yodlee database can be identified and the same can be deleted from your database. Ensure that you delete the transactions and holdings associated with the deleted accountId.
    • Transactions processing –
      • The transactionId for an aggregated account will be unique. The add and update operations can be performed depending on the transactionId and isManual fields.
      • The isDeleted flag will be returned as true for deleted records. Using the isDeleted flag, the transactions that are deleted from the Yodlee database can be identified and the same can be deleted from your database.
      • During the update account process, the pending transactions are deleted from the Yodlee database and a new transactions is created. The deleted transaction and the new transaction will be provided in the data extracts
    • Holdings processing –
      • The holdingId is the unique identifier of a holding. As holdings are always updated during the investment or insurance account refreshes, only the active holding records (i.e., no deleted records) will be provided in the data extracts response.
      • We recommend you to update, insert, and delete by comparing the provided holdings with your database records.
  • Process the get user data payload in the following sequential way:
    1. Process provider accounts information
    2. Process accounts information
    3. After processing provider accounts and accounts, transactions and holdings can be processed in parallel.

Notes:

Event Payload Information

The DATA_UPDATES event payload have the following structure:

{  
   "event":{  
      "info":"DATA_UPDATES.USER_DATA",
      "data":{  
         "userCount":1,
         "fromDate":"2017-11-10T10:18:44Z",
         "toDate":"2017-11-10T11:18:43Z",
         "userData":[  
            {  
               "user":{  
                  "loginName":"YSL1484052178554"
               },
               "links":[  
                  {  
                     "methodType":"GET",
                     "rel":"getUserData",
                     "href":"userData?fromDate=2017-11-10T10:18:44Z&toDate=2017-11-10T11:18:43Z&loginName=YSL1484052178554"
                  }
               ]
            }
         ]
      }
   }
}
Event Attributes Name Details
info The info attribute value will be DATA_UPDATES.USER_DATA for the data updates event.
data The data node is the payload the customer receives and is used by the developer to take relevant actions. The data attribute varies from event to event.
userCount The count of users for whom the data has changed
fromDate The dateTime from when the notification is generated
toDate The dateTime till when the notification is generated
userData The userData node contains the user and the link information
user The user node is an entity that contains information about the users.
loginName The loginName of the user for whom the data is changed.
links The links node is an entity that contains link related information
methodType The type of the method using which the service has to be invoked
rel The relationship detail of the service to be invoked
href The URL to be appended to the base URL to invoke the related service.