Most electronic payments and transfers to and from a bank account in the U.S. go through ACH, which stands for Automated Clearing House. To make money go from A to B, you can initiate the transfer from the sending account or you can initiate it from the receiving account. When I see complaints about ACH, it’s usually caused by not doing it the right way.
ACH Push vs Pull
If an ACH transaction is initiated from the sending account, it’s an ACH credit or figuratively an ACH push — you are pushing the money out of the sending account. When you receive a payroll direct deposit, the payroll provider is doing an ACH push into your account.
If an ACH transaction is initiated from the receiving account, it’s an ACH debit or figuratively an ACH pull — you are pulling the money into the receiving account. When you link your checking account to a mortgage or a credit card for autopay, the bank is doing an ACH pull against your checking account. When you deposit a paper check, the receiving bank uses the routing number and the account number on the check to do an ACH pull.
An ACH transfer isn’t a wire transfer. A wire transfer is faster but it usually costs more. Most banks charge $10-15 for sending a wire. Some banks also charge $10 for receiving a wire. An ACH transfer is usually free on both sides.
ODFI and RDFI
As members of the ACH network, financial institutions go by the operating rules set by an association (NACHA).
Whether it’s an ACH push or an ACH pull, the bank that initiates the ACH transaction is called the Originating Depository Financial Institution (ODFI). The bank that receives the ACH request is called the Receiving Depository Financial Institution (RDFI).
Originating and receiving refer to the ACH request, not which direction the money flows. The money flows in the same direction as the ACH request in an ACH push — from the ODFI to the RDFI.
In an ACH pull, the money flows in the opposite direction of the ACH request. The ACH request goes from the ODFI to the RDFI but the money flows from the RDFI to the ODFI.
The fundamental rule in ACH is that the bank that initiates the ACH (the ODFI) is liable for the transaction. The RDFI can reject the ACH if the account isn’t in good standing but otherwise they must honor the transaction. The RDFI can’t place any hold on the incoming ACH credit or delay the outgoing ACH debit. After posting the ACH transaction, if the account holder says the transaction isn’t authorized, the RDFI can reverse it.
ACH Limits
Because the ODFI is liable, some banks and credit unions set limits on the frequency and/or the amount of ACH transactions they initiate. For example, a credit union has a policy of not initiating any ACH pull into its checking account. It also limits any ACH push it initiates to $5,000 per business day and $15,000 over any five business days.
These limits only apply when the credit union initiates the ACH. If the ACH is initiated by another bank, the credit union must faithfully accept it.
When you see limits on the frequency or the amount of ACH transfers, the limits only apply to ACH transactions initiated by that institution. It doesn’t mean you can’t transfer more frequently or in larger amounts. It just means you have to initiate the ACH on the other side.
ACH Fees
The ACH operator charges banks less than one penny for each ACH transaction. Because this cost is so low, most banks don’t charge consumers for ACH transfers but some large banks still do. For example, Bank of America doesn’t charge for ACH pulls but it used to charge $3 for each ACH push to be delivered in three business days and $10 for next-day delivery. Bank of America only removed the fee and started delivering all ACH pushes on the next business day recently.
Similar to the ACH limits, these fees only apply when this bank initiates the ACH. The fees don’t apply when the ACH transaction is initiated outside this bank. If your bank charges a fee for ACH, initiate your ACH on the other side. When I needed to transfer money from Bank of America to Fidelity before Bank of America removed the fee, I would initiate a pull from Fidelity.
ACH Hold
ACH goes by the principle of “No news is good news.” The ODFI will hear back if anything goes wrong but they won’t have any positive confirmation that the ACH transaction “cleared.” The ODFI only knows that it hasn’t been reversed yet. The RDFI has 60 days to reverse an ACH transaction.
The RDFI is given 60 days to reverse an ACH transaction because customers can’t be expected to watch their accounts daily. In the old days, banks issue paper statements monthly and that was the only opportunity for customers to review their accounts. Customers are given time to receive the statement in the mail, review the statement, and object to any unauthorized transactions. With online and mobile banking and paperless statements today, consumer protection laws still go by the monthly statements as the official account records.
This creates a problem especially for ACH pull transactions and check deposits. You see that your other account is already debited but the ODFI can’t trust that it won’t be reversed. That’s why the credit union I mentioned has a policy of not initiating any ACH pulls into its checking account. That’s why Fidelity holds any ACH pull and check deposit for up to 16 business days before making it available for withdrawals (it’s available immediately for trading, just not for withdrawals). That’s also why if you made a deposit to Vanguard recently, your withdrawal can only go back to the same bank where it came from originally. These policies limit their liability when they initiate the ACH pull.
On the other hand, when you do an ACH push, the sending bank processes it only if you have enough money in your account. The receiving bank treats the incoming ACH credit as good funds because the sending bank is liable. The receiving bank can’t put a hold on the money pushed in.
Therefore, when you have a choice, push the money from the source to avoid a hold. Don’t do it as an ACH pull. See a real-world example in 3 Lessons Learned From a Botched Money Transfer.
ACH Speed
ACH traditionally processes overnight. The ODFI sends a batch of ACH transactions to the ACH operator in the evening. The RDFI posts the transactions to the accounts the next morning.
There is no 3-day ACH versus next-day ACH on the ACH platform. If the ACH transaction takes longer than one business day, it’s only caused by the ODFI delaying it on purpose. It takes 3 business days when the ODFI intentionally delays sending it on a push or when it intentionally delays crediting your account on a pull.
If you want faster ACH, use a better bank to initiate it.
Same-Day ACH
The current gold standard in ACH is same-day ACH. When you request the ACH in the morning, you see it arrive on the other side in the afternoon.
This is again controlled by the bank that initiates the ACH. If the ODFI sends ACH requests to the ACH operator multiple times a day, your ACH transaction will arrive at your destination on the same day. If the ODFI only sends once in the evening, your ACH will arrive on the next business day.
For example, Fidelity does same-day ACH. When I ask Fidelity to transfer money to Bank of America before a cutoff time, I see the money in my Bank of America account in a few hours on the same day.
Not all financial institutions process same-day ACH but you should use one that does it at least overnight. Any slower than that is just lame. Because Fidelity’s same-day ACH is fast enough, I don’t bother using wire transfers even though Fidelity also offers free wire transfers.
FedNow Instant Payments
The Federal Reserve will launch a new real-time payment system soon. It’s called FedNow. It’ll work even faster than same-day ACH. Chase, Wells Fargo, and some other banks are already certified to work with FedNow.
We’ll have to see which banks will offer FedNow to consumer accounts and how it works in the real world. For the time being, let’s make sure all your transfers arrive at least on the next business day.
When to Use ACH Pull
To minimize hold on your ACH, in general you should do your ACH as a push. Request the ACH at the institution where your money is at. Ask them to send the money to the receiving account.
However, you should do an ACH pull in the following situations (a paper check also counts as an ACH pull):
Bill Payments
When you pay a bill, it’s important to associate the payment with your bill. You can use your bank’s Bill Pay service and include a reference for your bill but involving a third party creates the potential for finger-pointing when there’s a problem. Did the Bill Pay service fail to make the payment on time? Did the Bill Pay service pay but the biller didn’t apply it correctly?
It’s much cleaner to let the biller pull from your bank account. Their billing system will apply the pull to your bill. You can always dispute the pull with your bank if the amount is wrong.
When It May Not Go Through
If there’s a chance that the ACH won’t go through, you should do it as a pull.
If you do a push but it doesn’t show up in the receiving account, the money already left your sending account. If you do a pull and it doesn’t come through, at least the money is still in your original account. If the money left your account and the receiving bank doesn’t credit you, you can ask your bank to reverse it.
Overcome Limits and Fees
As I mentioned previously, if the sending bank has low limits or charges a fee for a push, you can initiate a pull from the receiving side. The pull may be subject to a hold and create a problem on the receiving side.
You should consider using a better bank though. Many banks don’t have low limits and don’t charge a fee for a push.
Contribute to an IRA
When you contribute to an IRA between January 1 and April 15, it can be for the previous year or it can be for the current year. If you do an ACH push into your IRA, the custodian doesn’t know which year it’s for. They can assume but their assumption can be wrong. If you ask the IRA custodian to pull, you’ll have an opportunity to say whether it’s for the previous year or the current year.
You can still do a push if you also have a regular taxable account at the same institution where you have your IRA. First push to the regular taxable account. Then do an internal transfer to your IRA.
Buy a CD at a Bank or Credit Union
A CD at a bank or a credit union doesn’t have an account number that accepts ACH. You can push to a checking account or a savings account at that bank and then use the money to buy a CD but it’s easier to just let the bank pull from your current account.
Internal Transfers
The fastest transfers happen within the same institution or between two institutions owned by the same parent company. Both sides trust each other and they know that you have sufficient funds for the transfer.
Some large financial institutions offer both banking and investment services. Bank of America owns Merrill Edge. Chase has J.P. Morgan Self-Directed Investing. Wells Fargo and US Bank also have in-house brokerage accounts. Fidelity offers a Cash Management Account. Charles Schwab owns Schwab Bank. Vanguard has the Cash Plus Account. An internal transfer between the banking side and the brokerage side happens instantly and there won’t be any hold.
In a way, internal transfers are the best way to transfer money — no limit, no time delay, no hold. Using the same company as a one-stop shop for both banking and investing doesn’t give you everything in the best of breed but it’s a lot easier when you make fewer things matter.
Paying Another Person
This post primarily covers transferring between two accounts of your own and paying bills. These are called Account-to-Account (“A2A”) and Consumer-to-Business (“C2B”) payments.
A separate category of payments involves paying another person. It’s called Person-to-Person (“P2P”) payments. Besides sending a check, either directly or through your bank’s Bill Pay service, you can pay another person electronically through PayPal, Venmo, Cash App, Apple Cash, Google Pay, Facebook Pay, or Zelle. Each system has its limitations. I covered these in the context of paying rent to an individual landlord in Pay Rent Electronically By Zelle: Daily Limit and Recurring Payments.
Say No To Management Fees
If you are paying an advisor a percentage of your assets, you are paying 5-10x too much. Learn how to find an independent advisor, pay for advice, and only the advice.
Verna says
” The RDFI can reject the ACH if the account isn’t in good standing but otherwise they must honor the transaction”
Some credit unions don’t allow any ACH pulls from their savings account.
Harry Sit says
They tell the ODFI that the account isn’t in good standing.
Verna says
Doesn’t this contradict what you are saying. Apparently they aren’t any repercussions of falsely claiming that all their savings accounts are not in good standing as a matter of policy, in order to block all outgoing ACH transactions.
Harry Sit says
Not in good standing can be due to several reasons: wrong account number, account closed, name doesn’t match, insufficient funds, it’s a non-transaction account, etc. It isn’t falsely claiming when the credit union designates the savings account as a non-transaction account and gives the ODFI the corresponding reason code.
MHB says
I never knew or at least never thought about the push or pull. Very helpful. Although I still resist doing the pull for bill pay as I do not want to give payers access to my bank account. Thanks.
Ann says
Thanks, very interesting! Have never had any problems with “push” but have had “pulls” fail occasionally. My take-home was to always be sure I get a confirmation, and to take a screenshot.
RobI says
Good article. I’ve hit the Vanguard transfer hold but you helped explained what’s going on here while their rep could not.
2 questions
Has anyone found a simple way to do online IRS Estimated Tax payments as a PUSH (not a paper check)? I can’t find IRS or US Treasury listed as an online payee in Fidelity bill payment search. I have used the IRS web site successfully to pull payments, but the delay in receiving confirmation that the transaction with through always causes concern for those few days.
2. Is there any advantage to adding a Fidelity cash account rather than just using their brokerage account cash mgt bill payment feature and keepig funds in MMkt at higher int rate.
Steve says
I use IRS direct pay to push tax balance due payments. It says you can use it for estimated tax payments. link is irs dot gov slash payments slash direct-pay
Harry Sit says
IRS Direct Pay is a pull. You give your bank account to the IRS. They will ask their bank to pull from your bank account.
Harry Sit says
The IRS doesn’t accept push. They need to know whose account the payment should be credited to and which year it’s for. You’ll see your payments and the status if you use their EFTPS system to schedule estimated tax payments. It requires a one-time enrollment.
A regular Fidelity brokerage account has everything that a Cash Management Account has except ATM fee rebates, which you can also get when you have over $250k with Fidelity. If you don’t use ATMs that much, a higher interest rate on the core holdings will pay all the ATM fees and then some even if you don’t get ATM fee rebates.
Steve says
No matter whether it is a “push” or “pull”, IRS Direct Pay does not require you create an account with them. No need to remember any IRS account ID or password. Easier than writing a check and you can get confirmation of payment transaction quickly.
Steve says
Harry, thanks for the article. Very informative. I never realized before that a check is a “pull”.
Deskandchairs says
Very helpful article. I recently researched Barclays ‘funds availability schedule’ which says “For all deposits made by check or electronically (collection orders), funds will be held for five business days.’ I misunderstood this to mean “all”.
After reading your article, apparently “collection orders” are “pulls” from Barclays, while they misleadingly make no reference to pushes from the funding bank, as you say, they can not delay availability of such funds.
Kevin says
Harry, thank you for another great article. Please note that Bank of America *removed* their $3/$10 outgoing ACH fee starting May 21, 2023. All outgoing ACH transfers will be next-business-day. A note appeared on page 5 of my May 2023 BofA statement. Screenshot: https://i.imgur.com/qymGNra.png
Harry Sit says
Finally! The $3/$10 outgoing ACH fee was outrageous. Thank you for telling me. I updated the post.
Jerremy says
vanguard does have account number for pushing funds in to brokerage account. I use it to automatically push money as part of my biweekly payroll.
Harry Sit says
Vanguard says this about direct deposit:
“Can I receive deposits from more than one source?
Yes. You can have as many Direct Deposit sources as you like. You must set up the service for each Direct Deposit source separately.”
https://personal.vanguard.com/us/content/DDep/DDepSettgUpDirDepContent.jsp
The account number for direct deposit is dynamically generated for each source. I get the impression that it’s only for payroll and government benefit deposits, not for bank transfers. I’m not sure whether it can pass the random deposit verification when you add it as a link at another bank.
Waldemar Traczyk says
Harry, I was using bill pay through my bank to mail a paper check to my HOA management
company, free of charge. However, I switched to having management pull the funds from my bank, although management charges $1.00 per pull. I feel that its more efficient. What are your thoughts?
Harry Sit says
I agree it’s more efficient to have the management company pull. You have many moving parts when bill pay sends a paper check. The bill pay provider has to mail a check and include a reference to your unit/lot. USPS has to deliver the check on time. The management company personnel has to know how to find the reference on the check. They have to apply it correctly to your account, not someone else’s. Rinse and repeat for the next payment. Anything going wrong in this process will have you chase down whose fault it is and how to remedy it.
Captain_obvious says
How come some banks can only offer 5k daily ach limits while other can do 250k+?
There should be a law of banks needs a minimum of 25k daily ach transfer limits,
GeezerGeek says
Maybe most financial institutions provide instant access to internal transfers but that has not been my experience with Schwab. If I transfer funds from a Schwab investment account to Schwab Bank, Schwab puts a hold on those funds. That’s what I experienced a couple of years ago and the Schwab rep told me that the hold was standard procedure. Maybe it is only standard procedure at Schwab only because they derive significant income from the cash they hold in accounts. After I experienced that problem, I started pushing my cash transfers to an external bank account (USAA) where the funds were immediately available
Cletis Kendrick says
Chase Bank is notorious for charging fees, so I decided to open a new bank account. In order to counter act Chase minimum balance fees, I specifically transferred the account balance with an ACH pushed credit to the new bank account and afterwards sent Chase a message of my intent to close account. The ACH pushed credit funds were cleared, posted, and made available by the receiving bank in two days. The third day Chase Bank ‘returned’ those funds and the transaction reason given to the RDFI was the funds came from a closed account.
My question!
How is it possible three days after the initial ACH pushed credit transaction of funds which were cleared, posted, and made available by the receiving RDFI, that an ODFI can ‘return’ or ‘take-back’ an ACH pushed credit which I initiated from the ODFI?
Harry Sit says
An ODFI can initiate both credits and debits. You can dispute the take-back with your new bank as unauthorized and also ask them to file a complaint with NACHA for a rule violation. Or you can get your closing balance from Chase and move on.
Andy says
Thanks very much for this thorough article. Fidelity’s website (https://www.fidelity.com/customer-service/processing-and-hold-times) indicates that EFTs out of Fidelity take 1-3 business days to process. There is no mention of same-day ACH/EFT nor a cutoff time for same-day pushes. You say, “Fidelity does same-day ACH,” but is that based on a documented Fidelity policy or just your de facto experience?
Harry Sit says
De facto experience. Here are the cutoff times set by the ACH network:
https://www.nacha.org/system/files/2021-03/SDA_Schedules_and_Funds_Availability.pdf
Fidelity’s cutoff times for the three same day ACH windows appear to be 8:00 am, 12:00 pm, and 2:00 pm Eastern Time. Again, from experience, subject to change by Fidelity.
Wayne says
Fidelity has scattered its policy information across multiple webpages, some of which contradicts the official undated Cash Management Account Agreement; however, as I compile various source documentation to prepare my own reference manual given how much minutiae is involved and not having to routinely get into the weeds, I found the statement, “Transfers initiated from your bank will generally take 1–2 days for processing but have no hold period when your money arrives at Fidelity.” at https://www.fidelity.com/customer-service/processing-and-hold-times . The ambiguity of references to “EFT” vs. ACH dr or ACH cr and whether Fidelity is referring to itself as an ODFI (usually the case) or when it is an RDFI (rarely the case but now you have a Fidelity affirmative statement in that context with the above link) makes interpreting their documents challenging. Treasury Regulations are a whole lot clearer for a point of reference/comparison!
Ric123698745 says
Harry,
Your email post of 9/19/2024 gave details of how someone used a ACH pull at Vanguard to move money from their bank to Vanguard. You warned to always use ACH push.
Then, in your article at “https://thefinancebuff.com/ach-transfer-push-pull.html” says to always use ACH pull for deposits to Vanguard. Isn’t this directly contradictory?
Also, I have no idea how I to intiate a ACH push to anyone. How would I specify what account at the receiving end?
I appreciate your articles, but I’m confused on this one.
Harry Sit says
Sorry, that part was written before Vanguard offered Cash Plus accounts, which accept ACH pushes. I edited it.
To initiate an ACH push, add the routing number and account number of your destination account as a linked account where the money currently resides. For example, a Vanguard Cash Plus account gives you a routing number and an account number. If you add them as a linked account at Chase, you can initiate a transfer from Chase to Vanguard at Chase. If you add the routing number and account number of the Chase account to Vanguard, you can initiate a transfer from Vanguard to Chase at Vanguard. Both will be an ACH push.