Plaid logo
Docs
ALL DOCS

Investments Move

  • Introduction to Investments Move
  • Add Investments Move to your app
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:
    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

    Introduction to Investments Move

    Automate ACATS and reduce rejections with broker-sourced data

    Get started with Investments Move
    API Reference

    Overview

    Investments Move (US and CA only) allows you to obtain broker-sourced data to automate brokerage account transfers, reduce operational complexity, and avoid rejections. You can use Investments Move to replace your existing manual ACATS data entry flow or build a new, high-performing flow. Investments Move is designed to increase both the number of users who submit an ACATS transfer and the rate at which these requests successfully settle.

    Using Investments Move, a user accesses their brokerage account via a Plaid Link-initiated flow, and Plaid returns the source of truth data needed to submit an ACATS transfer, such as account number, account type, account holder name, holdings data, and DTC codes. For brokerages in Canada, Investments Move can retrieve the data necessary for an ATON transfer.

    Investments Move is currently in Early Availability and available on a limited basis. To request access, if you are new to Plaid, contact Sales; if you are already a Plaid customer, contact your Account Manager.

    Looking for investment holdings or trading activity, without initiating ACATS transfers? See Investments instead.

    Integration overview

    The steps below show an overview of how to integrate Investments Move.

    1. Call /link/token/create. Along with any other parameters you specify, make sure to include the following:
      • The products array should be set to ["investments_auth"].
      • (Optional) To enable fallback flows, set the corresponding flag within the investments_auth object. For details, see Fallback flows.
    2. On the client side, create an instance of Link using the link_token returned by /link/token/create; for more details, see the Link documentation.
    3. Once the end user has completed the Link flow, exchange the public_token for an access_token by calling /item/public_token/exchange.
    4. Call the /investments/auth/get endpoint with the access_token you received from the token exchange. This endpoint will return all the information needed to initiate an ACATS transfer, including account holder name, account number, and DTC number.

    Fallback flows

    By default, an end user will only be able to select institutions where Plaid can obtain the full account number, account holder name, and holdings data. You can optionally choose to expand the number of institutions available by enabling one or more of the flows below, which allow the end user to directly enter data that Plaid was not able to obtain directly from the broker.

    To know what data came directly from the brokerage, what was entered by the user and verified against partial data from the brokerage, and what was entered by the user but not verified by the brokerage because no data was available, you can use the data_sources object in the /investments/auth/get response.

    Masked Number Match

    Masked Number Match supports institutions where Plaid is able to obtain broker-sourced holdings data and account holder information but can only obtain a partial (masked) account number, typically the last four digits of the account number. During the Link flow, the user will be prompted to enter their full account number, which will be verified against the partial account number; if the numbers do not match, the Link attempt will fail and the user will be required to re-enter the account number.

    To enable Masked Number Match, in the /link/token/create request, set investments_auth.masked_number_match_enabled to true.

    Stated Account Number

    Stated Account Number supports institutions where Plaid is able to obtain broker-sourced holdings data, and may or may not be able to obtain account holder information, but cannot obtain any part of an account number. During the Link flow, the user will be prompted to enter their full account number. If Plaid was unable to obtain account holder information, the user will also be prompted to enter their full name.

    To enable Stated Account Number, in the /link/token/create request, set investments_auth.stated_account_number_enabled to true.

    Manual Entry

    Manual Entry supports institutions where Plaid cannot return any information. During the Link flow, users will be able to manually enter the information needed to submit the ACATS transfer. Plaid will still attempt to standardize and enrich the data they provide.

    To enable Manual Entry, in the /link/token/create request, set investments_auth.manual_entry_enabled to true.

    Testing Investments Move

    Investments Move can be tested in Sandbox without any additional permissions.

    To test fallback flows in Sandbox, use the institution Houndstooth Bank (ins_109512). The first fallback flow that is explicitly enabled in the /link/token/create call will be used. The flows will be attempted in the following order: Masked Number Match, Stated Account Number, and Manual Entry. (So for example, if both Masked Number Match and Manual Entry are enabled, Masked Number Match will be used.)

    Investments Move pricing

    Investments Move is billed on a one-time fee model. To view the exact pricing you may be eligible for, contact Sales.

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