Introduction to Assets
Learn how to use Assets to access users' financial information for loan underwriting.
API Reference
View Assets requests, responses, and example code
View Assets APIQuickstart
Learn about Plaid's key concepts and run starter code
Get startedAssets Demo
Try a live Assets verification experience
Try the demoOverview
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.
Assets is a product of Plaid Inc., which is not a consumer reporting agency. To learn more about products offered by Plaid Consumer Reporting Agency, Inc., see Plaid Check.
Assets flow
There are a few steps you will need to take to obtain an Asset Report for a particular user.
First, using the Link flow, 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": "ebb8f490-8f45-4c93-a6c3-5801bf92c3ff",4 "client_report_id": null,5 "date_generated": "2023-12-18T07:20:25Z",6 "days_requested": 2,7 "items": [8 {9 "accounts": [10 {11 "account_id": "1Gd3X8NmgLFVn47RorabTJ7Bvy8vBqfpaG5Ky",12 "balances": {13 "available": null,14 "current": 320.76,15 "iso_currency_code": "USD",16 "limit": null,17 "unofficial_currency_code": null18 },19 "days_available": 0,20 "historical_balances": [],21 "mask": "5555",22 "name": "Plaid IRA",23 "official_name": null,24 "owners": [25 {26 "addresses": [27 {28 "data": {29 "city": "Malakoff",30 "country": "US",31 "postal_code": "14236",32 "region": "NY",33 "street": "2992 Cameron Road"34 },35 "primary": true36 }37 ],38 "emails": [39 {40 "data": "accountholder0@example.com",41 "primary": true,42 "type": "primary"43 }44 ],45 "names": [46 "Alberta Bobbeth Charleson"47 ],48 "phone_numbers": [49 {50 "data": "1112225555",51 "primary": false,52 "type": "mobile"53 }54 ]55 }56 ],57 "ownership_type": null,58 "subtype": "ira",59 "transactions": [],60 "type": "investment"61 },62 {63 "account_id": "7B73zkZlnLfeWMvkAlxpslbR4PM4RECdaKgll",64 "balances": {65 "available": 100,66 "current": 110,67 "iso_currency_code": "USD",68 "limit": null,69 "unofficial_currency_code": null70 },71 "days_available": 2,72 "historical_balances": [73 {74 "current": 110,75 "date": "2023-12-17",76 "iso_currency_code": "USD",77 "unofficial_currency_code": null78 },79 {80 "current": 116.33,81 "date": "2023-12-16",82 "iso_currency_code": "USD",83 "unofficial_currency_code": null84 }85 ],86 "mask": "0000",87 "name": "Plaid Checking",88 "official_name": "Plaid Gold Standard 0% Interest Checking",89 "owners": [90 {91 "addresses": [92 {93 "data": {94 "city": "Malakoff",95 "country": "US",96 "postal_code": "14236",97 "region": "NY",98 "street": "2992 Cameron Road"99 },100 "primary": true101 },102 {103 "data": {104 "city": "San Matias",105 "country": "US",106 "postal_code": "93405-2255",107 "region": "CA",108 "street": "2493 Leisure Lane"109 },110 "primary": false111 }112 ],113 "emails": [114 {115 "data": "accountholder0@example.com",116 "primary": true,117 "type": "primary"118 }119 ],120 "names": [121 "Alberta Bobbeth Charleson"122 ],123 "phone_numbers": [124 {125 "data": "1112223333",126 "primary": false,127 "type": "home"128 }129 ]130 }131 ],132 "ownership_type": null,133 "subtype": "checking",134 "transactions": [135 {136 "account_id": "7B73zkZlnLfeWMvkAlxpslbR4PM4RECdaKgll",137 "amount": 6.33,138 "date": "2023-12-09",139 "iso_currency_code": "USD",140 "original_description": "Uber 072515 SF**POOL**",141 "pending": false,142 "transaction_id": "mqdZ1xRbjau73pER6NrPSZQXZKQdN8CgLKrXA",143 "unofficial_currency_code": null144 }145 ],146 "type": "depository"147 }148 ],149 "date_last_updated": "2023-12-18T07:16:21Z",150 "institution_id": "ins_3",151 "institution_name": "Chase",152 "item_id": "KEv98XqZ7yudGRpDqaxJsZ3PKDGzR8CRM13nr"153 }154 ],155 "user": {156 "client_user_id": null,157 "email": null,158 "first_name": null,159 "last_name": null,160 "middle_name": null,161 "phone_number": null,162 "ssn": null163 }164 },165 "request_id": "AYRjla7HgW4nKM9",166 "warnings": []167}
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.
Financial Account Matching
If you are already using Identity Verification, you can enhance your verification process by enabling Financial Account Matching in your Identity Verification template.
This feature allows you to compare the data collected during KYC with the bank account data collected when creating an Asset Report.
To ensure accurate matching, it's important to maintain consistency in the client_user_id
used for end users across all products.
Financial Insights Reports (UK/EU only)
In the UK and EU, the Financial Insights Report, including risk and affordability insights, is available as an optional add-on to Assets. Risk insights provides details on instances of potential risks such as loan disbursements, loan payments, gambling, bank penalties, and negative balances. Affordability insights provides insights based on spending / income ratios, considering factors such as essential vs. non-essential spend and other financial commitments.
Like Asset Reports, Financial Insights Reports are available in both JSON and PDF format. View a sample Financial Insights Report (UK/EU only) PDF.
To learn more about Financial Insights Reports or to request pricing details, contact Sales or your Plaid Account Manager.
Testing Assets
Assets can be tested in Sandbox without any additional permissions and can be tested in Limited Production once your Production request is approved.
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.
Assets pricing
Assets is billed on a flexible fee model; the cost will depend on the number of Items in the Asset Report (there is an additional cost for Asset Reports with more than 5 Items), as well as whether Additional History (over 61 days of history) has been requested for the report. Audit copies and PDF Asset Reports are billed based on a per-request model. To view the exact pricing you may be eligible for, apply for Production access or contact Sales. For more details about pricing and billing models, see Plaid billing.
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.