Plaid logo
Docs
ALL DOCS

API

  • Overview
  • Libraries
  • API versioning
  • Postman Collection
  • Webhooks
Payments and Funding
  • Auth
  • Signal and Balance
  • Identity
  • Transfer
  • Investments Move
  • Payment Initiation (Europe)
  • Virtual Accounts
Financial Insights
  • Transactions
  • Investments
  • Liabilities
  • Enrich
KYC/AML and anti-fraud
  • Look up Dashboard users
  • Identity Verification
  • Monitor
Credit and Underwriting
  • Consumer Report (by Plaid Check)
  • Assets
  • Statements
  • Income
Instant Onboarding
  • Plaid Layer
Fundamentals
  • Items
  • Accounts
  • Institutions
  • Sandbox
  • Link
  • Users
  • Consent
  • OAuth
Partnerships
  • Processor tokens
  • Processor partners
  • Reseller partners
Plaid logo
Docs
Plaid.com
Log in
Get API Keys
Open nav
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Pssst -- I also moonlight as your IDE's research librarian! Plug me in via the Plaid MCP Server.
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.

    Plaid Check

    API reference for Plaid Check endpoints and webhooks

    The endpoints on this page will be available starting October 30, 2026. Until then, use the legacy Plaid Check endpoints.

    Endpoints
    /cra/report/getRetrieve a Consumer Report for your user
    /cra/report/createGenerate an updated Consumer Report for your user

    This page documents the latest suite of Plaid Check APIs. For the legacy /cra/check_report/*, /cra/servicing/*, and /cra/monitoring_insights/* endpoints, see the Legacy Plaid Check API reference.

    See also
    /link/token/createCreate a token for initializing a Link session with Plaid Check
    /user/createCreate a user for use with Plaid Check
    /user/updateUpdate an existing user token to work with Plaid Check, or change user details
    /user/items/getReturns Items associated with a user along with their corresponding statuses
    Webhooks
    CRA_REPORT_READYA Consumer Report is ready to be retrieved
    =*=*=*=

    /cra/report/get

    Retrieve a Consumer Report for your user

    /cra/report/get retrieves a Consumer Report for a user.

    /cra/report/get

    Request fields

    client_id
    stringstring

    Your Plaid API 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
    stringstring

    Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.

    user_id
    requiredstringrequired, string

    A unique user identifier, created by /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.

    products
    required[object]required, [object]

    The requested products and their versions, e.g. [{"product":"cra_income_insights","version":"V2"}].

    Min items: 1
    Possible values: cra_qualify, cra_base_report, cra_income_insights, cra_cashflow_insights, cra_lend_score, cra_network_insights, cra_lend_score_complete, cra_income_complete
    product
    requiredstringrequired, string
    version
    requiredstringrequired, string

    A string that specifies a particular version of a CRA product.

    Choose one schema:
    • When product is cra_qualify.
    • When product is cra_income_insights.
    • When product is cra_base_report.
    • When product is cra_lend_score, options contains variants.
    • When product is cra_cashflow_insights.
    • When product is cra_network_insights.
    • When product is cra_lend_score_complete, options contains variants.
    • When product is cra_income_complete.
    options
    objectobject
    variants
    [string][string]
    scope
    stringstring

    Determines whose items are used. PLAID_NETWORK (default) uses the Plaid Network view of the user's profile. CLIENT_USER uses only the items linked by this client.

    Possible values: PLAID_NETWORK, CLIENT_USER
    decision_stage
    requiredstringrequired, string

    The stage in the credit or other eligibility decisioning lifecycle for which a given report will be utilized.

    Allowable permissible purposes for PREQUALIFICATION:

    • WRITTEN_INSTRUCTION_PREQUALIFICATION

    Allowable permissible purposes for DECISIONING:

    • ELIGIBILITY_FOR_GOVT_BENEFITS
    • EXTENSION_OF_CREDIT
    • LEGITIMATE_BUSINESS_NEED_OTHER
    • LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING
    • WRITTEN_INSTRUCTION_OTHER

    If an incompatible decision_stage and consumer_report_permissible_purpose pairing is requested, an INVALID_FIELD error is returned. If your client isn't yet enabled for a given decision_stage on a product, a DECISION_STAGE_NOT_ENABLED error is returned instead (contact your Plaid account manager to enable it).

    Possible values: PREQUALIFICATION, DECISIONING
    consumer_report_permissible_purpose
    requiredstringrequired, string

    Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the decision_stage.

    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.

    ELIGIBILITY_FOR_GOVT_BENEFITS: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).

    INSURANCE_UNDERWRITING: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C).

    Possible values: EXTENSION_OF_CREDIT, LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING, LEGITIMATE_BUSINESS_NEED_OTHER, WRITTEN_INSTRUCTION_PREQUALIFICATION, WRITTEN_INSTRUCTION_OTHER, ELIGIBILITY_FOR_GOVT_BENEFITS, INSURANCE_UNDERWRITING
    report_id
    stringstring

    A unique ID identifying a Consumer Report. Like all Plaid identifiers, this ID is case sensitive. When provided, that specific report is returned; when omitted, the most recent report matching the request is returned. Omit this field when retrieving a report without a prior /cra/report/create or /link/token/create request.

    /cra/report/get
    try {
      const response = await client.craReportGet({
        user_id: 'usr_9nSp2KuZ2x4JDw',
        scope: 'PLAID_NETWORK',
        report_id: 'cra-report-production-6f8b1e0c-4d2a-4c7e-9a3b-2f1d8e5a7c90',
        decision_stage: 'DECISIONING',
        consumer_report_permissible_purpose: 'EXTENSION_OF_CREDIT',
        products: [
          { product: 'cra_lend_score', version: 'V2' },
          { product: 'cra_cashflow_insights', version: 'V2' },
          { product: 'cra_network_insights', version: 'V2' },
        ],
      });
    } catch (error) {
      // handle error
    }
    
    /cra/report/get

    Response fields

    report
    objectobject

    The Consumer Report returned by /cra/report/get.

    report_id
    nullablestringnullable, string

    The identifier of the report that was returned. Pass this value to /cra/report/get to retrieve the same report again. null if the returned report has no stored identifier.

    client_report_id
    nullablestringnullable, string

    Client-generated identifier, which can be used by lenders to track loan applications.

    retrieved_time
    stringstring

    The date and time the report was retrieved.

    Format: date-time
    scope
    stringstring

    Determines whose items are used. PLAID_NETWORK (default) uses the Plaid Network view of the user's profile. CLIENT_USER uses only the items linked by this client.

    Possible values: PLAID_NETWORK, CLIENT_USER
    decision_stage
    stringstring

    The stage in the credit or other eligibility decisioning lifecycle for which a given report will be utilized.

    Allowable permissible purposes for PREQUALIFICATION:

    • WRITTEN_INSTRUCTION_PREQUALIFICATION

    Allowable permissible purposes for DECISIONING:

    • ELIGIBILITY_FOR_GOVT_BENEFITS
    • EXTENSION_OF_CREDIT
    • LEGITIMATE_BUSINESS_NEED_OTHER
    • LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING
    • WRITTEN_INSTRUCTION_OTHER

    If an incompatible decision_stage and consumer_report_permissible_purpose pairing is requested, an INVALID_FIELD error is returned. If your client isn't yet enabled for a given decision_stage on a product, a DECISION_STAGE_NOT_ENABLED error is returned instead (contact your Plaid account manager to enable it).

    Possible values: PREQUALIFICATION, DECISIONING
    consumer_report_permissible_purpose
    stringstring

    Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the decision_stage.

    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.

    ELIGIBILITY_FOR_GOVT_BENEFITS: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).

    INSURANCE_UNDERWRITING: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C).

    Possible values: EXTENSION_OF_CREDIT, LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING, LEGITIMATE_BUSINESS_NEED_OTHER, WRITTEN_INSTRUCTION_PREQUALIFICATION, WRITTEN_INSTRUCTION_OTHER, ELIGIBILITY_FOR_GOVT_BENEFITS, INSURANCE_UNDERWRITING
    products
    [object][object]

    Per-product report data. Each entry corresponds to one requested product.

    product
    stringstring
    version
    stringstring

    A string that specifies a particular version of a CRA product.

    metadata
    objectobject
    generated_time
    nullablestringnullable, string

    The time the report was generated. May be null if unavailable.

    Format: date-time
    item_count
    integerinteger

    The number of Items used to generate the report.

    account_count
    integerinteger

    The number of accounts used to generate the report.

    institution_ids
    [string][string]

    The institution IDs of the Items used to generate the report.

    primary_account_count
    integerinteger

    The number of accounts carrying Plaid's primary account indicator.

    depository_account_type_count
    integerinteger

    The number of depository accounts used to generate the report.

    credit_account_type_count
    integerinteger

    The number of credit accounts used to generate the report.

    investment_account_type_count
    integerinteger

    The number of investment accounts used to generate the report.

    other_account_type_count
    integerinteger

    The number of accounts that are neither depository, credit, nor investment.

    multiple_owner_account_count
    integerinteger

    The number of accounts with multiple owners.

    oldest_transaction_date
    nullablestringnullable, string
    most_recent_transaction_date
    nullablestringnullable, string
    days_requested
    integerinteger

    The number of days of transaction history requested.

    errors
    [object][object]

    Product-level errors. Non-empty when this product failed to generate; empty on success.

    error_type
    stringstring

    A broad categorization of the error. Safe for programmatic use.

    Possible values: INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, BASE_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_ERROR, IDEMPOTENCY_ERROR, ASSETS_ERROR, CRA_MONITORING_ERROR, CREDIT_PROFILE_REPORT_ERROR, ENCOMPASS_ERROR, ENRICH_ERROR, FRAUD_INSIGHTS_ERROR, FREDDIE_MAC_ERROR, LINK_DELIVERY_ERROR, PROFILE_ERROR, RECURRING_TRANSACTIONS_ERROR, STATEMENTS_ERROR, TRANSFER_RECURRING_ERROR, TRANSFER_REFUND_ERROR, CRA_REPORT_ERROR, CRA_PARTNER_INSIGHTS_ERROR
    error_code
    stringstring

    The particular error code. Safe for programmatic use.

    error_code_reason
    nullablestringnullable, string

    The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; the field is omitted 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.

    error_message
    stringstring

    A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.

    display_message
    nullablestringnullable, string

    A user-friendly representation of the error code. null if the error is not related to user action.

    This may change over time and is not safe for programmatic use.

    request_id
    stringstring

    A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.

    causes
    arrayarray

    In this product, a request can pertain to more than one Item. If an error is returned for such a request, 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, and for the USER_ERROR codes USER_ITEM_ASSOCIATION_FAILED and USER_ITEM_REMOVAL_FAILED. causes will also not be populated inside an error nested within a warning object.

    status
    nullableintegernullable, integer

    The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.

    documentation_url
    stringstring

    The URL of a Plaid documentation page with more information about the error

    suggested_action
    nullablestringnullable, string

    Suggested steps for resolving the error

    required_account_subtypes
    [string][string]

    A list of the account subtypes that were requested via the account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.

    provided_account_subtypes
    [string][string]

    A list of the account subtypes that were extracted but did not match the requested subtypes via the account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.

    Choose one schema:
    • When product is cra_qualify, metadata is object, attributes is object.
    • When product is cra_income_insights, include items; metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes contains income_streams, user_summary.
    • When product is cra_cashflow_insights, metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes is object.
    • When product is cra_network_insights, metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes is object.
    • When product is cra_lend_score, include scores; metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date.
    • When product is cra_base_report, include items; metadata contains generated_time, item_count, account_count, institution_ids, days_requested, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes contains nsf_overdraft_transactions_count, nsf_overdraft_transactions_count_30d, nsf_overdraft_transactions_count_60d, nsf_overdraft_transactions_count_90d, total_inflow_amount, total_inflow_amount_30d, total_inflow_amount_60d, total_inflow_amount_90d, total_outflow_amount, total_outflow_amount_30d, total_outflow_amount_60d, total_outflow_amount_90d.
    • When product is cra_lend_score_complete, include items; metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes contains lend_scores, cashflow_insights, network_insights.
    • When product is cra_income_complete, include items; metadata contains generated_time, item_count, account_count, institution_ids, primary_account_count, depository_account_type_count, credit_account_type_count, investment_account_type_count, other_account_type_count, multiple_owner_account_count, oldest_transaction_date, most_recent_transaction_date, attributes contains income_insights.
    attributes
    objectobject
    income_streams
    [object][object]

    The income streams detected for the user.

    income_stream_id
    stringstring

    A unique identifier for an income stream. If the report is regenerated and a new report_id is created, the new report will have a new set of income_stream_ids.

    start_date
    nullablestringnullable, string

    Minimum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be null if the producer could not compute a date range.

    Format: date
    end_date
    nullablestringnullable, string

    Maximum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be null if the producer could not compute a date range.

    Format: date
    description
    nullablestringnullable, string

    The most common name or original description for the underlying income transactions. Only populated when scope is CLIENT_USER; null for any other scope.

    insights
    objectobject

    Modeled insights for a given income stream.

    income_category
    objectobject

    The income category for a given stream. The streams returned in the response will be filtered based on these primary and secondary income categories.

    See the Income V2 Category Taxonomy for a full list of income categories.

    primary
    stringstring

    A high level category that communicates the broad category of the stream.

    secondary
    stringstring

    A granular category conveying the stream's intent.

    pay_frequency
    stringstring

    The income pay frequency.

    Possible values: WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, DAILY, UNKNOWN
    income_provider
    nullableobjectnullable, object

    The object containing data about the income provider.

    name
    stringstring

    The name of the income provider.

    is_normalized
    booleanboolean

    Indicates whether the income provider name is normalized by comparing it against a canonical set of known providers.

    status
    stringstring

    The status of the income sources.

    ACTIVE: The income source is active.

    INACTIVE: The income source is inactive.

    UNKNOWN: The income source status is unknown.

    Possible values: ACTIVE, INACTIVE, UNKNOWN
    next_payment
    nullableobjectnullable, object

    Metadata of the income stream's next payment.

    date
    stringstring

    The expected date of the income stream's next payment. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    income_metrics
    objectobject

    Modeled income metrics for a given income stream or user summary.

    current
    nullableobjectnullable, object

    Modeled estimate of current income based on recently observed income transactions.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    projected
    nullableobjectnullable, object

    Forward-looking modeled estimate of income based on recent income transactions and trends in active streams.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    transactions
    [object][object]

    The transactions data for the income stream ordered by ascending date. Only populated when scope is CLIENT_USER; empty for any other scope.

    transaction_id
    stringstring

    The unique ID of the transaction. Like all Plaid identifiers, the transaction_id is case sensitive.

    item_id
    stringstring

    The item_id of the Item associated with this webhook, warning, or error

    account_id
    stringstring

    Plaid's unique identifier for the account. This value will not change unless Plaid can't reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new 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.

    amount
    numbernumber

    The settled value of the transaction, denominated in the transaction's currency as stated in 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
    stringstring

    For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    original_description
    stringstring

    The string returned by the financial institution to describe the transaction.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    outlier
    objectobject

    Metadata on whether this income transaction is an outlier.

    is_outlier
    booleanboolean

    Indicates whether an income transaction amount is unusually high compared to the amounts for that stream.

    amount
    nullablenumbernullable, number

    The amount that the transaction differs from the stream average transaction amount.

    user_summary
    nullableobjectnullable, object

    Aggregated summary of all income streams for this user.

    income_metrics
    [object][object]

    List of a user's aggregated income metrics for each currency.

    current
    nullableobjectnullable, object

    Modeled estimate of current income based on recently observed income transactions.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    projected
    nullableobjectnullable, object

    Forward-looking modeled estimate of income based on recent income transactions and trends in active streams.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    lend_scores
    [object][object]

    The results for the requested LendScore variants. If a variant fails due to a client error, its score is null and its error_code is populated.

    variant
    stringstring

    The variant identifier for a LendScore result.

    Possible values: GENERALIST, AUTO, MORTGAGE, SHORT_TERM_LOANS, ARC
    score
    nullableintegernullable, integer

    The score returned by the LendScore model for this variant.

    reason_codes
    [string][string]

    The reasons for an individual having risk according to this LendScore variant. For a full list of possible reason codes and a mapping of reason codes to human-readable reasons, contact your Plaid account manager. Empty if the variant could not be computed.

    error_code
    nullablestringnullable, string

    The error code explaining why this LendScore variant could not be computed, such as INSUFFICIENT_TRANSACTION_DATA or NO_ACCOUNTS. null on success. New codes may be added over time, so treat an unrecognized value as a generic failure.

    cashflow_insights
    nullableobjectnullable, object

    A map of Cashflow Insights attributes, where the key is a string and the value is a string, float, int, or boolean. The specific list of attributes depends on the version requested. For a full list, contact your account manager. May be null if attributes were not available.

    network_insights
    nullableobjectnullable, object

    A map of Network Insights attributes, where the key is a string and the value is a float, int, or boolean. The specific list of attributes depends on the version requested. For a full list, contact your account manager. May be null if attributes were not available.

    income_insights
    nullableobjectnullable, object

    Income Insights attribute data returned by /cra/report/get.

    income_streams
    [object][object]

    The income streams detected for the user.

    income_stream_id
    stringstring

    A unique identifier for an income stream. If the report is regenerated and a new report_id is created, the new report will have a new set of income_stream_ids.

    start_date
    nullablestringnullable, string

    Minimum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be null if the producer could not compute a date range.

    Format: date
    end_date
    nullablestringnullable, string

    Maximum of all dates within the specific income stream. The date will be returned in an ISO 8601 format (YYYY-MM-DD). May be null if the producer could not compute a date range.

    Format: date
    description
    nullablestringnullable, string

    The most common name or original description for the underlying income transactions. Only populated when scope is CLIENT_USER; null for any other scope.

    insights
    objectobject

    Modeled insights for a given income stream.

    income_category
    objectobject

    The income category for a given stream. The streams returned in the response will be filtered based on these primary and secondary income categories.

    See the Income V2 Category Taxonomy for a full list of income categories.

    primary
    stringstring

    A high level category that communicates the broad category of the stream.

    secondary
    stringstring

    A granular category conveying the stream's intent.

    pay_frequency
    stringstring

    The income pay frequency.

    Possible values: WEEKLY, BIWEEKLY, SEMI_MONTHLY, MONTHLY, DAILY, UNKNOWN
    income_provider
    nullableobjectnullable, object

    The object containing data about the income provider.

    name
    stringstring

    The name of the income provider.

    is_normalized
    booleanboolean

    Indicates whether the income provider name is normalized by comparing it against a canonical set of known providers.

    status
    stringstring

    The status of the income sources.

    ACTIVE: The income source is active.

    INACTIVE: The income source is inactive.

    UNKNOWN: The income source status is unknown.

    Possible values: ACTIVE, INACTIVE, UNKNOWN
    next_payment
    nullableobjectnullable, object

    Metadata of the income stream's next payment.

    date
    stringstring

    The expected date of the income stream's next payment. The date will be returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    income_metrics
    objectobject

    Modeled income metrics for a given income stream or user summary.

    current
    nullableobjectnullable, object

    Modeled estimate of current income based on recently observed income transactions.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    projected
    nullableobjectnullable, object

    Forward-looking modeled estimate of income based on recent income transactions and trends in active streams.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    transactions
    [object][object]

    The transactions data for the income stream ordered by ascending date. Only populated when scope is CLIENT_USER; empty for any other scope.

    transaction_id
    stringstring

    The unique ID of the transaction. Like all Plaid identifiers, the transaction_id is case sensitive.

    item_id
    stringstring

    The item_id of the Item associated with this webhook, warning, or error

    account_id
    stringstring

    Plaid's unique identifier for the account. This value will not change unless Plaid can't reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new 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.

    amount
    numbernumber

    The settled value of the transaction, denominated in the transaction's currency as stated in 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
    stringstring

    For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an ISO 8601 format (YYYY-MM-DD).

    Format: date
    original_description
    stringstring

    The string returned by the financial institution to describe the transaction.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    outlier
    objectobject

    Metadata on whether this income transaction is an outlier.

    is_outlier
    booleanboolean

    Indicates whether an income transaction amount is unusually high compared to the amounts for that stream.

    amount
    nullablenumbernullable, number

    The amount that the transaction differs from the stream average transaction amount.

    user_summary
    nullableobjectnullable, object

    Aggregated summary of all income streams for this user.

    income_metrics
    [object][object]

    List of a user's aggregated income metrics for each currency.

    current
    nullableobjectnullable, object

    Modeled estimate of current income based on recently observed income transactions.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    projected
    nullableobjectnullable, object

    Forward-looking modeled estimate of income based on recent income transactions and trends in active streams.

    monthly
    objectobject

    Modeled estimate of the monthly income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    annual
    objectobject

    Modeled estimate of the annual income.

    gross_income
    numbernumber

    Gross Income modeled from trends of observed transactions.

    net_income
    numbernumber

    Net Income estimated from observed transactions.

    iso_currency_code
    nullablestringnullable, string

    The ISO 4217 currency code of the amount or balance.

    unofficial_currency_code
    nullablestringnullable, string

    The unofficial currency code associated with the amount or balance. Always 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.

    items
    arrayarray
    Choose one schema: [object], [object], [object]
    scores
    [object][object]

    The results for the requested LendScore variants. If a variant fails due to a client error, its score is null and its error_code is populated.

    variant
    stringstring

    The variant identifier for a LendScore result.

    Possible values: GENERALIST, AUTO, MORTGAGE, SHORT_TERM_LOANS, ARC
    score
    nullableintegernullable, integer

    The score returned by the LendScore model for this variant.

    reason_codes
    [string][string]

    The reasons for an individual having risk according to this LendScore variant. For a full list of possible reason codes and a mapping of reason codes to human-readable reasons, contact your Plaid account manager. Empty if the variant could not be computed.

    error_code
    nullablestringnullable, string

    The error code explaining why this LendScore variant could not be computed, such as INSUFFICIENT_TRANSACTION_DATA or NO_ACCOUNTS. null on success. New codes may be added over time, so treat an unrecognized value as a generic failure.

    request_id
    stringstring

    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

    user_id
    stringstring

    A unique user identifier, created by /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.

    client_user_id
    nullablestringnullable, string

    The unique ID representing the end user that you supplied as client_user_id when creating the user via /user/create. null if the user has no client_user_id on record.

    warnings
    [object][object]

    User or report-level errors that affected the overall report but do not map to a specific product failure.

    warning_type
    stringstring

    The warning type, which will always be CHECK_REPORT_WARNING

    warning_code
    stringstring

    The warning code identifies a specific kind of warning.

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

    Possible values: IDENTITY_UNAVAILABLE, TRANSACTIONS_UNAVAILABLE, USER_FRAUD_ALERT
    cause
    nullableobjectnullable, object

    An error object and associated item_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.

    error_type
    stringstring

    A broad categorization of the error. Safe for programmatic use.

    Possible values: INVALID_REQUEST, INVALID_RESULT, INVALID_INPUT, INSTITUTION_ERROR, RATE_LIMIT_EXCEEDED, API_ERROR, ITEM_ERROR, ASSET_REPORT_ERROR, BASE_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_ERROR, IDEMPOTENCY_ERROR, ASSETS_ERROR, CRA_MONITORING_ERROR, CREDIT_PROFILE_REPORT_ERROR, ENCOMPASS_ERROR, ENRICH_ERROR, FRAUD_INSIGHTS_ERROR, FREDDIE_MAC_ERROR, LINK_DELIVERY_ERROR, PROFILE_ERROR, RECURRING_TRANSACTIONS_ERROR, STATEMENTS_ERROR, TRANSFER_RECURRING_ERROR, TRANSFER_REFUND_ERROR, CRA_REPORT_ERROR, CRA_PARTNER_INSIGHTS_ERROR
    error_code
    stringstring

    The particular error code. Safe for programmatic use.

    error_code_reason
    nullablestringnullable, string

    The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; the field is omitted 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.

    error_message
    stringstring

    A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.

    display_message
    nullablestringnullable, string

    A user-friendly representation of the error code. null if the error is not related to user action.

    This may change over time and is not safe for programmatic use.

    request_id
    stringstring

    A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.

    causes
    arrayarray

    In this product, a request can pertain to more than one Item. If an error is returned for such a request, 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, and for the USER_ERROR codes USER_ITEM_ASSOCIATION_FAILED and USER_ITEM_REMOVAL_FAILED. causes will also not be populated inside an error nested within a warning object.

    status
    nullableintegernullable, integer

    The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.

    documentation_url
    stringstring

    The URL of a Plaid documentation page with more information about the error

    suggested_action
    nullablestringnullable, string

    Suggested steps for resolving the error

    required_account_subtypes
    [string][string]

    A list of the account subtypes that were requested via the account_filters parameter in /link/token/create. Currently only populated for NO_ACCOUNTS errors from Items with investments_auth as an enabled product.

    provided_account_subtypes
    [string][string]

    A list of the account subtypes that were extracted but did not match the requested subtypes via the 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
    stringstring

    The item_id of the Item associated with this webhook, warning, or error

    Response Object
    {
      "request_id": "eYupqX1mZkEuQRx",
      "user_id": "usr_abc123",
      "client_user_id": "your-db-id-3b24110",
      "warnings": [],
      "report": {
        "report_id": "cra-report-production-6f8b1e0c-4d2a-4c7e-9a3b-2f1d8e5a7c90",
        "client_report_id": "908en3djkk342",
        "retrieved_time": "2024-01-15T10:30:00Z",
        "scope": "CLIENT_USER",
        "decision_stage": "DECISIONING",
        "consumer_report_permissible_purpose": "EXTENSION_OF_CREDIT",
        "products": [
          {
            "product": "cra_lend_score",
            "version": "V2",
            "metadata": {
              "generated_time": "2024-01-15T10:30:00Z",
              "item_count": 3,
              "account_count": 5,
              "institution_ids": [
                "ins_56"
              ],
              "primary_account_count": 1,
              "depository_account_type_count": 3,
              "credit_account_type_count": 2,
              "investment_account_type_count": 0,
              "other_account_type_count": 0,
              "multiple_owner_account_count": 0,
              "oldest_transaction_date": "2023-01-15",
              "most_recent_transaction_date": "2024-01-14"
            },
            "scores": [
              {
                "variant": "GENERALIST",
                "score": 1472,
                "reason_codes": [
                  "PCS0220",
                  "PCS0216"
                ],
                "error_code": null
              }
            ],
            "errors": []
          },
          {
            "product": "cra_cashflow_insights",
            "version": "V2",
            "metadata": {
              "generated_time": "2024-01-15T10:30:00Z",
              "item_count": 3,
              "account_count": 5,
              "institution_ids": [
                "ins_56"
              ],
              "primary_account_count": 1,
              "depository_account_type_count": 3,
              "credit_account_type_count": 2,
              "investment_account_type_count": 0,
              "other_account_type_count": 0,
              "multiple_owner_account_count": 0,
              "oldest_transaction_date": "2023-01-15",
              "most_recent_transaction_date": "2024-01-14"
            },
            "attributes": {
              "accounts_count": 5,
              "depository_accounts_count": 3,
              "credit_accounts_count": 2,
              "depository_latest_balance_user_sum_1d": 4823.56,
              "net_income_amt_sum_90d": 13418.75,
              "income_sources_count_90d": 1,
              "income_is_salaried_90d": 1,
              "payment_behavior_nsf_late_fees_count_30d": 0,
              "cash_reliance_atm_withdrawal_amt_cv_90d": 0.42
            },
            "errors": []
          },
          {
            "product": "cra_income_insights",
            "version": "V2",
            "metadata": {
              "generated_time": "2024-01-15T10:30:00Z",
              "item_count": 1,
              "account_count": 1,
              "institution_ids": [
                "ins_56"
              ],
              "primary_account_count": 1,
              "depository_account_type_count": 1,
              "credit_account_type_count": 0,
              "investment_account_type_count": 0,
              "other_account_type_count": 0,
              "multiple_owner_account_count": 0,
              "oldest_transaction_date": "2023-01-15",
              "most_recent_transaction_date": "2024-01-14"
            },
            "attributes": {
              "income_streams": [],
              "user_summary": null
            },
            "items": [
              {
                "institution_id": "ins_56",
                "institution_name": "Chase",
                "item_id": "AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7",
                "last_updated_time": "2024-01-15T10:28:00Z",
                "accounts": [
                  {
                    "account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",
                    "name": "Plaid Checking Account",
                    "official_name": "Plaid Checking Account",
                    "mask": "8888",
                    "type": "depository",
                    "subtype": "checking"
                  }
                ]
              }
            ],
            "errors": []
          },
          {
            "product": "cra_network_insights",
            "version": "V2",
            "metadata": {
              "generated_time": "2024-01-15T10:30:00Z",
              "item_count": 3,
              "account_count": 5,
              "institution_ids": [
                "ins_56"
              ],
              "primary_account_count": 1,
              "depository_account_type_count": 3,
              "credit_account_type_count": 2,
              "investment_account_type_count": 0,
              "other_account_type_count": 0,
              "multiple_owner_account_count": 0,
              "oldest_transaction_date": "2023-01-15",
              "most_recent_transaction_date": "2024-01-14"
            },
            "attributes": {
              "plaid_conn_user_days_since_first_conn_all": 412,
              "plaid_conn_user_lifetime_lending_count": 3,
              "plaid_conn_user_lifetime_personal_lending_flag": 1,
              "plaid_conn_user_active_lending_count_90d": 1,
              "plaid_conn_user_lifetime_cash_advance_primary_count": 0,
              "plaid_conn_user_active_ewa_primary_count_90d": 0
            },
            "errors": []
          }
        ]
      }
    }
    =*=*=*=

    /cra/report/create

    Generate an updated Consumer Report for your user

    /cra/report/create generates a Consumer Report for a user. With scope set to PLAID_NETWORK, the report is generated from the Plaid Network view of the user's profile. With CLIENT_USER, the report is generated from only the Items the user linked to your client.

    Each requested product is generated asynchronously. Use the returned report_id to retrieve the report once its products are ready.

    /cra/report/create

    Request fields

    client_id
    stringstring

    Your Plaid API 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
    stringstring

    Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.

    user_id
    requiredstringrequired, string

    A unique user identifier, created by /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.

    products
    required[object]required, [object]

    The Plaid Check products, versions, and options to generate for the report.

    Min items: 1
    Possible values: cra_base_report, cra_income_insights, cra_cashflow_insights, cra_lend_score, cra_network_insights, cra_lend_score_complete, cra_income_complete
    product
    requiredstringrequired, string
    version
    requiredstringrequired, string

    A string that specifies a particular version of a CRA product.

    Choose one schema:
    • When product is cra_base_report, options contains require_identity.
    • When product is cra_cashflow_insights.
    • When product is cra_income_insights, options contains income_insights_filter.
    • When product is cra_lend_score, options contains variants.
    • When product is cra_network_insights.
    • When product is cra_lend_score_complete, options contains variants.
    • When product is cra_income_complete, options contains income_insights_filter.
    options
    objectobject
    require_identity
    booleanboolean

    Require the report to include identity information. If identity information is not available, report generation fails.

    income_insights_filter
    objectobject

    Filters the returned income streams based on the specified income categories. If no filters are requested, streams from the following default set of categories are returned:

    • EARNED_INCOME.* (EARNED_INCOME.SALARY, EARNED_INCOME.GIG_ECONOMY, EARNED_INCOME.SELF_EMPLOYED)
    • BENEFITS.DISABILITY
    • RETIREMENT.* (RETIREMENT.GOVERNMENT_DERIVED, RETIREMENT.PRIVATE_RETIREMENT, RETIREMENT.PLAN_DISTRIBUTION)

    The final list of income categories is generated by adding the included_categories, then removing the excluded_categories. Priority is given to excluded_categories in the case of collisions.

    Filter patterns supported:

    • *: All categories
    • PRIMARY.*: All categories within the specified primary category
    • PRIMARY.SECONDARY: A specific income category

    For a list of income categories, see the Income V2 Category Taxonomy.

    included_categories
    required[string]required, [string]

    Includes income streams matching the specified categories.

    excluded_categories
    [string][string]

    Excludes income streams matching the specified categories.

    variants
    [string][string]
    scope
    requiredstringrequired, string

    Determines which Items are used to generate the report. PLAID_NETWORK uses the Plaid Network view of the user's profile. CLIENT_USER uses only the Items linked by this client.

    Possible values: PLAID_NETWORK, CLIENT_USER
    decision_stage
    requiredstringrequired, string

    The stage in the credit or other eligibility decisioning lifecycle for which a given report will be utilized.

    Allowable permissible purposes for PREQUALIFICATION:

    • WRITTEN_INSTRUCTION_PREQUALIFICATION

    Allowable permissible purposes for DECISIONING:

    • ELIGIBILITY_FOR_GOVT_BENEFITS
    • EXTENSION_OF_CREDIT
    • LEGITIMATE_BUSINESS_NEED_OTHER
    • LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING
    • WRITTEN_INSTRUCTION_OTHER

    If an incompatible decision_stage and consumer_report_permissible_purpose pairing is requested, an INVALID_FIELD error is returned. If your client isn't yet enabled for a given decision_stage on a product, a DECISION_STAGE_NOT_ENABLED error is returned instead (contact your Plaid account manager to enable it).

    Possible values: PREQUALIFICATION, DECISIONING
    consumer_report_permissible_purpose
    requiredstringrequired, string

    Describes the reason you are generating a Consumer Report for this user. The purpose must be one of the allowable permissible purposes for the decision_stage.

    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.

    ELIGIBILITY_FOR_GOVT_BENEFITS: In connection with an eligibility determination for a government benefit where the entity is required to consider an applicant's financial status pursuant to FCRA Section 604(a)(3)(D).

    INSURANCE_UNDERWRITING: In connection with the underwriting of insurance involving the consumer pursuant to FCRA Section 604(a)(3)(C).

    Possible values: EXTENSION_OF_CREDIT, LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING, LEGITIMATE_BUSINESS_NEED_OTHER, WRITTEN_INSTRUCTION_PREQUALIFICATION, WRITTEN_INSTRUCTION_OTHER, ELIGIBILITY_FOR_GOVT_BENEFITS, INSURANCE_UNDERWRITING
    client_report_id
    stringstring

    Client-generated identifier, which can be used by lenders to track loan applications.

    days_requested
    integerinteger

    The number of days of history to include in Plaid Check products. Maximum is 731. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.

    Minimum: 0
    Maximum: 731
    days_required
    integerinteger

    The minimum number of days of data required for the report to be successfully generated.

    Minimum: 0
    Maximum: 184
    include_investments
    booleanboolean

    Indicates that investment data should be extracted from the linked account(s).

    include_identity_match
    booleanboolean

    Indicates that identity match results should be included for all products in the report that contain identity information. Defaults to false.

    webhook
    stringstring

    The destination URL to which the report's webhooks will be sent.

    Format: url
    /cra/report/create
    try {
      const response = await client.craReportCreate({
        user_id: 'usr_9nSp2KuZ2x4JDw',
        scope: 'CLIENT_USER',
        webhook: 'https://sample-web-hook.com',
        days_requested: 365,
        decision_stage: 'DECISIONING',
        consumer_report_permissible_purpose: 'EXTENSION_OF_CREDIT',
        products: [
          { product: 'cra_base_report', version: 'V1' },
          { product: 'cra_income_insights', version: 'V2' },
          { product: 'cra_lend_score', version: 'V2' },
        ],
      });
    } catch (error) {
      // handle error
    }
    
    /cra/report/create

    Response fields

    report_id
    stringstring

    The identifier of the report being generated. Use it to retrieve the report once its products are ready.

    request_id
    stringstring

    A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

    Response Object
    {
      "request_id": "eYupqX1mZkEuQRx",
      "report_id": "cra-report-production-3c9d2a71-5e4b-4f0a-8b6d-7a1e9f2c4b58"
    }

    Webhooks

    When you create a new report, either by creating a Link token with cra_report_parameter or by calling /cra/report/create, Plaid Check will start generating the requested products for you asynchronously. When generation finishes, whether every product succeeded, only some did, or none did, Plaid Check will send you a CRA_REPORT: CRA_REPORT_READY webhook. Its successful_products and failed_products fields indicate which products were generated, and error_code is populated when every product failed. Call /cra/report/get to retrieve the generated products and to see error details for any failed products.

    =*=*=*=

    CRA_REPORT_READY

    Fired when generation finishes for a Consumer Report requested via /cra/report/create or a Link session configured with cra_report_parameter, whether every requested product was generated, only some were, or none were. successful_products and failed_products indicate which products were generated, and error_code is populated when every product failed. Call /cra/report/get for the generated products and for error details on failed products.

    CraReportReadyWebhook

    Properties

    webhook_type
    stringstring

    CRA_REPORT

    webhook_code
    stringstring

    CRA_REPORT_READY

    user_id
    stringstring

    The user_id associated with the user whose data is being requested. This is received by calling /user/create.

    client_user_id
    stringstring

    The client_user_id you supplied for this user when calling /user/create. null if no client_user_id is associated with the user.

    report_id
    stringstring

    The identifier of the Consumer Report. Pass this value to /cra/report/get to retrieve the report.

    client_report_id
    stringstring

    The client_report_id you supplied when requesting the report, if any.

    scope
    stringstring

    Determines whose items are used. PLAID_NETWORK (default) uses the Plaid Network view of the user's profile. CLIENT_USER uses only the items linked by this client.

    Possible values: PLAID_NETWORK, CLIENT_USER
    successful_products
    [object][object]

    Specifies a list of products that have successfully been generated for the report.

    product
    stringstring

    A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.

    Possible values: cra_base_report, cra_income_insights, cra_cashflow_insights, cra_lend_score, cra_network_insights
    version
    stringstring

    A string that specifies a particular version of a CRA product.

    failed_products
    [object][object]

    Specifies a list of products that have failed to generate for the report. Additional detail on what caused the failure can be found in the product's errors when calling /cra/report/get.

    product
    stringstring

    A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.

    Possible values: cra_base_report, cra_income_insights, cra_cashflow_insights, cra_lend_score, cra_network_insights
    version
    stringstring

    A string that specifies a particular version of a CRA product.

    generated_time
    stringstring

    The timestamp when the products were generated, in ISO 8601 format. Null if there are no successful products.

    Format: date-time
    error_code
    stringstring

    The reason every product in a Consumer Report failed to generate. null when at least one product succeeded.

    DATA_UNAVAILABLE: Plaid could not retrieve enough data from the user's Items to generate any of the requested products. Sending the user through Link to add or repair Items may resolve this.

    INTERNAL_SERVER_ERROR: Plaid encountered an unexpected error while generating the report.

    Possible values: DATA_UNAVAILABLE, INTERNAL_SERVER_ERROR, null
    environment
    stringstring

    The Plaid environment the webhook was sent from

    Possible values: sandbox, production
    API Object
    {
      "webhook_type": "CRA_REPORT",
      "webhook_code": "CRA_REPORT_READY",
      "user_id": "usr_8c3ZbDBYjaqUXZ",
      "client_user_id": "uid_12345",
      "report_id": "cra-report-production-3c9d2a71-5e4b-4f0a-8b6d-7a1e9f2c4b58",
      "client_report_id": "908en3djkk342",
      "scope": "CLIENT_USER",
      "successful_products": [
        {
          "product": "cra_base_report",
          "version": "V1"
        },
        {
          "product": "cra_income_insights",
          "version": "V2"
        }
      ],
      "failed_products": [
        {
          "product": "cra_lend_score",
          "version": "V2"
        }
      ],
      "generated_time": "2026-01-12T20:23:59Z",
      "error_code": null,
      "environment": "production"
    }
    Developer community
    GitHub
    GitHub
    YouTube
    YouTube
    Discord
    Discord