Introduction to Assets
Learn how to use Assets to access users' financial information for loan underwriting.
Explore API
API Reference
View Assets requests, responses, and example code
View Assets APIQuickstart
Learn about Plaid's key concepts and run starter code
Get startedPrefer to learn by watching? A video guide is available for this topic.
Overview
Assets data is used to determine whether a user has enough assets to qualify for a loan. Plaid's Assets product allows you to access a user's Asset Report via the /asset_report/get
(JSON) and /asset_report/pdf/get
(PDF) endpoints. Asset Reports are created on a per-user basis and include a snapshot of information about a user's identity, transaction history, account balances, and more.
For a fuller view of a borrower's financial situation, Assets can be used with Bank Income, which provides user-permissioned income streams derived from deposit activity.
If you need exact copies of a user's statements, see Statements (beta).
Assets flow
There are a few steps you will need to take to obtain an Asset Report for a particular user.
First, using Link, create Items for each of the user's financial institutions; in doing so, you will obtain an
access_token
for each institution. You can use these tokens to obtain an Asset Report as long as theaccess_token
was generated withassets
included in Link'sproduct
array. With Assets, the user, upon using Link to authenticate with their financial institution, will need to provide consent for Plaid to access account balances, account holder information, and transaction history for that institution. Should the user revoke access via my.plaid.com, Plaid will notify you via a webhook.Once you have the required
access_token
s, call the/asset_report/create
endpoint to create an Asset Report. Note that Asset Reports are not created instantly. When the Asset Report is ready, you will be notified via aPRODUCT_READY
webhook. If low latency is important to your use case, you can call/asset_report/create
withoptions.add_ons
set to["fast_assets"]
. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset Report.After receiving the
PRODUCT_READY
webhook, you can retrieve an Asset Report in JSON format by calling the/asset_report/get
endpoint. To retrieve an Asset Report in PDF format, call the/asset_report/pdf/get
endpoint. To retrieve an Asset Report with cleaned and categorized transactions as well as additional information about merchants and locations in JSON format, call the/asset_report/get
endpoint withinclude_insights=true
. If you enabled Fast Assets when calling/asset_report/create
, you can request the Fast version of the Asset Report by calling/asset_report/get
withfast_report=true
.Sometimes, third party auditors need to see Asset Reports to audit lenders' decision making processes. To provide an Audit Copy of an Asset Report to a requesting third party, call the
/asset_report/audit_copy/create
endpoint and provide the auditor with anaudit_copy_token
. The auditor needs to be integrated with Plaid in order to view Audit Copies. Currently, Fannie Mae, Freddie Mac, and Ocrolus are the only auditors integrated with Plaid.
1{2 "report": {3 "asset_report_id": "bf3a0490-344c-4620-a219-2693162e4b1d",4 "client_report_id": "123abc",5 "date_generated": "2020-06-05T22:47:53Z",6 "days_requested": 2,7 "items": [8 {9 "accounts": [10 {11 "account_id": "3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr",12 "balances": {13 "available": 200,14 "current": 210,15 "iso_currency_code": "USD",16 "limit": null,17 "unofficial_currency_code": null18 },19 "days_available": 2,20 "historical_balances": [21 {22 "current": 210,23 "date": "2020-06-04",24 "iso_currency_code": "USD",25 "unofficial_currency_code": null26 },27 {28 "current": 210,29 "date": "2020-06-03",30 "iso_currency_code": "USD",31 "unofficial_currency_code": null32 }33 ],34 "mask": "1111",35 "name": "Plaid Saving",36 "official_name": "Plaid Silver Standard 0.1% Interest Saving",37 "owners": [38 {39 "addresses": [40 {41 "data": {42 "city": "Malakoff",43 "country": "US",44 "postal_code": "14236",45 "region": "NY",46 "street": "2992 Cameron Road"47 },48 "primary": true49 },50 {51 "data": {52 "city": "San Matias",53 "country": "US",54 "postal_code": "93405-2255",55 "region": "CA",56 "street": "2493 Leisure Lane"57 },58 "primary": false59 }60 ],61 "emails": [62 {63 "data": "accountholder0@example.com",64 "primary": true,65 "type": "primary"66 },67 {68 "data": "extraordinarily.long.email.username.123456@reallylonghostname.com",69 "primary": false,70 "type": "other"71 }72 ],73 "names": ["Alberta Bobbeth Charleson"],74 "phone_numbers": [75 {76 "data": "1112223333",77 "primary": false,78 "type": "home"79 },80 {81 "data": "1112225555",82 "primary": false,83 "type": "mobile1"84 }85 ]86 }87 ],88 "ownership_type": null,89 "subtype": "savings",90 "transactions": [],91 "type": "depository"92 },93 {94 "account_id": "BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J",95 "balances": {96 "available": null,97 "current": 56302.06,98 "iso_currency_code": "USD",99 "limit": null,100 "unofficial_currency_code": null101 },102 "days_available": 2,103 "historical_balances": [],104 "mask": "8888",105 "name": "Plaid Mortgage",106 "official_name": null,107 "owners": [108 {109 "addresses": [110 {111 "data": {112 "city": "Malakoff",113 "country": "US",114 "postal_code": "14236",115 "region": "NY",116 "street": "2992 Cameron Road"117 },118 "primary": true119 },120 {121 "data": {122 "city": "San Matias",123 "country": "US",124 "postal_code": "93405-2255",125 "region": "CA",126 "street": "2493 Leisure Lane"127 },128 "primary": false129 }130 ],131 "emails": [132 {133 "data": "accountholder0@example.com",134 "primary": true,135 "type": "primary"136 },137 {138 "data": "extraordinarily.long.email.username.123456@reallylonghostname.com",139 "primary": false,140 "type": "other"141 }142 ],143 "names": ["Alberta Bobbeth Charleson"],144 "phone_numbers": [145 {146 "data": "1112223333",147 "primary": false,148 "type": "home"149 },150 {151 "data": "1112225555",152 "primary": false,153 "type": "mobile1"154 }155 ]156 }157 ],158 "ownership_type": null,159 "subtype": "mortgage",160 "transactions": [],161 "type": "loan"162 },163 {164 "account_id": "dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK",165 "balances": {166 "available": null,167 "current": 410,168 "iso_currency_code": "USD",169 "limit": null,170 "unofficial_currency_code": null171 },172 "days_available": 2,173 "historical_balances": [174 {175 "current": 410,176 "date": "2020-06-04",177 "iso_currency_code": "USD",178 "unofficial_currency_code": null179 },180 {181 "current": 410,182 "date": "2020-06-03",183 "iso_currency_code": "USD",184 "unofficial_currency_code": null185 }186 ],187 "mask": "3333",188 "name": "Plaid Credit Card",189 "official_name": "Plaid Diamond 12.5% APR Interest Credit Card",190 "owners": [191 {192 "addresses": [193 {194 "data": {195 "city": "Malakoff",196 "country": "US",197 "postal_code": "14236",198 "region": "NY",199 "street": "2992 Cameron Road"200 },201 "primary": true202 },203 {204 "data": {205 "city": "San Matias",206 "country": "US",207 "postal_code": "93405-2255",208 "region": "CA",209 "street": "2493 Leisure Lane"210 },211 "primary": false212 }213 ],214 "emails": [215 {216 "data": "accountholder0@example.com",217 "primary": true,218 "type": "primary"219 },220 {221 "data": "extraordinarily.long.email.username.123456@reallylonghostname.com",222 "primary": false,223 "type": "other"224 }225 ],226 "names": ["Alberta Bobbeth Charleson"],227 "phone_numbers": [228 {229 "data": "1112223333",230 "primary": false,231 "type": "home"232 },233 {234 "data": "1112225555",235 "primary": false,236 "type": "mobile1"237 }238 ]239 }240 ],241 "ownership_type": null,242 "subtype": "credit card",243 "transactions": [],244 "type": "credit"245 }246 ],247 "date_last_updated": "2020-06-05T22:47:52Z",248 "institution_id": "ins_3",249 "institution_name": "Chase",250 "item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6"251 }252 ],253 "user": {254 "client_user_id": "123456789",255 "email": "accountholder0@example.com",256 "first_name": "Alberta",257 "last_name": "Charleson",258 "middle_name": "Bobbeth",259 "phone_number": "111-222-3333",260 "ssn": "123-45-6789"261 }262 },263 "request_id": "eYupqX1mZkEuQRx",264 "warnings": []265}
The report
field of the above object contains the body of the Asset Report. This field consists of several subfields that contain information about the date and time the Asset Report was created; data submitted about the user; and information about Items, containing the user's historical balances, identity information, and more for each of the user's financial institutions. For a full explanation of the report
field and its subfields, consult the API Reference.
Assets webhooks
When you create an Asset Report, Plaid aggregates account balances, account holder identity information, and transaction history for the duration specified. If you attempt to retrieve an Asset Report before the requested data has been collected, you’ll receive a response with the HTTP status code 400 and a Plaid error code of PRODUCT_NOT_READY
.
To remove the need for polling, Plaid sends a webhook to the URL you supplied when creating the Asset Report once the Report has been generated. If generation fails, the webhook will indicate why. For examples of webhooks corresponding to successful and unsuccessful Asset Report generation, see the API Reference for Assets webhooks.
Refreshing Asset Reports
Asset Reports can either be created or removed; they cannot be updated. To retrieve up-to-date information about users' transactions and balances, call the /asset_report/refresh
endpoint. This endpoint, when used, creates a new Asset Report based on the corresponding existing Asset Report.
Getting an Asset Report for an existing Item
If your user has already connected their account to your application for a different product, you can add Assets to the existing Item via update mode.
To do so, in the /link/token/create
request described in the Assets flow, populate the access_token
field with the access token for the Item, and set the products
array to ["assets"]
. If the user connected their account less than two years ago, they can bypass the Link credentials pane and complete just the Asset Report consent step. Otherwise, they will be prompted to complete the full Link flow.
Testing Assets
Assets can be tested in Sandbox without any additional permissions. In order to test Assets against live Items in Development or Production, you will need to first request access by submitting a product access request Support ticket explaining your use case.
Plaid provides a GitHub repo with test data for testing Assets in Sandbox, beyond that provided by the default Sandbox user. For more information on configuring custom Sandbox data, see Configuring the custom user account.
Attributes library
Plaid provides a GitHub Credit attributes library with Python scripts that can be used to derive various useful information from Asset Reports.
Next steps
To learn more about building with Assets, see Create an Asset Report and the API Reference.
For a more detailed overview of the steps involved in creating a full implementation of Plaid Assets, see the Plaid Assets Solution Guide.
If you're ready to launch to Production, see the Launch checklist.