Plaid logo
Docs
ALL DOCS

Consumer Report (by Plaid Check)

  • Introduction
  • Implementation
  • Migrate from Assets
  • Onboard users with Layer
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
  • Why is /transactions/sync/ better than /get?
  • How do I set up a webhook for IDV?
  • What's the difference between Plaid Identity and IDV?
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.com
Log in
Get API Keys
Open nav

Migrate from Asset Reports to Base Reports

Migrate to Base Reports to unlock access to the Consumer Report

This guide will walk you through how to migrate from generating Asset Reports with Plaid's Assets product to generating Base Reports with Plaid Check's Consumer Report product.

Prerequisites

  1. Update your Plaid SDK to the latest version. The minimum required versions are listed below:
    • Python: 23.0.0
    • Go: 26.0.0
    • Java: 24.0.0
    • Node: 25.0.0
    • Ruby: 29.0.0
  2. Confirm that you have access to all required Plaid Check products in the Production environment. If you don't have access to Plaid Check, request access via the Dashboard.

Changes to Plaid Link initialization

When using Plaid Check products, you must create a user prior to sending the user through Link, and you must initialize Link with the resulting user_token. This allows Plaid to associate multiple Items with a single user.

  1. Call /user/create prior to creating a Link token
    • Include information about your user in the consumer_report_user_identity object
    • Store the user_id and user_token in your database
  2. Update your call to /link/token/create
    • Include the user_token string from /user/create
    • Replace the assets product string with cra_base_report in the products array
    • Add a cra_options object and specify your desired days_requested
  3. (Optional) If you would like Plaid to begin creating the Consumer Report immediately, include a consumer_report_permissible_purpose. Otherwise, you will need to call /cra/check_report/create to create the Consumer Report.
  4. (Optional) Unlike Assets, by default, Plaid Check includes only one linked Item per Report. To include multiple Items in a single Consumer Report, set enable_multi_item_link to true in the /link/token/create request.
Select Language
1// Generate the user_token by calling /user/create
2
3const request: LinkTokenCreateRequest = {
4 user: {
5 client_user_id: 'user-abc',
6 email_address: 'user@example.com'
7 },
8 user_token: 'user-environment-1234567-abcd-abcd-1234-1234567890ab',
9 products: ['cra_income_insights', 'cra_base_report'],
10 consumer_report_permissible_purpose: 'EXTENSION_OF_CREDIT',
11 enable_multi_item_link: 'true',
12 cra_options: {
13 days_requested: 365
14 },
15 client_name: 'The Loan Arranger',
16 language: 'en',
17 country_codes: ['US'],
18 webhook: 'https://sample-web-hook.com'
19};
20try {
21 const response = await plaidClient.linkTokenCreate(request);
22 const linkToken = response.data.link_token;
23} catch (error) {
24 // handle error
25}

For more details, see the Plaid Check Implementation guide.

Changes to post-Link integration

Update your webhook listeners to listen for the new CHECK_REPORT_READY and CHECK_REPORT_FAILED webhooks

  • Upon receiving a CHECK_REPORT_READY webhook, you should call /cra/check_report/base_report/get, along with any other Consumer Report product endpoints that you would like to use.
  • Upon receiving a CHECK_REPORT_FAILED webhook, you should call /user/items/get to determine why Items are in a bad state. If appropriate, send the user through Update Mode to repair them.

If you plan to continue using other Plaid Inc. products, such as Auth or Balance, you should continue to retrieve the public token and exchange it for an access token. If not, you no longer need to obtain an access token.

Mapping API responses

Asset Reports and Base Reports have similar but not identical schemas. This Google Sheet highlights their differences.

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