Plaid logo
Docs
ALL DOCS

Assets

  • Introduction to Assets
  • Create an Asset Report
  • Assets partners
  • Product waitlist
Plaid logo
Docs
Plaid.com
Get API keys
Open nav

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 API

Quickstart

Learn about Plaid's key concepts and run starter code

Get started

Prefer 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.

Assets flow

There are a few steps you will need to take to obtain an Asset Report for a particular user.

  1. 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 the access_token was generated with assets included in Link's product 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.

  2. Once you have the required access_tokens, call the /asset_report/create endpoint to create an Asset Report. Note that Asset Reports are not created instantly.

  3. To retrieve an Asset Report in JSON format, call the /asset_report/get endpoint. To retrieve an Asset Report in PDF format, call the /asset_report/pdf/get endpoint. Note that Asset Reports are not created instantly; listen to assets webhooks to be notified when a requested Asset Report is ready. 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 with include_insights=true.

  4. 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 an audit_copy_token. The auditor needs to be integrated with Plaid in order to view Audit Copies. Currently, Fannie Mae and Ocrolus are the only auditors integrated with Plaid.

Copy
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": null
18 },
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": null
26 },
27 {
28 "current": 210,
29 "date": "2020-06-03",
30 "iso_currency_code": "USD",
31 "unofficial_currency_code": null
32 }
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": true
49 },
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": false
59 }
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": null
101 },
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": true
119 },
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": false
129 }
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": null
171 },
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": null
179 },
180 {
181 "current": 410,
182 "date": "2020-06-03",
183 "iso_currency_code": "USD",
184 "unofficial_currency_code": null
185 }
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": true
202 },
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": false
212 }
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.

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.

Launch checklist

Recommended steps to take before launching in Production

Launch
Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord