Plaid logo
Docs
ALL DOCS

Consumer Report (by Plaid Check)

  • Introduction
  • Implementation
  • CRA Servicing
  • Migrate from Assets
  • Migrate from Income
  • Migrate from Transactions
  • Migrate from Cash Flow Updates
  • Onboard users with Plaid Layer
  • Share data with 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.

    Migrate from Cash Flow Updates

    Move an existing Cash Flow Updates integration to CRA Servicing

    The Cash Flow Updates endpoints (/cra/monitoring_insights/subscribe, /cra/monitoring_insights/get, and /cra/monitoring_insights/unsubscribe) are deprecated and will stop functioning on August 20, 2027. To continue receiving update functionality, existing customers must migrate to the CRA Servicing suite. Both integrations can run in parallel during the migration.

    CRA Servicing delivers refreshed data through the same /cra/check_report/base_report/get and /cra/check_report/income_insights/get endpoints you already use at origination, rather than through a separate endpoint and report schema. For a full walkthrough, see CRA Servicing.

    What's different

    Cash Flow Updates uses an income_categories field to limit a subscription to specific income categories. CRA Servicing has no equivalent: a CRA Servicing subscription always covers every category.

    CRA Servicing does not currently support event-driven alerts equivalent to the CASH_FLOW_UPDATES webhooks (LOW_BALANCE_DETECTED, LARGE_DEPOSIT_DETECTED, NSF_OVERDRAFT_DETECTED, NEW_LOAN_PAYMENT_DETECTED).

    The Cash Flow Updates report exposes deltas computed by Plaid. CRA Servicing delivers full Base Report and Income Insights documents on each generation instead.

    Only Base Report and Income Insights can be retrieved for a subscription-generated report. Other Consumer Report endpoints, including /cra/check_report/pdf/get, are not supported for these reports.

    Reports generated by a subscription can be retrieved only for servicing purposes. If you need a report you can use for a credit decision, call /cra/check_report/create with a decisioning permissible purpose to generate a fresh one.

    Update API subscription creation calls

    Replace /cra/monitoring_insights/subscribe and /cra/monitoring_insights/unsubscribe with /cra/servicing/subscription/create and /cra/servicing/subscription/delete. Subscriptions in the new model are per-user rather than per-Item.

    Subscribe a user to CRA Servicing
    curl -X POST https://sandbox.plaid.com/cra/servicing/subscription/create \
    -H 'Content-Type: application/json' \
    -d '{
      "client_id": "${PLAID_CLIENT_ID}",
      "secret": "${PLAID_SECRET}",
      "user_id": "usr_9nSp2KuZ2x4JDw",
      "scope": "CLIENT_USER",
      "cadence": "DAILY",
      "products": [
        { "product": "cra_base_report", "version": "V1" },
        { "product": "cra_income_insights", "version": "V1" }
      ]
    }'

    /cra/servicing/subscription/create returns a subscription_id in the format cra-sub-<env>-<uuid>, which you will need to store.

    Update webhooks

    1. Register a webhook destination for the CRA Report Updated event in the Dashboard instead of setting a URL on each subscription. You can still override the destination for an individual subscription.

    2. Replace your listeners for CASH_FLOW_INSIGHTS_UPDATED and INSIGHTS_UPDATED with a single listener for CRA_REPORT_UPDATED. When receiving this webhook, check the value of error_code: if it is absent or null, at least one product generated successfully.

    CRA_REPORT_UPDATED fires once per user per day rather than once per updated Item, so a single event can reflect changes across several Items.

    Update report fetch API calls

    1. Replace /cra/monitoring_insights/get with the /get endpoint for each product in the webhook's successful_products field: /cra/check_report/base_report/get for cra_base_report, and /cra/check_report/income_insights/get for cra_income_insights. Pass the report_id from the CRA_REPORT_UPDATED webhook, as described in Fetch the updated report.

    2. Update any code that reads the Cash Flow Updates schema to read the Base Report and Income Insights schemas instead.

    Delete Cash Flow Updates subscriptions

    1. Once a user is subscribed on the new endpoints, call /cra/monitoring_insights/unsubscribe so the Cash Flow Updates webhooks stop arriving for that user.
    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord