Learn how to use Transfer as a Payments Platform
View Transfer requests, responses, and example code
Learn about Plaid's key concepts and run starter code
Transfer is only supported in Plaid's Sandbox and Production environments.
For Platform Payments (beta) customers, the Platform Payments APIs provide a scalable method to onboard new end customers, or Originators, onto your platform. With Plaid’s hosted onboarding UI, you can collect and send Originators' required business data to Plaid without needing to build and maintain form fields.
Platform Payments (beta) allows you to onboard your business customers and initiate ACH transfers on their behalf. To onboard your customer, you will generate a unique onboarding URL via the API and redirect them to that URL. This onboarding URL will have an application form where they can provide necessary information such as their business details and bank account. After completing this form, they will be redirected back to your website or app. Upon approval, you can create ACH transfers on their behalf by specifying their unique ID. All funds for that particular customer will be swept to or from their business checking account, which they will connect during their onboarding.
Note that Platform Payments (beta) uses a hosted onboarding UI and cannot be used with Transfer UI.
To onboard an Originator onto your platform using Plaid’s Platform Payments and move money on their behalf:
- Create a new Originator by calling
/transfer/originator/create, which will generate an
- Generate a unique onboarding URL by calling
/transfer/questionnaire/createand redirect the Originator to that URL to complete their application with Plaid.
- Retrieve onboarding status updates for an Originator by calling
- Create an Item (
access_token) for an end user using Plaid Link,
- Move money for an Originator by calling
/transfer/createand specifying the
- (Optional) Retrieve money movement updates via
Creating a new Originator
Within your current onboarding flow for your customers (i.e. Originators), create an Originator in Plaid’s system by calling the
/transfer/originator/create endpoint. This endpoint will return an
originator_client_id, which you should store associated with the Originator's customer profile, since you’ll need to provide it when moving money on their behalf.
Generating a unique onboarding URL
originator_client_id and a
redirect_url to the
/transfer/questionnaire/create endpoint, which will return a unique URL that you should redirect the Originator to. It will take the Originator to a Plaid hosted onboarding UI where they can provide the required details and agree to the Plaid terms and conditions for ACH money movement. After clicking submit, they will be redirected back to your application via the
Retrieving onboarding status updates for an Originator
/transfer/originator/get endpoint with the
originator_client_id to receive the status of their onboarding or call
/transfer/originator/list endpoint to receive status updates for each of your Originator’s onboarding. If Plaid requires any additional information for your Originator, we will reach out directly to them to obtain it. Once an Originator's status is approved, you can move money on behalf of that Originator.
If you qualify for delegated diligence and the Originator does not fall under Plaid’s restricted use-cases, the Originator will be instantly approved. To find out if you qualify, contact your Plaid account manager.
Creating an Item for a user
Using your own client ID (i.e. not the Originator’s client ID), create an Item (
access_token) for a user using Link,
/item/public_token/exchange. Note that this Item can be used to create transfers with any
originator_client_id that you have onboarded.
Moving money for an Originator
originator_client_id of the Originator when calling
/transfer/authorization/create to authorize the Transfer. Then, with the returned
/transfer/create to move the money.