Plaid Check
API reference for Plaid Check endpoints and webhooks
| Endpoints | |
|---|---|
/cra/check_report/base_report/get | Retrieve the base Consumer Report for your user |
/cra/check_report/income_insights/get | Retrieve cash flow insights from your user's banks |
/cra/check_report/network_insights/get | Retrieve connection insights from the Plaid network (beta) |
/cra/check_report/partner_insights/get | Retrieve cash flow insights from our partners |
/cra/check_report/pdf/get | Retrieve Consumer Reports in PDF format |
/cra/check_report/cashflow_insights/get | Retrieve Cash Flow Insights report |
/cra/check_report/lend_score/get | Retrieve a Plaid LendScore generated from your user's banking data |
/cra/check_report/verification/get | Retrieve Verification Reports (Home Lending Report, Employment Refresh) for your user |
/cra/check_report/verification/pdf/get | Retrieve Verification Reports in PDF format |
/cra/check_report/create | Generate a new Consumer Report for your user with the latest data |
/cra/monitoring_insights/get | Get Cash Flow Updates (beta) |
/cra/monitoring_insights/subscribe | Subscribe to Cash Flow Updates (beta) |
/cra/monitoring_insights/unsubscribe | Unsubscribe from Cash Flow Updates (beta) |
| See also | |
|---|---|
/link/token/create | Create a token for initializing a Link session with Plaid Check |
/user/create | Create a user ID and token for use with Plaid Check |
/user/update | Update an existing user token to work with Plaid Check, or change user details |
/user/remove | Removes the user and their relevant data |
/user/items/get | Returns Items associated with a user along with their corresponding statuses |
/sandbox/cra/cashflow_updates/update | Manually trigger a cashflow insights update for a user (Sandbox only) |
| Webhooks | |
|---|---|
USER_CHECK_REPORT_READY | A Consumer Report is ready to be retrieved |
USER_CHECK_REPORT_FAILED | Plaid Check failed to create a report |
CHECK_REPORT_READY | A Consumer Report is ready to be retrieved (legacy) |
CHECK_REPORT_FAILED | Plaid Check failed to create a report (legacy) |
| Cash Flow Updates (beta) webhooks | |
|---|---|
CASH_FLOW_INSIGHTS_UPDATED | Insights have been refreshed |
INSIGHTS_UPDATED | Insights have been refreshed (legacy) |
LARGE_DEPOSIT_DETECTED | A large deposit over $5000 has been detected (legacy) |
LOW_BALANCE_DETECTED | Current balance has crossed below $100 (legacy) |
NEW_LOAN_PAYMENT_DETECTED | A new loan payment has been detected (legacy) |
NSF_OVERDRAFT_DETECTED | An overdraft transaction has been detected (legacy) |
/cra/check_report/base_report/get
Retrieve a Base Report
This endpoint allows you to retrieve the Base Report for your user, allowing you to receive comprehensive bank account and cash flow data. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn't have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.user_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craCheckReportBaseReportGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time date-time item_id of the Item associated with this webhook, warning, or erroraccount_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.For
credit-type accounts, the available balance typically equals the limit less the current balance, less any pending outflows plus any pending inflows.For
depository-type accounts, the available balance typically equals the current balance less any pending outflows plus any pending inflows. For depository-type accounts, the available balance does not include the overdraft limit.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the available balance is the total cash available to withdraw as presented by the institution.Note that not all institutions calculate the
available balance. In the event that available balance is unavailable, Plaid will return an available balance value of null.Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by
/accounts/balance/get.If
current is null this field is guaranteed not to be null.double For
credit-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.For
loan-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (ins_116944). For Sallie Mae student loans, the account's balance includes both principal and any outstanding interest.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.Note that balance information may be cached unless the value was returned by
/accounts/balance/get; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the available balance as provided by /accounts/balance/get.When returned by
/accounts/balance/get, this field may be null. When this happens, available is guaranteed not to be null.double credit-type accounts, this represents the credit limit.For
depository-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.In North America, this field is typically only available for
credit-type accounts.double unofficial_currency_code is non-null.iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.YYYY-MM-DDTHH:mm:ssZ) indicating the oldest acceptable balance when making a request to /accounts/balance/get.This field is only used and expected when the institution is
ins_128026 (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an INVALID_REQUEST error with the code of INVALID_FIELD will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See account type schema for a full list of account types.If the balance that is pulled is older than the given timestamp for Items with this field required, an
INVALID_REQUEST error with the code of LAST_UPDATED_DATETIME_OUT_OF_RANGE will be returned with the most recent timestamp for the requested account contained in the response.date-time double iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.double date TRANSACTION, BALANCE, IDENTITY, OTHERinvestment: Investment account. In API versions 2018-05-22 and earlier, this type is called brokerage instead.credit: Credit carddepository: Depository accountloan: Loan accountother: Non-specified account typeSee the Account type schema for a full listing of account types and corresponding subtypes.
investment, credit, depository, loan, brokerage, other401a, 401k, 403B, 457b, 529, auto, brokerage, business, cash isa, cash management, cd, checking, commercial, construction, consumer, credit card, crypto exchange, ebt, education savings account, fixed annuity, gic, health reimbursement arrangement, home equity, hsa, isa, ira, keogh, lif, life insurance, line of credit, lira, loan, lrif, lrsp, money market, mortgage, mutual fund, non-custodial wallet, non-taxable brokerage account, other, other insurance, other annuity, overdraft, paypal, payroll, pension, prepaid, prif, profit sharing plan, rdsp, resp, retirement, rlif, roth, roth 401k, rrif, rrsp, sarsep, savings, sep ira, simple ira, sipp, stock plan, student, thrift savings plan, tfsa, trust, ugma, utma, variable annuity/transactions/get or /investments/transactions/get will be returned in the top-level transactions field instead. Some transactions may have their details masked in accordance to FCRA.iso_currency_code or unofficial_currency_code. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.double null if unofficial_currency_code is non-null.null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.See the
taxonomy csv file for a full list of credit categories.YYYY-MM-DD ).date state.zip.double double name field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be null.true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.transaction_id is case sensitive.owner object, not in multiple owner objects within the array. This array can also be empty if no owners are found.If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's
names array.true, identifies the phone number as the primary number on an account.home, work, office, mobile, mobile1, othertrue, identifies the email address as the primary email on an account.primary, secondary, otherstate.
Example: "NC""564 Main Street, APT 15"zip.true, identifies the address as the primary address on an account.association: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations.
individual: Ownership by an individual.
joint: Joint ownership by multiple parties.
trust: Ownership by a revocable or irrevocable trust.null, individual, joint, association, trustdate date date date date date date date iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date date date date iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.BASE_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The User has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Note: when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"report": {
"date_generated": "2024-07-16T01:52:42.912331716Z",
"days_requested": 365,
"attributes": {
"total_inflow_amount": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_30d": {
"amount": -1000,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_60d": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_90d": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_30d": {
"amount": 1000,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_60d": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_90d": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
},
"items": [
{
"accounts": [
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_insights": {
"average_days_between_transactions": 0.15,
"average_inflow_amount": [
{
"end_date": "2024-07-31",
"start_date": "2024-07-01",
"total_amount": {
"amount": 1077.93,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
}
],
"average_inflow_amounts": [
{
"end_date": "2024-07-31",
"start_date": "2024-07-01",
"total_amount": {
"amount": 1077.93,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
},
{
"end_date": "2024-08-31",
"start_date": "2024-08-01",
"total_amount": {
"amount": 1076.93,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
}
],
"average_outflow_amount": [
{
"end_date": "2024-07-31",
"start_date": "2024-07-01",
"total_amount": {
"amount": 34.95,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
}
],
"average_outflow_amounts": [
{
"end_date": "2024-07-31",
"start_date": "2024-07-01",
"total_amount": {
"amount": 34.95,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
},
{
"end_date": "2024-08-31",
"start_date": "2024-08-01",
"total_amount": {
"amount": 0,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
}
],
"days_available": 365,
"longest_gap_between_transactions": [
{
"days": 1,
"end_date": "2024-07-31",
"start_date": "2024-07-01"
}
],
"longest_gaps_between_transactions": [
{
"days": 1,
"end_date": "2024-07-31",
"start_date": "2024-07-01"
},
{
"days": 2,
"end_date": "2024-08-31",
"start_date": "2024-08-01"
}
],
"most_recent_transaction_date": "2024-07-16",
"number_of_days_no_transactions": 0,
"number_of_inflows": [
{
"count": 1,
"end_date": "2024-07-31",
"start_date": "2024-07-01"
}
],
"number_of_outflows": [
{
"count": 27,
"end_date": "2024-07-31",
"start_date": "2024-07-01"
}
],
"oldest_transaction_date": "2024-07-12"
},
"balances": {
"available": 5000,
"average_balance": 4956.12,
"average_monthly_balances": [
{
"average_balance": {
"amount": 4956.12,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"end_date": "2024-07-31",
"start_date": "2024-07-01"
}
],
"current": 5000,
"iso_currency_code": "USD",
"limit": null,
"most_recent_thirty_day_average_balance": 4956.125,
"unofficial_currency_code": null
},
"consumer_disputes": [],
"days_available": 365,
"mask": "1208",
"metadata": {
"start_date": "2024-01-01",
"end_date": "2024-07-16"
},
"name": "Checking",
"official_name": "Plaid checking",
"owners": [
{
"addresses": [
{
"data": {
"city": "Malakoff",
"country": "US",
"postal_code": "14236",
"region": "NY",
"street": "2992 Cameron Road"
},
"primary": true
},
{
"data": {
"city": "San Matias",
"country": "US",
"postal_code": "93405-2255",
"region": "CA",
"street": "2493 Leisure Lane"
},
"primary": false
}
],
"emails": [
{
"data": "[email protected]",
"primary": true,
"type": "primary"
},
{
"data": "[email protected]",
"primary": false,
"type": "secondary"
},
{
"data": "extraordinarily.long.email.username.123456@reallylonghostname.com",
"primary": false,
"type": "other"
}
],
"names": [
"Alberta Bobbeth Charleson"
],
"phone_numbers": [
{
"data": "+1 111-555-3333",
"primary": false,
"type": "home"
},
{
"data": "+1 111-555-4444",
"primary": false,
"type": "work"
},
{
"data": "+1 111-555-5555",
"primary": false,
"type": "mobile"
}
]
}
],
"ownership_type": null,
"subtype": "checking",
"transactions": [
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 37.07,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "XA7ZLy8rXzt7D3j9B6LMIgv5VxyQkAhbKjzmp",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 51.61,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Domino's",
"original_description": "DOMINO's XXXX 111-222-3333",
"pending": false,
"transaction_id": "VEPeMbWqRluPVZLQX4MDUkKRw41Ljzf9gyLBW",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 7.55,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Chicago",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "IKEA",
"original_description": "IKEA CHICAGO",
"pending": false,
"transaction_id": "6GQZARgvroCAE1eW5wpQT7w3oB6nvzi8DKMBa",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 12.87,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_SPORTING_GOODS",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Redlands",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Nike",
"original_description": "NIKE REDLANDS CA",
"pending": false,
"transaction_id": "DkbmlP8BZxibzADqNplKTeL8aZJVQ1c3WR95z",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 44.21,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "RpdN7W8GmRSdjZB9Jm7ATj4M86vdnktapkrgL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 36.82,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_DISCOUNT_STORES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Family Dollar",
"original_description": "FAMILY DOLLAR",
"pending": false,
"transaction_id": "5AeQWvo5KLtAD9wNL68PTdAgPE7VNWf5Kye1G",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 13.27,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "Jjlr3MEVg1HlKbdkZj39ij5a7eg9MqtB6MWDo",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 36.03,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "kN9KV7yAZJUMPn93KDXqsG9MrpjlyLUL6Dgl8",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 54.74,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "lPvrweZAMqHDar43vwWKs547kLZVEzfpogGVJ",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 37.5,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": "1627 N 24th St",
"city": "Phoenix",
"country": null,
"lat": null,
"lon": null,
"postal_code": "85008",
"region": "AZ",
"state": "AZ",
"store_number": null,
"zip": "85008"
},
"merchant_name": "Taqueria El Guerrerense",
"original_description": "TAQUERIA EL GUERRERO PHOENIX AZ",
"pending": false,
"transaction_id": "wka74WKqngiyJ3pj7dl5SbpLGQBZqyCPZRDbP",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 41.42,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "BBGnV4RkerHjn8WVavGyiJbQ95VNDaC4M56bJ",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": -1077.93,
"check_number": null,
"credit_category": {
"detailed": "INCOME_OTHER",
"primary": "INCOME"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Lyft",
"original_description": "LYFT TRANSFER",
"pending": false,
"transaction_id": "3Ej78yKJlQu1Abw7xzo4U4JR6pmwzntZlbKDK",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 47.17,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "rMzaBpJw8jSZRJQBabKdteQBwd5EaWc7J9qem",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 12.37,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "zWPZjkmzynTyel89ZjExS59DV6WAaZflNBJ56",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 44.18,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "K7qzx1nP8ptqgwaRMbxyI86XrqADMluRpkWx5",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 45.37,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Uber Eats",
"original_description": "UBER EATS",
"pending": false,
"transaction_id": "qZrdzLRAgNHo5peMdD9xIzELl3a1NvcgrPAzL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 15.22,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "NZzx4oRPkAHzyRekpG4PTZkWnBPqEyiy6pB1M",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 26.33,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Domino's",
"original_description": "DOMINO's XXXX 111-222-3333",
"pending": false,
"transaction_id": "x84eNArKbESz8Woden6LT3nvyogeJXc64Pp35",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 39.8,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_DISCOUNT_STORES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Family Dollar",
"original_description": "FAMILY DOLLAR",
"pending": false,
"transaction_id": "dzWnyxwZ4GHlZPGgrNyxiMG7qd5jDgCJEz5jL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 45.06,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "4W7eE9rZqMToDArbPeLNIREoKpdgBMcJbVNQD",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 34.91,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "j4yqDjb7QwS7woGzqrgDIEG1NaQVZwf6Wmz3D",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 49.78,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "aqgWnze7xoHd6DQwLPnzT5dgPKjB1NfZ5JlBy",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 54.24,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "P13aP8b7nmS3WQoxg1PMsdvMK679RNfo65B4G",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 41.79,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "7nZMG6pXz8SADylMqzx7TraE4qjJm7udJyAGm",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 33.86,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "MQr3ap7PWEIrQG7bLdaNsxyBV7g1KqCL6pwoy",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 27.08,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "eBAk9dvwNbHPZpr8W69dU3rekJz47Kcr9BRwl",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 25.94,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "The Home Depot",
"original_description": "THE HOME DEPOT",
"pending": false,
"transaction_id": "QLx4jEJZb9SxRm7aWbjAio3LrgZ5vPswm64dE",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 27.57,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_OTHER_GENERAL_MERCHANDISE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "The Press Club",
"pending": false,
"transaction_id": "ZnQ1ovqBldSQ6GzRbroAHLdQP68BrKceqmAjX",
"unofficial_currency_code": null
}
],
"type": "depository"
}
],
"date_last_updated": "2024-07-16T01:52:42.912331716Z",
"institution_id": "ins_109512",
"institution_name": "Houndstooth Bank",
"item_id": "NZzx4oRPkAHzyRekpG4PTZkDNkQW93tWnyGeA"
}
],
"report_id": "f3bb434f-1c9b-4ef2-b76c-3d1fd08156ec"
},
"warnings": [],
"request_id": "FibfL8t3s71KJnj"
}/cra/check_report/income_insights/get
Retrieve cash flow information from your user's banks
This endpoint allows you to retrieve the Income Insights report for your user. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.user_token field. All other customers should use the user_id instead. For more details, see New User APIs./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.try {
const response = await client.craCheckReportIncomeInsightsGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time item_id of the Item associated with this webhook, warning, or erroraccount_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.checking, savings, hsa, cd, money market, paypal, prepaid, cash management, ebt, alldepository.depositoryreport_id is created, the new report will have a new set of income_source_ids.BANK_INTEREST: Interest earned from a bank account.
BENEFIT_OTHER: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments.
CASH: Deprecated and used only for existing legacy implementations. Has been replaced by CASH_DEPOSIT and TRANSFER_FROM_APPLICATION.
CASH_DEPOSIT: A cash or check deposit.
CHILD_SUPPORT: Child support payments received.
GIG_ECONOMY: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc.
LONG_TERM_DISABILITY: Disability payments, including Social Security disability benefits.
OTHER: Income that could not be categorized as any other income category.
MILITARY: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as SALARY rather than MILITARY.
RENTAL: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income.
RETIREMENT: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits.
SALARY: Payment from an employer to an earner or other form of permanent employment.
TAX_REFUND: A tax refund.
TRANSFER_FROM_APPLICATION: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle.
UNEMPLOYMENT: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.SALARY, UNEMPLOYMENT, CASH, GIG_ECONOMY, RENTAL, CHILD_SUPPORT, MILITARY, RETIREMENT, LONG_TERM_DISABILITY, BANK_INTEREST, CASH_DEPOSIT, TRANSFER_FROM_APPLICATION, TAX_REFUND, BENEFIT_OTHER, OTHERdate date WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, DAILY, UNKNOWNnull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date ACTIVE: The income source is active.
INACTIVE: The income source is inactive.
UNKNOWN: The income source status is unknown.ACTIVE, INACTIVE, UNKNOWNnull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date date transaction_id is case sensitive.iso_currency_code or unofficial_currency_code.
Positive values when money moves out of the account; negative values when money moves in.
For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.date merchant_name field; for description, use the original_description field.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.BONUS_INCLUDED: Bonus is included in this transaction along with the normal pay
BONUS_ONLY: This transaction is a standalone bonusBONUS_INCLUDED, BONUS_ONLY, nulldate-time null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date date null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.historical_average_monthly_gross_income by 12.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.historical_average_monthly_income by 12.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date date transaction_id is case sensitive.iso_currency_code or unofficial_currency_code.
Positive values when money moves out of the account; negative values when money moves in.
For example, credit card purchases are positive; credit card payment, direct deposits, and refunds are negative.date merchant_name field; for description, use the original_description field.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.BONUS_INCLUDED: Bonus is included in this transaction along with the normal pay
BONUS_ONLY: This transaction is a standalone bonusBONUS_INCLUDED, BONUS_ONLY, nullBANK_INCOME_WARNING.BANK_INCOME_WARNINGIDENTITY_UNAVAILABLE: Unable to extract identity for the Item
TRANSACTIONS_UNAVAILABLE: Unable to extract transactions for the Item
REPORT_DELETED: Report deleted due to customer or consumer request
DATA_UNAVAILABLE: No relevant data was found for the ItemIDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, REPORT_DELETED, DATA_UNAVAILABLEitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INTERNAL_SERVER_ERROR, INSUFFICIENT_CREDENTIALS, ITEM_LOCKED, USER_SETUP_REQUIRED, COUNTRY_NOT_SUPPORTED, INSTITUTION_DOWN, INSTITUTION_NO_LONGER_SUPPORTED, INSTITUTION_NOT_RESPONDING, INVALID_CREDENTIALS, INVALID_MFA, INVALID_SEND_METHOD, ITEM_LOGIN_REQUIRED, MFA_NOT_SUPPORTED, NO_ACCOUNTS, ITEM_NOT_SUPPORTED, ACCESS_NOT_GRANTEDerror_type. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. Error fields will be null if no error has occurred.CHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "bbfc5174-5433-4648-8d93-9fec6a0c0966",
"generated_time": "2022-01-31T22:47:53Z",
"days_requested": 365,
"items": [
{
"item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7",
"last_updated_time": "2022-01-31T22:47:53Z",
"institution_id": "ins_0",
"institution_name": "Plaid Bank",
"bank_income_accounts": [
{
"account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
"mask": "8888",
"metadata": {
"start_date": "2024-01-01",
"end_date": "2024-07-16"
},
"name": "Plaid Checking Account",
"official_name": "Plaid Checking Account",
"type": "depository",
"subtype": "checking",
"owners": []
}
],
"bank_income_sources": [
{
"account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
"income_source_id": "f17efbdd-caab-4278-8ece-963511cd3d51",
"income_description": "PLAID_INC_DIRECT_DEP_PPD",
"income_category": "SALARY",
"start_date": "2021-11-15",
"end_date": "2022-01-15",
"pay_frequency": "MONTHLY",
"total_amount": 300,
"iso_currency_code": "USD",
"unofficial_currency_code": null,
"transaction_count": 1,
"next_payment_date": "2022-12-15",
"status": "ACTIVE",
"historical_average_monthly_gross_income": 390,
"historical_average_monthly_income": 300,
"forecasted_average_monthly_income": 300,
"forecasted_average_monthly_income_prediction_intervals": [
{
"lower_bound": 200,
"upper_bound": 400,
"probability": 0.8
}
],
"employer": {
"name": "Plaid Inc"
},
"income_provider": {
"name": "Plaid Inc",
"is_normalized": true
},
"historical_summary": [
{
"start_date": "2021-11-02",
"end_date": "2021-11-30",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5",
"amount": 100,
"bonus_type": null,
"date": "2021-11-15",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123A",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
},
{
"start_date": "2021-12-01",
"end_date": "2021-12-31",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1",
"amount": 100,
"bonus_type": null,
"date": "2021-12-15",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123B",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
},
{
"start_date": "2022-01-01",
"end_date": "2022-01-31",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4",
"amount": 100,
"bonus_type": null,
"date": "2022-01-31",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123C",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
}
]
}
]
}
],
"bank_income_summary": {
"total_amounts": [
{
"amount": 300,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"start_date": "2021-11-15",
"end_date": "2022-01-15",
"income_sources_count": 1,
"income_categories_count": 1,
"income_transactions_count": 1,
"historical_average_monthly_gross_income": [
{
"amount": 390,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"historical_average_monthly_income": [
{
"amount": 300,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"forecasted_average_monthly_income": [
{
"amount": 300,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"historical_annual_gross_income": [
{
"amount": 4680,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"historical_annual_income": [
{
"amount": 3600,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"forecasted_annual_income": [
{
"amount": 3600,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"historical_summary": [
{
"start_date": "2021-11-02",
"end_date": "2021-11-30",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "aH5klwqG3B19OMT7D6F24Syv8pdnJXmtZoKQ5",
"amount": 100,
"bonus_type": null,
"date": "2021-11-15",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123A",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
},
{
"start_date": "2021-12-01",
"end_date": "2021-12-31",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "mN3rQ5iH8BC41T6UjKL9oD2vWJpZqXFomGwY1",
"amount": 100,
"bonus_type": null,
"date": "2021-12-15",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123B",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
},
{
"start_date": "2022-01-01",
"end_date": "2022-01-31",
"total_amounts": [
{
"amount": 100,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"transactions": [
{
"transaction_id": "zK9lDoR8uBH51PNQ3W4T6Mjy2VFXpGtJwsL4",
"amount": 100,
"bonus_type": null,
"date": "2022-01-31",
"name": "PLAID_INC_DIRECT_DEP_PPD",
"original_description": "PLAID_INC_DIRECT_DEP_PPD 123C",
"pending": false,
"check_number": null,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
]
}
],
"warnings": []
}
}
}/cra/check_report/network_insights/get
Retrieve network attributes for the user
This endpoint allows you to retrieve the Network Insights product for your user. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
If you did not initialize Link with the cra_network_attributes product or have generated a report using /cra/check_report/create, Plaid will generate the attributes when you call this endpoint.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.NI1user_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craCheckReportNetworkInsightsGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time CHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "ee093cb0-e3f2-42d1-9dbc-8d8408964194",
"generated_time": "2022-01-31T22:47:53Z",
"network_attributes": {
"plaid_conn_user_lifetime_lending_count": 5,
"plaid_conn_user_lifetime_personal_lending_flag": 1,
"plaid_conn_user_lifetime_cash_advance_primary_count": 0
},
"items": [
{
"institution_id": "ins_0",
"institution_name": "Plaid Bank",
"item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7"
}
]
}
}/cra/check_report/partner_insights/get
Retrieve cash flow insights from partners
This endpoint allows you to retrieve the Partner Insights report for your user. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn’t have sufficient data to generate the base report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
If you did not initialize Link with the credit_partner_insights product or have generated a report using /cra/check_report/create, we will call our partners to generate the insights when you call this endpoint. In this case, you may optionally provide parameters under options to configure which insights you want to receive.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.user_token field. All other customers should use the user_id instead. For more details, see New User APIs.3, null4, null4, 3, null4, null4, 3, nulltry {
const response = await client.craCheckReportPartnerInsightsGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time model_version.model_version.account_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.checking, savings, hsa, cd, money market, paypal, prepaid, cash management, ebt, alldepository.depositoryCHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
"client_report_id": "client_report_id_1221",
"generated_time": "2022-01-31T22:47:53Z",
"items": [
{
"institution_id": "ins_109508",
"institution_name": "Plaid Bank",
"item_id": "Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr",
"accounts": [
{
"account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
"mask": "8888",
"metadata": {
"start_date": "2022-01-01",
"end_date": "2022-01-31"
},
"name": "Plaid Checking Account",
"official_name": "Plaid Checking Account",
"type": "depository",
"subtype": "checking",
"owners": []
}
]
}
],
"prism": {
"insights": {
"version": 3,
"result": {
"l6m_cumbal_acc": 1
}
},
"cash_score": {
"version": 3,
"model_version": "3",
"score": 900,
"reason_codes": [
"CS03038"
],
"metadata": {
"max_age": 20,
"min_age": 1,
"min_age_credit": 0,
"min_age_debit": 1,
"max_age_debit": 20,
"max_age_credit": 0,
"num_trxn_credit": 0,
"num_trxn_debit": 40,
"l1m_credit_value_cnt": 0,
"l1m_debit_value_cnt": 40
}
},
"first_detect": {
"version": 3,
"model_version": "3",
"score": 900,
"reason_codes": [
"CS03038"
],
"metadata": {
"max_age": 20,
"min_age": 1,
"min_age_credit": 0,
"min_age_debit": 1,
"max_age_debit": 20,
"max_age_credit": 0,
"num_trxn_credit": 0,
"num_trxn_debit": 40,
"l1m_credit_value_cnt": 0,
"l1m_debit_value_cnt": 40
}
},
"status": "SUCCESS"
}
}
}/cra/check_report/pdf/get
Retrieve Consumer Reports as a PDF
/cra/check_report/pdf/get retrieves the most recent Consumer Report in PDF format. By default, the most recent Base Report (if it exists) for the user will be returned. To request that the most recent Partner Insights or Income Insights report be included in the PDF as well, use the add-ons field.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.cra_income_insights, cra_partner_insightsuser_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craCheckReportPDFGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
const pdf = response.buffer.toString('base64');
} catch (error) {
// handle error
}
Response
This endpoint returns binary PDF data. View a sample Check Report PDF. View a sample Check Report PDF containing Income Insights.
/cra/check_report/cashflow_insights/get
Retrieve cash flow insights from your user's banking data
This endpoint allows you to retrieve the Cashflow Insights report for your user. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
If you did not initialize Link with the cra_cashflow_insights product or have generated a report using /cra/check_report/create, we will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under options to configure which insights you want to receive.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.user_token field. All other customers should use the user_id instead. For more details, see New User APIs.CFI1try {
const response = await client.craCheckReportCashflowInsightsGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time CHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
"generated_time": "2022-01-31T22:47:53Z",
"attributes": {
"cash_reliance_atm_withdrawal_amt_cv_90d": 180.1
}
}
}/cra/check_report/lend_score/get
Retrieve the LendScore from your user's banking data
This endpoint allows you to retrieve the LendScore report for your user. You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create. If the most recent consumer report for the user doesn’t have sufficient data to generate the insights, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create.
If you did not initialize Link with the cra_lend_score product or call /cra/check_report/create with the cra_lend_score product, Plaid will generate the insights when you call this endpoint. In this case, you may optionally provide parameters under options to configure which insights you want to receive.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.user_token field. All other customers should use the user_id instead. For more details, see New User APIs.LS1try {
const response = await client.craCheckReportLendScoreGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
});
} catch (error) {
// handle error
}
Response fields
date-time CHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
"generated_time": "2022-01-31T22:47:53Z",
"lend_score": {
"score": 80,
"reason_codes": [
"Bank Balance Volatility"
]
}
}
}/cra/check_report/verification/get
Retrieve various home lending reports for a user.
This endpoint allows you to retrieve home lending reports for a user. To obtain a VoA or Employment Refresh report, you need to make sure that cra_base_report is included in the products parameter when calling /link/token/create or /cra/check_report/create.
You should call this endpoint after you've received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook, either after the Link session for the user or after calling /cra/check_report/create.
If the most recent consumer report for the user doesn’t have sufficient data to generate the report, or the consumer report has expired, you will receive an error indicating that you should create a new consumer report by calling /cra/check_report/create."
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.VOA, EMPLOYMENT_REFRESH731 user_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craCheckReportVerificationGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
reports_requested: ['VOA', 'EMPLOYMENT_REFRESH'],
employment_refresh_options: {
days_requested: 60,
},
});
} catch (error) {
// handle error
}
Response fields
date-time account_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.For
credit-type accounts, the available balance typically equals the limit less the current balance, less any pending outflows plus any pending inflows.For
depository-type accounts, the available balance typically equals the current balance less any pending outflows plus any pending inflows. For depository-type accounts, the available balance does not include the overdraft limit.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the available balance is the total cash available to withdraw as presented by the institution.Note that not all institutions calculate the
available balance. In the event that available balance is unavailable, Plaid will return an available balance value of null.Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by
/accounts/balance/get.If
current is null this field is guaranteed not to be null.double For
credit-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.For
loan-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (ins_116944). For Sallie Mae student loans, the account's balance includes both principal and any outstanding interest.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.Note that balance information may be cached unless the value was returned by
/accounts/balance/get; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the available balance as provided by /accounts/balance/get.When returned by
/accounts/balance/get, this field may be null. When this happens, available is guaranteed not to be null.double unofficial_currency_code is non-null.iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.Available for
credit and depository type accounts.current balance in the balance object by subtracting inflows and adding back outflows according to the posted date of each transaction.double null if unofficial_currency_code is non-null.null if iso_currency_code is non-null.See the currency code schema for a full listing of supported
unofficial_currency_codes.double double date TRANSACTION, BALANCE, IDENTITY, OTHERinvestment: Investment account. In API versions 2018-05-22 and earlier, this type is called brokerage instead.credit: Credit carddepository: Depository accountloan: Loan accountother: Non-specified account typeSee the Account type schema for a full listing of account types and corresponding subtypes.
investment, credit, depository, loan, brokerage, other401a, 401k, 403B, 457b, 529, auto, brokerage, business, cash isa, cash management, cd, checking, commercial, construction, consumer, credit card, crypto exchange, ebt, education savings account, fixed annuity, gic, health reimbursement arrangement, home equity, hsa, isa, ira, keogh, lif, life insurance, line of credit, lira, loan, lrif, lrsp, money market, mortgage, mutual fund, non-custodial wallet, non-taxable brokerage account, other, other insurance, other annuity, overdraft, paypal, payroll, pension, prepaid, prif, profit sharing plan, rdsp, resp, retirement, rlif, roth, roth 401k, rrif, rrsp, sarsep, savings, sep ira, simple ira, sipp, stock plan, student, thrift savings plan, tfsa, trust, ugma, utma, variable annuityiso_currency_code or unofficial_currency_code. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.double null if unofficial_currency_code is non-null.null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.See the
taxonomy csv file for a full list of credit categories.YYYY-MM-DD ).date state.zip.double double name field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be null.true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.transaction_id is case sensitive.date date If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's
names array.true, identifies the phone number as the primary number on an account.home, work, office, mobile, mobile1, othertrue, identifies the email address as the primary email on an account.primary, secondary, otherstate.
Example: "NC""564 Main Street, APT 15"zip.true, identifies the address as the primary address on an account.association: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations.
individual: Ownership by an individual.
joint: Joint ownership by multiple parties.
trust: Ownership by a revocable or irrevocable trust.null, individual, joint, association, trustsecurities array for security details.account_id associated with the holding.security_id associated with the holding. Security data is not specific to a user's account; any user who held the same security at the same financial institution at the same time would have identical security data. The security_id for the same security will typically be the same across different institutions, but this is not guaranteed. The security_id does not typically change, but may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.double institution_price was current.date double double quantity will reflect the total number of options (typically the number of contracts multiplied by 100), not the number of contracts.double null if unofficial_currency_code is non-null.null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
iso_currency_codes.security_id is case sensitive. The security_id may change if inherent details of the security change due to a corporate action, for example, in the event of a ticker symbol change or CUSIP change.institution_security_id is present, this field indicates the Plaid institution_id of the institution to whom the identifier belongs.cash: Cash, currency, and money market fundscryptocurrency: Digital or virtual currenciesderivative: Options, warrants, and other derivative instrumentsequity: Domestic and foreign equitiesetf: Multi-asset exchange-traded investment fundsfixed income: Bonds and certificates of deposit (CDs)loan: Loans and loan receivablesmutual fund: Open- and closed-end vehicles pooling funds of multiple investorsother: Unknown or other investment typesinvestment_transaction_id is case sensitive.account_id of the account against which this transaction posted.security_id to which this transaction is related.double double double double buy: Buying an investment
sell: Selling an investment
cancel: A cancellation of a pending transaction
cash: Activity that modifies a cash position
fee: A fee on the account
transfer: Activity which modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transferFor descriptions of possible transaction types and subtypes, see the Investment transaction types schema.
buy, sell, cancel, cash, fee, transferaccount fee, adjustment, assignment, buy, buy to cover, contribution, deposit, distribution, dividend, dividend reinvestment, exercise, expire, fund fee, interest, interest receivable, interest reinvestment, legal fee, loan payment, long-term capital gain, long-term capital gain reinvestment, management fee, margin expense, merger, miscellaneous fee, non-qualified dividend, non-resident tax, pending credit, pending debit, qualified dividend, rebalance, return of principal, request, sell, sell short, send, short-term capital gain, short-term capital gain reinvestment, spin off, split, stock distribution, tax, tax withheld, trade, transfer, transfer fee, trust fee, unqualified gain, withdrawalnull if unofficial_currency_code is non-null.null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
iso_currency_codes.item_id of the Item associated with this webhook, warning, or errordate-time null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date-time account_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.investment: Investment account. In API versions 2018-05-22 and earlier, this type is called brokerage instead.credit: Credit carddepository: Depository accountloan: Loan accountother: Non-specified account typeSee the Account type schema for a full listing of account types and corresponding subtypes.
investment, credit, depository, loan, brokerage, other401a, 401k, 403B, 457b, 529, auto, brokerage, business, cash isa, cash management, cd, checking, commercial, construction, consumer, credit card, crypto exchange, ebt, education savings account, fixed annuity, gic, health reimbursement arrangement, home equity, hsa, isa, ira, keogh, lif, life insurance, line of credit, lira, loan, lrif, lrsp, money market, mortgage, mutual fund, non-custodial wallet, non-taxable brokerage account, other, other insurance, other annuity, overdraft, paypal, payroll, pension, prepaid, prif, profit sharing plan, rdsp, resp, retirement, rlif, roth, roth 401k, rrif, rrsp, sarsep, savings, sep ira, simple ira, sipp, stock plan, student, thrift savings plan, tfsa, trust, ugma, utma, variable annuityYYYY-MM-DD ).date true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.transaction_id is case sensitive.item_id of the Item associated with this webhook, warning, or errordate-time CHECK_REPORT_WARNINGIDENTITY_UNAVAILABLE: Account-owner information is not available.
TRANSACTIONS_UNAVAILABLE: Transactions information associated with Credit and Depository accounts are unavailable.
USER_FRAUD_ALERT: The user has placed a fraud alert on their Plaid Check consumer report due to suspected fraud. Please note that when a fraud alert is in place, the recipient of the consumer report has an obligation to verify the consumer’s identity.IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERTitem_id used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, RECAPTCHA_ERROR, OAUTH_ERROR, PAYMENT_ERROR, BANK_TRANSFER_ERROR, INCOME_VERIFICATION_ERROR, MICRODEPOSITS_ERROR, SANDBOX_ERROR, PARTNER_ERROR, SIGNAL_ERROR, TRANSACTIONS_ERROR, TRANSACTION_ERROR, TRANSFER_ERROR, CHECK_REPORT_ERROR, CONSUMER_REPORT_ERROR, USER_ERRORnull will be returned otherwise. Safe for programmatic use.Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.OAUTH_CONSENT_EXPIRED: The user's access consent for this OAuth connection to this institution has expired.OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.null if the error is not related to user action.This may change over time and is not safe for programmatic use.
causes will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes will be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.item_id of the Item associated with this webhook, warning, or error{
"request_id": "LhQf0THi8SH1yJm",
"report": {
"report_id": "028e8404-a013-4a45-ac9e-002482f9cafc",
"client_report_id": "client_report_id_1221",
"voa": {
"generated_time": "2023-03-30T18:27:37Z",
"days_requested": 90,
"attributes": {
"total_inflow_amount": {
"amount": -345.12,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount": {
"amount": 235.12,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
},
"items": [
{
"accounts": [
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"balances": {
"available": 100,
"current": 110,
"iso_currency_code": "USD",
"unofficial_currency_code": null,
"historical_balances": [
{
"current": 110,
"date": "2023-03-29",
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
{
"current": 125.55,
"date": "2023-03-28",
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
{
"current": 80.13,
"date": "2023-03-27",
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
{
"current": 246.11,
"date": "2023-03-26",
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
{
"current": 182.71,
"date": "2023-03-25",
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
],
"average_balance_30_days": 200,
"average_balance_60_days": 150,
"average_balance_90_days": 125,
"nsf_overdraft_transactions_count": 0
},
"consumer_disputes": [],
"mask": "0000",
"name": "Plaid Checking",
"official_name": "Plaid Gold Standard 0% Interest Checking",
"type": "depository",
"subtype": "checking",
"days_available": 90,
"transactions_insights": {
"all_transactions": [
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"amount": 89.4,
"date": "2023-03-27",
"iso_currency_code": "USD",
"original_description": "SparkFun",
"pending": false,
"transaction_id": "4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD",
"unofficial_currency_code": null
},
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"amount": 12,
"date": "2023-03-28",
"iso_currency_code": "USD",
"original_description": "McDonalds #3322",
"pending": false,
"transaction_id": "dkjL41PnbKsPral79jpxhMWdW55gkPfBkWpRL",
"unofficial_currency_code": null
},
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"amount": 4.33,
"date": "2023-03-28",
"iso_currency_code": "USD",
"original_description": "Starbucks",
"pending": false,
"transaction_id": "a84ZxQaWDAtDL3dRgmazT57K7jjN3WFkNWMDy",
"unofficial_currency_code": null
},
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"amount": -500,
"date": "2023-03-29",
"iso_currency_code": "USD",
"original_description": "United Airlines **** REFUND ****",
"pending": false,
"transaction_id": "xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5",
"unofficial_currency_code": null
}
],
"end_date": "2024-07-31",
"start_date": "2024-07-01"
},
"owners": [
{
"addresses": [
{
"data": {
"city": "Malakoff",
"country": "US",
"region": "NY",
"street": "2992 Cameron Road",
"postal_code": "14236"
},
"primary": true
},
{
"data": {
"city": "San Matias",
"country": "US",
"region": "CA",
"street": "2493 Leisure Lane",
"postal_code": "93405-2255"
},
"primary": false
}
],
"emails": [
{
"data": "[email protected]",
"primary": true,
"type": "primary"
},
{
"data": "[email protected]",
"primary": false,
"type": "secondary"
},
{
"data": "extraordinarily.long.email.username.123456@reallylonghostname.com",
"primary": false,
"type": "other"
}
],
"names": [
"Alberta Bobbeth Charleson"
],
"phone_numbers": [
{
"data": "+1 111-555-3333",
"primary": false,
"type": "home"
},
{
"data": "+1 111-555-4444",
"primary": false,
"type": "work"
},
{
"data": "+1 111-555-5555",
"primary": false,
"type": "mobile"
}
]
}
],
"ownership_type": null
}
],
"institution_name": "First Platypus Bank",
"institution_id": "ins_109508",
"item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7",
"last_update_time": "2023-03-30T18:25:26Z"
}
]
},
"employment_refresh": {
"generated_time": "2023-03-30T18:27:37Z",
"days_requested": 60,
"items": [
{
"accounts": [
{
"account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
"name": "Plaid Money Market",
"official_name": "Plaid Platinum Standard 1.85% Interest Money Market",
"type": "depository",
"subtype": "money market",
"transactions": [
{
"account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
"original_description": "ACH Electronic CreditGUSTO PAY 123456",
"date": "2023-03-30",
"pending": false,
"transaction_id": "gGQgjoeyqBF89PND6K14Sow1wddZBmtLomJ78"
}
]
},
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"name": "Plaid Checking",
"official_name": "Plaid Gold Standard 0% Interest Checking",
"type": "depository",
"subtype": "checking",
"transactions": [
{
"account_id": "eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v",
"original_description": "United Airlines **** REFUND ****",
"date": "2023-03-29",
"pending": false,
"transaction_id": "xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5"
}
]
}
],
"institution_name": "First Platypus Bank",
"institution_id": "ins_109508",
"item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7",
"last_update_time": "2023-03-30T18:25:26Z"
}
]
}
},
"warnings": []
}/cra/check_report/verification/pdf/get
Retrieve Consumer Reports as a Verification PDF
The /cra/check_report/verification/pdf/get endpoint retrieves the most recent Consumer Report in PDF format, specifically formatted for Home Lending verification use cases. Before calling this endpoint, ensure that you've created a VOA report through Link or the /cra/check_report/create endpoint, and have received a CHECK_REPORT_READY or a USER_CHECK_REPORT_READY webhook.
The response to /cra/check_report/verification/pdf/get is the PDF binary data. The request_id is returned in the Plaid-Request-ID header.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.voa, employment_refreshuser_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craCheckReportVerificationPDFGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
report_requested: 'VOA',
});
const pdf = response.buffer.toString('base64');
} catch (error) {
// handle error
}
Response
This endpoint returns binary PDF data. View a sample Home Lending Report (aka VoA Report) or Employment Refresh report.
/cra/check_report/create
Refresh or create a Consumer Report
The primary purpose of /cra/check_report/create is to refresh data in an existing report. A Consumer Report will last for 24 hours before expiring; you should call any /get endpoints on the report before it expires. If a report expires, you can call /cra/check_report/create again to re-generate it and refresh the data in the report.
/cra/check_report/create can also be used to create a new report if consumer_report_permissible_purpose was omitted during Link token creation. However, using the endpoint in this way is not recommended. Instead, consumer_report_permissible_purpose should always be specified when calling /link/token/create for Plaid CRA products; this will reduce latency and simplify the integration process. If you provide a consumer_report_permissible_purpose during Link token creation, then Plaid Check will automatically begin creating a Consumer Report once the user completes the Link process, and it is not necessary to call /cra/check_report/create before retrieving the report.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.user_token field. All other customers should use the user_id instead. For more details, see New User APIs.url 731 184 /get endpoints. Note that specifying cra_partner_insights in this field will trigger a billable event. Other products are not billed until the respective reports are fetched via product-specific /get endpoints.1 cra_income_insights, cra_cashflow_insights, cra_partner_insights, cra_network_insights, cra_lend_scoreclient_report_id field at the top level of the request instead.VOA, EMPLOYMENT_REFRESHCFI1insights, scores3, null4, null4, 3, null4, null4, 3, nullLS1NI1ACCOUNT_REVIEW_CREDIT: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).ACCOUNT_REVIEW_NON_CREDIT: For a legitimate business need of the information to review a non-credit account provided primarily for personal, family, or household purposes to determine whether the consumer continues to meet the terms of the account pursuant to FCRA Section 604(a)(3)(F)(2).EXTENSION_OF_CREDIT: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).LEGITIMATE_BUSINESS_NEED_OTHER: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).WRITTEN_INSTRUCTION_PREQUALIFICATION: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application’s profile to make an offer to the consumer.WRITTEN_INSTRUCTION_OTHER: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.ACCOUNT_REVIEW_CREDIT, ACCOUNT_REVIEW_NON_CREDIT, EXTENSION_OF_CREDIT, LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING, LEGITIMATE_BUSINESS_NEED_OTHER, WRITTEN_INSTRUCTION_PREQUALIFICATION, WRITTEN_INSTRUCTION_OTHERtry {
const response = await client.craCheckReportCreate({
user_id: 'usr_9nSp2KuZ2x4JDw',
webhook: 'https://sample-web-hook.com',
days_requested: 365,
consumer_report_permissible_purpose: 'LEGITIMATE_BUSINESS_NEED_OTHER',
});
} catch (error) {
// handle error
}
Response fields
{
"request_id": "LhQf0THi8SH1yJm"
}/cra/monitoring_insights/get
Retrieve a Monitoring Insights Report
This endpoint allows you to retrieve a Cash Flow Updates report by passing in the user_id referred to in the webhook you received.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.ACCOUNT_REVIEW_CREDIT: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).WRITTEN_INSTRUCTION_OTHER: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.ACCOUNT_REVIEW_CREDIT, WRITTEN_INSTRUCTION_OTHERuser_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craMonitoringInsightsGet({
user_id: 'usr_9nSp2KuZ2x4JDw',
consumer_report_permissible_purpose: 'EXTENSION_OF_CREDIT',
});
} catch (error) {
// handle error
}
Response fields
date-time item_id of the Item associated with the insightsAVAILABLE, FAILED, PENDINGstatus_code is not AVAILABLEBANK_INTEREST: Interest earned from a bank account.
BENEFIT_OTHER: Government benefits other than retirement, unemployment, child support, or disability. Currently used only in the UK, to represent benefits such as Cost of Living Payments.
CASH: Deprecated and used only for existing legacy implementations. Has been replaced by CASH_DEPOSIT and TRANSFER_FROM_APPLICATION.
CASH_DEPOSIT: A cash or check deposit.
CHILD_SUPPORT: Child support payments received.
GIG_ECONOMY: Income earned as a gig economy worker, e.g. driving for Uber, Lyft, Postmates, DoorDash, etc.
LONG_TERM_DISABILITY: Disability payments, including Social Security disability benefits.
OTHER: Income that could not be categorized as any other income category.
MILITARY: Veterans benefits. Income earned as salary for serving in the military (e.g. through DFAS) will be classified as SALARY rather than MILITARY.
RENTAL: Income earned from a rental property. Income may be identified as rental when the payment is received through a rental platform, e.g. Airbnb; rent paid directly by the tenant to the property owner (e.g. via cash, check, or ACH) will typically not be classified as rental income.
RETIREMENT: Payments from private retirement systems, pensions, and government retirement programs, including Social Security retirement benefits.
SALARY: Payment from an employer to an earner or other form of permanent employment.
TAX_REFUND: A tax refund.
TRANSFER_FROM_APPLICATION: Deposits from a money transfer app, such as Venmo, Cash App, or Zelle.
UNEMPLOYMENT: Unemployment benefits. In the UK, includes certain low-income benefits such as the Universal Credit.SALARY, UNEMPLOYMENT, CASH, GIG_ECONOMY, RENTAL, CHILD_SUPPORT, MILITARY, RETIREMENT, LONG_TERM_DISABILITY, BANK_INTEREST, CASH_DEPOSIT, TRANSFER_FROM_APPLICATION, TAX_REFUND, BENEFIT_OTHER, OTHERdate account_id will be assigned to the account.If an account with a specific
account_id disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.Like all Plaid identifiers, the
account_id is case sensitive.For
credit-type accounts, the available balance typically equals the limit less the current balance, less any pending outflows plus any pending inflows.For
depository-type accounts, the available balance typically equals the current balance less any pending outflows plus any pending inflows. For depository-type accounts, the available balance does not include the overdraft limit.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the available balance is the total cash available to withdraw as presented by the institution.Note that not all institutions calculate the
available balance. In the event that available balance is unavailable, Plaid will return an available balance value of null.Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by
/accounts/balance/get.If
current is null this field is guaranteed not to be null.double For
credit-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.For
loan-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (ins_116944). For Sallie Mae student loans, the account's balance includes both principal and any outstanding interest.For
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.Note that balance information may be cached unless the value was returned by
/accounts/balance/get; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the available balance as provided by /accounts/balance/get.When returned by
/accounts/balance/get, this field may be null. When this happens, available is guaranteed not to be null.double credit-type accounts, this represents the credit limit.For
depository-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.In North America, this field is typically only available for
credit-type accounts.double unofficial_currency_code is non-null.iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.YYYY-MM-DDTHH:mm:ssZ) indicating the oldest acceptable balance when making a request to /accounts/balance/get.This field is only used and expected when the institution is
ins_128026 (Capital One) and the Item contains one or more accounts with a non-depository account type, in which case a value must be provided or an INVALID_REQUEST error with the code of INVALID_FIELD will be returned. For Capital One depository accounts as well as all other account types on all other institutions, this field is ignored. See account type schema for a full list of account types.If the balance that is pulled is older than the given timestamp for Items with this field required, an
INVALID_REQUEST error with the code of LAST_UPDATED_DATETIME_OUT_OF_RANGE will be returned with the most recent timestamp for the requested account contained in the response.date-time double iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.double date TRANSACTION, BALANCE, IDENTITY, OTHERinvestment: Investment account. In API versions 2018-05-22 and earlier, this type is called brokerage instead.credit: Credit carddepository: Depository accountloan: Loan accountother: Non-specified account typeSee the Account type schema for a full listing of account types and corresponding subtypes.
investment, credit, depository, loan, brokerage, other401a, 401k, 403B, 457b, 529, auto, brokerage, business, cash isa, cash management, cd, checking, commercial, construction, consumer, credit card, crypto exchange, ebt, education savings account, fixed annuity, gic, health reimbursement arrangement, home equity, hsa, isa, ira, keogh, lif, life insurance, line of credit, lira, loan, lrif, lrsp, money market, mortgage, mutual fund, non-custodial wallet, non-taxable brokerage account, other, other insurance, other annuity, overdraft, paypal, payroll, pension, prepaid, prif, profit sharing plan, rdsp, resp, retirement, rlif, roth, roth 401k, rrif, rrsp, sarsep, savings, sep ira, simple ira, sipp, stock plan, student, thrift savings plan, tfsa, trust, ugma, utma, variable annuity/transactions/get or /investments/transactions/get will be returned in the top-level transactions field instead. Some transactions may have their details masked in accordance to FCRA.iso_currency_code or unofficial_currency_code. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative.double null if unofficial_currency_code is non-null.null if iso_currency_code is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.See the currency code schema for a full listing of supported
unofficial_currency_codes.See the
taxonomy csv file for a full list of credit categories.YYYY-MM-DD ).date state.zip.double double name field. This is typically a more human-readable version of the merchant counterparty in the transaction. For some bank transactions (such as checks or account transfers) where there is no meaningful merchant name, this value will be null.true, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled.transaction_id is case sensitive.owner object, not in multiple owner objects within the array. This array can also be empty if no owners are found.If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's
names array.true, identifies the phone number as the primary number on an account.home, work, office, mobile, mobile1, othertrue, identifies the email address as the primary email on an account.primary, secondary, otherstate.
Example: "NC""564 Main Street, APT 15"zip.true, identifies the address as the primary address on an account.association: Ownership by a corporation, partnership, or unincorporated association, including for-profit and not-for-profit organizations.
individual: Ownership by an individual.
joint: Joint ownership by multiple parties.
trust: Ownership by a revocable or irrevocable trust.null, individual, joint, association, trustdate date date date date date date date iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.date date date date iso_currency_code or unofficial_currency_codenull if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.null if iso_currency_code is non-null.
Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.{
"user_insights_id": "028e8404-a013-4a45-ac9e-002482f9cafc",
"items": [
{
"date_generated": "2023-03-30T18:27:37Z",
"item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7",
"institution_id": "ins_0",
"institution_name": "Plaid Bank",
"status": {
"status_code": "AVAILABLE"
},
"insights": {
"income": {
"income_sources": [
{
"income_source_id": "f17efbdd-caab-4278-8ece-963511cd3d51",
"income_description": "PLAID_INC_DIRECT_DEP_PPD",
"income_category": "SALARY",
"last_transaction_date": "2023-03-30"
}
],
"forecasted_monthly_income": {
"current_amount": 12000
},
"total_monthly_income": {
"current_amount": 20000.31
},
"historical_annual_income": {
"current_amount": 144000
},
"income_sources_counts": {
"current_count": 1
}
},
"loans": {
"loan_payments_counts": {
"current_count": 1
},
"loan_payment_merchants_counts": {
"current_count": 1
},
"loan_disbursements_count": 1
}
},
"accounts": [
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"attributes": {
"total_inflow_amount": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_30d": {
"amount": -1000,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_60d": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_inflow_amount_90d": {
"amount": -2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_30d": {
"amount": 1000,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_60d": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"total_outflow_amount_90d": {
"amount": 2500,
"iso_currency_code": "USD",
"unofficial_currency_code": null
}
},
"balances": {
"available": 5000,
"average_balance": 4956.12,
"average_monthly_balances": [
{
"average_balance": {
"amount": 4956.12,
"iso_currency_code": "USD",
"unofficial_currency_code": null
},
"end_date": "2024-07-31",
"start_date": "2024-07-01"
}
],
"current": 5000,
"iso_currency_code": "USD",
"limit": null,
"most_recent_thirty_day_average_balance": 4956.125,
"unofficial_currency_code": null
},
"consumer_disputes": [],
"days_available": 365,
"mask": "1208",
"metadata": {
"start_date": "2024-01-01",
"end_date": "2024-07-16"
},
"name": "Checking",
"official_name": "Plaid checking",
"owners": [
{
"addresses": [
{
"data": {
"city": "Malakoff",
"country": "US",
"postal_code": "14236",
"region": "NY",
"street": "2992 Cameron Road"
},
"primary": true
},
{
"data": {
"city": "San Matias",
"country": "US",
"postal_code": "93405-2255",
"region": "CA",
"street": "2493 Leisure Lane"
},
"primary": false
}
],
"emails": [
{
"data": "[email protected]",
"primary": true,
"type": "primary"
},
{
"data": "[email protected]",
"primary": false,
"type": "secondary"
},
{
"data": "extraordinarily.long.email.username.123456@reallylonghostname.com",
"primary": false,
"type": "other"
}
],
"names": [
"Alberta Bobbeth Charleson"
],
"phone_numbers": [
{
"data": "+1 111-555-3333",
"primary": false,
"type": "home"
},
{
"data": "+1 111-555-4444",
"primary": false,
"type": "work"
},
{
"data": "+1 111-555-5555",
"primary": false,
"type": "mobile"
}
]
}
],
"ownership_type": null,
"subtype": "checking",
"transactions": [
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 37.07,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "XA7ZLy8rXzt7D3j9B6LMIgv5VxyQkAhbKjzmp",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 51.61,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Domino's",
"original_description": "DOMINO's XXXX 111-222-3333",
"pending": false,
"transaction_id": "VEPeMbWqRluPVZLQX4MDUkKRw41Ljzf9gyLBW",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 7.55,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Chicago",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "IKEA",
"original_description": "IKEA CHICAGO",
"pending": false,
"transaction_id": "6GQZARgvroCAE1eW5wpQT7w3oB6nvzi8DKMBa",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 12.87,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_SPORTING_GOODS",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Redlands",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Nike",
"original_description": "NIKE REDLANDS CA",
"pending": false,
"transaction_id": "DkbmlP8BZxibzADqNplKTeL8aZJVQ1c3WR95z",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 44.21,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-12",
"date_posted": "2024-07-12T00:00:00Z",
"date_transacted": "2024-07-12",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "RpdN7W8GmRSdjZB9Jm7ATj4M86vdnktapkrgL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 36.82,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_DISCOUNT_STORES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Family Dollar",
"original_description": "FAMILY DOLLAR",
"pending": false,
"transaction_id": "5AeQWvo5KLtAD9wNL68PTdAgPE7VNWf5Kye1G",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 13.27,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "Jjlr3MEVg1HlKbdkZj39ij5a7eg9MqtB6MWDo",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 36.03,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "kN9KV7yAZJUMPn93KDXqsG9MrpjlyLUL6Dgl8",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 54.74,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "lPvrweZAMqHDar43vwWKs547kLZVEzfpogGVJ",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 37.5,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-13",
"date_posted": "2024-07-13T00:00:00Z",
"date_transacted": "2024-07-13",
"iso_currency_code": "USD",
"location": {
"address": "1627 N 24th St",
"city": "Phoenix",
"country": null,
"lat": null,
"lon": null,
"postal_code": "85008",
"region": "AZ",
"state": "AZ",
"store_number": null,
"zip": "85008"
},
"merchant_name": "Taqueria El Guerrerense",
"original_description": "TAQUERIA EL GUERRERO PHOENIX AZ",
"pending": false,
"transaction_id": "wka74WKqngiyJ3pj7dl5SbpLGQBZqyCPZRDbP",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 41.42,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "BBGnV4RkerHjn8WVavGyiJbQ95VNDaC4M56bJ",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": -1077.93,
"check_number": null,
"credit_category": {
"detailed": "INCOME_OTHER",
"primary": "INCOME"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Lyft",
"original_description": "LYFT TRANSFER",
"pending": false,
"transaction_id": "3Ej78yKJlQu1Abw7xzo4U4JR6pmwzntZlbKDK",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 47.17,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "rMzaBpJw8jSZRJQBabKdteQBwd5EaWc7J9qem",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 12.37,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "zWPZjkmzynTyel89ZjExS59DV6WAaZflNBJ56",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 44.18,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "K7qzx1nP8ptqgwaRMbxyI86XrqADMluRpkWx5",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 45.37,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-14",
"date_posted": "2024-07-14T00:00:00Z",
"date_transacted": "2024-07-14",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Uber Eats",
"original_description": "UBER EATS",
"pending": false,
"transaction_id": "qZrdzLRAgNHo5peMdD9xIzELl3a1NvcgrPAzL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 15.22,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "NZzx4oRPkAHzyRekpG4PTZkWnBPqEyiy6pB1M",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 26.33,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Domino's",
"original_description": "DOMINO's XXXX 111-222-3333",
"pending": false,
"transaction_id": "x84eNArKbESz8Woden6LT3nvyogeJXc64Pp35",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 39.8,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_DISCOUNT_STORES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Family Dollar",
"original_description": "FAMILY DOLLAR",
"pending": false,
"transaction_id": "dzWnyxwZ4GHlZPGgrNyxiMG7qd5jDgCJEz5jL",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 45.06,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "4W7eE9rZqMToDArbPeLNIREoKpdgBMcJbVNQD",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 34.91,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Whittier",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "CA",
"state": "CA",
"store_number": null,
"zip": null
},
"merchant_name": "Smart & Final",
"original_description": "POS SMART AND FINAL 111 WHITTIER CA",
"pending": false,
"transaction_id": "j4yqDjb7QwS7woGzqrgDIEG1NaQVZwf6Wmz3D",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 49.78,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "aqgWnze7xoHd6DQwLPnzT5dgPKjB1NfZ5JlBy",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 54.24,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-15",
"date_posted": "2024-07-15T00:00:00Z",
"date_transacted": "2024-07-15",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": "Portland",
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": "OR",
"state": "OR",
"store_number": "1111",
"zip": null
},
"merchant_name": "Safeway",
"original_description": "SAFEWAY #1111 PORTLAND OR 111111",
"pending": false,
"transaction_id": "P13aP8b7nmS3WQoxg1PMsdvMK679RNfo65B4G",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 41.79,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_ONLINE_MARKETPLACES",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Amazon",
"original_description": "AMZN Mktp US*11111111 Amzn.com/bill WA AM",
"pending": false,
"transaction_id": "7nZMG6pXz8SADylMqzx7TraE4qjJm7udJyAGm",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 33.86,
"check_number": null,
"credit_category": {
"detailed": "FOOD_RETAIL_GROCERIES",
"primary": "FOOD_RETAIL"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "Instacart",
"original_description": "INSTACART HTTPSINSTACAR CA",
"pending": false,
"transaction_id": "MQr3ap7PWEIrQG7bLdaNsxyBV7g1KqCL6pwoy",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 27.08,
"check_number": null,
"credit_category": {
"detailed": "DINING_DINING",
"primary": "DINING"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "POKE BROS * POKE BRO IL",
"pending": false,
"transaction_id": "eBAk9dvwNbHPZpr8W69dU3rekJz47Kcr9BRwl",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 25.94,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_FURNITURE_AND_HARDWARE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": "The Home Depot",
"original_description": "THE HOME DEPOT",
"pending": false,
"transaction_id": "QLx4jEJZb9SxRm7aWbjAio3LrgZ5vPswm64dE",
"unofficial_currency_code": null
},
{
"account_id": "NZzx4oRPkAHzyRekpG4PTZkoGpNAR4uypaj1E",
"account_owner": null,
"amount": 27.57,
"check_number": null,
"credit_category": {
"detailed": "GENERAL_MERCHANDISE_OTHER_GENERAL_MERCHANDISE",
"primary": "GENERAL_MERCHANDISE"
},
"date": "2024-07-16",
"date_posted": "2024-07-16T00:00:00Z",
"date_transacted": "2024-07-16",
"iso_currency_code": "USD",
"location": {
"address": null,
"city": null,
"country": null,
"lat": null,
"lon": null,
"postal_code": null,
"region": null,
"state": null,
"store_number": null,
"zip": null
},
"merchant_name": null,
"original_description": "The Press Club",
"pending": false,
"transaction_id": "ZnQ1ovqBldSQ6GzRbroAHLdQP68BrKceqmAjX",
"unofficial_currency_code": null
}
],
"type": "depository"
}
]
}
],
"request_id": "m8MDnv9okwxFNBV"
}/cra/monitoring_insights/subscribe
Subscribe to Monitoring Insights
This endpoint allows you to subscribe to insights for a user's linked CRA items, which are updated between one and four times per day (best-effort).
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body./user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see new user APIs.url null, this field will default to including all possible categories.SALARY, UNEMPLOYMENT, CASH, GIG_ECONOMY, RENTAL, CHILD_SUPPORT, MILITARY, RETIREMENT, LONG_TERM_DISABILITY, BANK_INTEREST, CASH_DEPOSIT, TRANSFER_FROM_APPLICATION, TAX_REFUND, BENEFIT_OTHER, OTHERuser_token field. All other customers should use the user_id instead. For more details, see New User APIs.try {
const response = await client.craMonitoringInsightsSubscribe({
user_id: 'usr_9nSp2KuZ2x4JDw',
item_id: 'eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6',
webhook: 'https://example.com/webhook',
income_categories: [CreditBankIncomeCategory.Salary],
});
} catch (error) {
// handle error
}
Response fields
{
"subscription_id": "f17efbdd-caab-4278-8ece-963511cd3d51",
"request_id": "GVzMdiDd8DDAQK4"
}/cra/monitoring_insights/unsubscribe
Unsubscribe from Monitoring Insights
This endpoint allows you to unsubscribe from previously subscribed Monitoring Insights.
Request fields
client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.try {
const response = await client.craMonitoringInsightsUnsubscribe({
subscription_id: '"f17efbdd-caab-4278-8ece-963511cd3d51"',
});
} catch (error) {
// handle error
}
Response fields
{
"request_id": "GVzMdiDd8DDAQK4"
}Webhooks
When you create a new report, either by creating a Link token with a Plaid Check product, or by calling /cra/check_report/create, Plaid Check will start generating a report for you. When the report has been created (or the report creation fails), Plaid Check will let you know by sending you either a CHECK_REPORT: USER_CHECK_REPORT_READY or CHECK_REPORT: USER_CHECK_REPORT_FAILED webhook.
Customers who first called /user/create after December 10, 2025 will receive the USER_CHECK_REPORT_READY / USER_CHECK_REPORT_FAILED webhooks. Customers who integrated before this date will receive the older CHECK_REPORT_READY / CHECK_REPORT_FAILED webhooks. For more details, see new User APIs.
USER_CHECK_REPORT_READY
Fired when the Check Report are ready to be retrieved. Once this webhook has fired, the report will be available to retrieve for 24 hours.
Properties
CHECK_REPORTUSER_CHECK_REPORT_READYuser_id associated with the user whose data is being requested. This is received by calling user/create.cra_base_report, cra_income_insights, cra_cashflow_insights, cra_partner_insights, cra_network_insights, cra_monitoring, cra_lend_scorecra_base_report, cra_income_insights, cra_cashflow_insights, cra_partner_insights, cra_network_insights, cra_monitoring, cra_lend_scoresandbox, production{
"webhook_type": "CHECK_REPORT",
"webhook_code": "USER_CHECK_REPORT_READY",
"user_id": "usr_8c3ZbDBYjaqUXZ",
"successful_products": [
"cra_base_report"
],
"environment": "production"
}USER_CHECK_REPORT_FAILED
Fired when a Check Report has failed to generate
Properties
CHECK_REPORTUSER_CHECK_REPORT_FAILEDuser_id associated with the user whose data is being requested. This is received by calling user/create.sandbox, production{
"webhook_type": "CHECK_REPORT",
"webhook_code": "USER_CHECK_REPORT_FAILED",
"user_id": "usr_8c3ZbDBYjaqUXZ",
"environment": "production"
}CHECK_REPORT_READY
Fired when the Check Report are ready to be retrieved. Once this webhook has fired, the report will be available to retrieve for 24 hours.
Properties
CHECK_REPORTCHECK_REPORT_READYuser_id corresponding to the user the webhook has fired for.cra_base_report, cra_income_insights, cra_cashflow_insights, cra_partner_insights, cra_network_insights, cra_monitoring, cra_lend_scorecra_base_report, cra_income_insights, cra_cashflow_insights, cra_partner_insights, cra_network_insights, cra_monitoring, cra_lend_scoresandbox, production{
"webhook_type": "CHECK_REPORT",
"webhook_code": "CHECK_REPORT_READY",
"user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
"successful_products": [
"cra_base_report"
],
"environment": "production"
}CHECK_REPORT_FAILED
Fired when a Check Report has failed to generate. To get more details, call /user/items/get and check for non-null error objects on the associated Items in the response. These error objects will contain more details on why the Item is in an error state and how to resolve it. After resolving the errors, you can try to re-generate the report.
Properties
CHECK_REPORTCHECK_REPORT_FAILEDuser_id corresponding to the user the webhook has fired for.sandbox, production{
"webhook_type": "CHECK_REPORT",
"webhook_code": "CHECK_REPORT_FAILED",
"user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
"environment": "production"
}Cash flow updates webhooks
These webhooks are specific to the Cash Flow Updates (beta) product.
All webhooks in this section except for CASH_FLOW_INSIGHTS_UPDATED are legacy webhooks and will only be fired for customers who integrated with Plaid Check before December 10, 2025. For newer integrations, CASH_FLOW_INSIGHTS_UPDATED has replaced the other webhooks. For more details, see New user APIs.
CASH_FLOW_INSIGHTS_UPDATED
For each item on an enabled user, this webhook will fire up to four times a day with status information. This webhook will not fire immediately upon enrollment in Cash Flow Updates. The payload may contain an insights array with insights that have been detected, if any (e.g. LOW_BALANCE_DETECTED, LARGE_DEPOSIT_DETECTED). Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights.
Properties
CASH_FLOW_UPDATESCASH_FLOW_INSIGHTS_UPDATEDAVAILABLE, FAILEDuser_id associated with the user whose data is being requested. This is received by calling user/create.LARGE_DEPOSIT_DETECTED: signaling a deposit over $5,000
LOW_BALANCE_DETECTED: signaling a balance below $100
NEW_LOAN_PAYMENT_DETECTED: signaling a new loan payment
NSF_OVERDRAFT_DETECTED: signaling an NSF overdraftLARGE_DEPOSIT_DETECTED, LOW_BALANCE_DETECTED, NEW_LOAN_PAYMENT_DETECTED, NSF_OVERDRAFT_DETECTEDsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "CASH_FLOW_INSIGHTS_UPDATED",
"status": "AVAILABLE",
"user_id": "usr_6009db6e",
"insights": [
"LARGE_DEPOSIT_DETECTED",
"LOW_BALANCE_DETECTED",
"NEW_LOAN_PAYMENT_DETECTED",
"NSF_OVERDRAFT_DETECTED"
],
"environment": "sandbox"
}INSIGHTS_UPDATED
For each user's Item enabled for Cash Flow Updates, this webhook will fire between one and four times a day with information on the status of the update. This webhook will not fire immediately upon enrollment in Cash Flow Updates. Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights. At approximately the same time as the INSIGHTS_UPDATED webhook, any event-driven CASH_FLOW_UPDATES webhooks (e.g. LOW_BALANCE_DETECTED, LARGE_DEPOSIT_DETECTED) that were triggered by the update will also fire. This webhook has been replaced by the CASH_FLOW_INSIGHTS_UPDATED webhook for all customers who began using Plaid Check on or after December 10, 2025.
Properties
CASH_FLOW_UPDATESINSIGHTS_UPDATEDAVAILABLE, FAILEDuser_id that the report is associated withsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "INSIGHTS_UPDATED",
"status": "AVAILABLE",
"user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
"environment": "production"
}LARGE_DEPOSIT_DETECTED
For each user's item enabled for Cash Flow Updates, this webhook will fire when an update detects a deposit over $5,000. Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights.
Properties
CASH_FLOW_UPDATESLARGE_DEPOSIT_DETECTEDAVAILABLE, FAILEDuser_id that the report is associated withsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "LARGE_DEPOSIT_DETECTED",
"status": "AVAILABLE",
"user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
"environment": "production"
}LOW_BALANCE_DETECTED
For each user's item enabled for Cash Flow Updates, this webhook will fire when an update detects a balance below $100. Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights.
Properties
CASH_FLOW_UPDATESLOW_BALANCE_DETECTEDAVAILABLE, FAILEDuser_id that the report is associated withsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "LOW_BALANCE_DETECTED",
"status": "AVAILABLE",
"user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
"environment": "production"
}NEW_LOAN_PAYMENT_DETECTED
For each user's item enabled for Cash Flow Updates, this webhook will fire when an update detects a new loan payment. Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights.
Properties
CASH_FLOW_UPDATESNEW_LOAN_PAYMENT_DETECTEDAVAILABLE, FAILEDuser_id that the report is associated withsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "NEW_LOAN_PAYMENT_DETECTED",
"status": "AVAILABLE",
"user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
"environment": "production"
}NSF_OVERDRAFT_DETECTED
For each user's item enabled for Cash Flow Updates, this webhook will fire when an update includes an NSF overdraft transaction. Upon receiving the webhook, call /cra/monitoring_insights/get to retrieve the updated insights.
Properties
CASH_FLOW_UPDATESNSF_OVERDRAFT_DETECTEDAVAILABLE, FAILEDuser_id that the report is associated withsandbox, production{
"webhook_type": "CASH_FLOW_UPDATES",
"webhook_code": "NSF_OVERDRAFT_DETECTED",
"status": "AVAILABLE",
"user_id": "9eaba3c2fdc916bc197f279185b986607dd21682a5b04eab04a5a03e8b3f3334",
"environment": "production"
}