Plaid Ledger flow of funds
Understand how Transfer moves money with the Plaid Ledger
Plaid Ledger overview
The Plaid Ledger is a balance you keep with Plaid for use with the Transfer product. It is a settlement balance that all ACH debit transfers settle into, and all ACH/RTP/FedNow credits are paid out from. Plaid provides several tools for moving money between your business checking account and your Ledger balance.
Receiving payments
Your Plaid Ledger account has two balance values: pending
, which contains funds that are in processing, and available
, which contain funds that are available for use.
When receiving payments from your customers (via an ACH debit transfer), funds are placed in the pending
balance as soon as your transfer is created.
These funds then become available
after a hold period elapses, typically at 3pm EST five business days after the transfer's settled
event is emitted. If you are using same-day ACH and your transfer is posted in time to make that day's transmission deadline, this settled
event will occur the same day that the transfer was created. Add one additional business day if you miss the cutoff window, and one business day if you are not using same-day ACH.
See below for an example schedule of when an ACH debit is withdrawn from a consumer's account (corresponding to the settled
event), and when the funds are made available to you.
If the ACH debit experiences a return, the funds will be clawed back from the Plaid Ledger balance. If the funds have already been made available and withdrawn to your business checking account, the available balance will go negative.
Issuing payouts
When issuing payouts to your customers (via ACH credit and RTP/FedNow transfers), the funds for the payout are deducted from your available balance and are sent out to your consumer in the next available ACH window, or immediately for RTP/FedNow. If there are not enough funds in your available balance to cover a transfer, then /transfer/authorization/create
will decline the transfer authorization with NSF
(insufficient funds) as the decision_rationale
.
You can check the value of the Plaid Ledger balance any time via the Dashboard or by calling /transfer/ledger/get
.
In order to avoid declined transfers, you should discuss with your company the level of funds you want to keep in the balance, and how you intend to refill the balance once it has been used.
How much money to keep in your Ledger will depend on your business cash flow constraints. It is recommended to keep a minimum of three days' worth of funds in your balance to cover activity taking place over the weekend, when ACH credits and wires are unavailable.
Moving money between Plaid Ledger and your bank account
It is important to consider your strategy for moving funds between your Plaid Ledger balance and your business checking bank account. The Plaid Ledger balance cannot be used to store funds indefinitely.
Plaid provides four methods to manage your Plaid Ledger balance. Sweeps to or from your Ledger balance are priced the same as a transfer (for example, a network=rtp
Ledger balance withdrawal is priced as an RTP transfer).
Each of the following methods will create a sweep object, viewable in /transfer/sweep/list
and will emit sweep.*
events for you to observe. See Reconciling Transfers for more details.
Method | Optimizes for... |
---|---|
Dashboard | Ad-hoc manual deposits/withdrawals |
API endpoints | Custom deposit/withdrawal logic |
Automatic balance thresholds | Ongoing hands-off management |
Pushing funds to Ledger via wire or ACH | Immediate funds availability |
If you are a Platform Payments (beta) customer, the API is the only method available for moving funds. For more details on moving money as a Platform, see the Platform Payments documentation.
Moving money via the Dashboard
You can use the Plaid Dashboard to manually trigger a deposit or withdrawal. Withdrawals will push the funds to your business checking account in the next same-day ACH window. Deposits into your Plaid Ledger balance will pull from your business checking account using same-day ACH, and put the funds in your pending balance. These funds will be made available after a three business day hold.
You must ensure that your accounting department does not reject pulls from Plaid to deposit money into your Ledger balance. Contact your bank to ensure you accept incoming ACH debits from the following company or Originator ID: 1460820571.
To add or change a funding account, navigate to the “Account Details” page of the Transfer dashboard and click on “Add account”.
You will then be able to use Plaid Link to automatically connect your account and verify that it is open, active, and belongs to you. For accounts that are unable to be linked via Plaid, there will be an option to manually enter account and routing information, and submit two bank statements to confirm your ownership of the account. Manually linked accounts will be reviewed by the Plaid team, and you will receive an email confirmation upon approval.
When new funding accounts are added, an email notification is sent to admins on the Plaid account notifying them of the change.
Within the dashboard, you can also specify which funding account to use as the default account for sweeps, give the account a friendly name, or remove the account.
Automatically managing the balance level
You can set up automatic balance thresholds, allowing you to operate in a "set and forget" model. You can set both a minimum balance and a maximum balance.
Every business day at 3pm EST, Plaid will attempt to withdraw or deposit funds, depending on your configuration. If your available Ledger balance exceeds the maximum balance defined, Plaid will move money from your Ledger to your bank account using Same Day ACH. These funds should be available in your business checking account by 6pm EST.
If your overall Ledger balance (including both pending and available balances) goes below your minimum balance, Plaid will move funds from your bank account to your Ledger using Same Day ACH. These funds will be placed in the pending balance, and made available 3 business days after the funds settle to Plaid.
To enable automatic refills and withdrawals, update your settings on the Transfer account details page.
Moving money via API
The API is the most flexible method for moving funds, as you can determine when and how your money moves: via Same Day ACH, standard ACH, or instantly via RTP/FedNow.
To deposit funds into your Plaid Ledger balance via API, use /transfer/ledger/deposit
. This endpoint will issue a sweep to withdraw funds from your funding account. Once Plaid has received the funds (you may specify either standard or Same Day ACH), they will be made available after a three business day hold.
To withdraw funds from your Plaid Ledger balance via API, use /transfer/ledger/withdraw
. You can choose the rails to use for the transfer: Same Day ACH, standard ACH, or instant.
You can check the value of the Plaid Ledger balance via API by calling /transfer/ledger/get
.
Moving money via ACH or wire transfer
Use the Plaid Dashboard to view an account and routing number you can push funds to via ACH credit or wire. In this approach, you contact your bank (often via their website) to push funds to Plaid. Pushed funds become available for use in your Plaid Ledger as soon as they are received from the network. This method can only be used to deposit money into your Ledger; it cannot be used to withdraw funds. Incoming wires pushed to the Plaid Ledger are charged a separate fee, billed to your account. Incoming ACH and RTP credits pushed to the Plaid Ledger incur no fee. For more details, contact your Plaid Account Manager.
Maintaining multiple Ledger balances
If relevant, you can maintain multiple Ledger balances with Plaid. This is useful when you need separate funds for different use cases. For instance:
- You may want to use separate funds to issue credits and collect debits.
- You have legal requirements to keep funds separate for each US state.
Every Plaid client has one Ledger created and ready to use as their default Ledger to originate transfers or sweeps. You can create additional Ledgers in the Plaid Transfer dashboard. You can also view the detailed info of each Ledger via the dashboard, including the Ledger’s id, name, balance and account/routing numbers.
Once created, additional Ledgers cannot be deleted.
Working with multiple Ledgers
If you have created multiple Ledgers, you should indicate which Ledger to use by specifying a ledger_id
when calling /transfer/authorization/create
, /transfer/ledger/deposit
, and /transfer/ledger/withdraw
. If no ledger_id
is specified, Plaid will use your default Ledger.
Transfer objects, including authorization
, transfer
, transfer_event
, sweep
and ledger
, will contain a ledger_id
field, indicating which Ledger the object is associated with.