Yes, most banks sell money orders, but not all, and the process differs from other places
Many banks do sell money orders at the teller window, but you need to check with your specific bank first — some do not offer them at all, and those that do may charge different fees or have different limits. Banks are often more expensive than other places to buy a money order, which is why many people go elsewhere. If your bank does sell them, you can usually buy one the same day by walking in with cash or a debit card, but you will need to know the exact amount and have the recipient's name ready.
The real question is not whether banks sell money orders, but whether a bank is your best option. A money order from a grocery store, pharmacy, or the post office often costs less and takes the same amount of time. This guide walks you through where you can actually buy one, what each place costs, and how to decide which is worth your trip.
Key Takeaways
- Not every bank sells money orders — call ahead or ask at the teller window before you go in, because some institutions have stopped offering them.
- Banks typically charge between $5 and $10 per money order, while grocery stores and pharmacies usually charge $1 to $3, making them significantly cheaper for the same product.
- You can buy a money order at most banks the same day with cash or a debit card, but you need to know the exact amount and the recipient's name.
- The post office, Walmart, grocery stores, and pharmacies all sell money orders and are often faster and cheaper than going to a bank.
- Money orders from any source work the same way — the recipient cashes them at a bank or check-cashing service — so the cheapest option is usually the best choice.
How to buy a money order at your bank
Walk into your bank during business hours and go to the teller window. Tell the teller you want to buy a money order. They will ask you for the amount, the name of the person or business the money order is for (called the payee), and how you want to pay — cash, debit card, or sometimes a check drawn on your account. You do not need a bank account with them to buy a money order, though some banks prefer you to be a customer.
The teller will fill out the money order, take your payment plus the fee, and give you the completed money order. The whole process takes about five minutes. You then give the money order to the payee, who can cash it at their own bank or at a check-cashing service. Keep your receipt in case there is a problem later.
Before you go to the bank, call and confirm they sell money orders. Many banks have stopped offering them because fewer people use them, so you may find out they do not have them in stock or do not sell them at all. If your bank does not, you have several other options that are usually cheaper anyway.
Why banks are often more expensive than other places
Banks typically charge $5 to $10 per money order, depending on the bank and the amount. A grocery store or pharmacy usually charges $1 to $3 for the same money order. The post office charges around $1.45 to $2.00. Since a money order is a money order — the recipient gets the same product no matter where you buy it — there is no reason to pay more unless the bank is the only place you can reach.
Banks charge more partly because they are not set up to sell many money orders anymore, so the fee reflects the extra work for the teller. Grocery stores and pharmacies sell dozens a day and have built the cost into their business model. The post office is a government service and sets a standard price nationwide.
Cheaper places to buy a money order
The post office sells money orders at every location during business hours. You do not need an account or membership. The fee is set by the postal service and does not vary by location — it is currently around $1.45 for amounts up to $500 and around $2.00 for amounts from $500 to $1,000. You can buy one the same day with cash or a card.
Walmart sells money orders at the customer service desk for around $0.88 per order, making it one of the cheapest options. You do not need a membership. The limit is usually $1,000 per money order, and you can buy multiple orders if you need to send more. You can pay with cash or a card.
Most grocery stores and pharmacies sell money orders at the customer service counter or checkout. Kroger, Safeway, CVS, and Walgreens all offer them for $1 to $3 depending on the amount and location. Limits vary but are usually $1,000 per order. These places are often the most convenient because you may already be shopping there.
The post office is the only option if you need a money order for more than $1,000, since most other places cap orders at that amount. You can buy multiple money orders if you need to send more money.
What you need to bring and what happens next
Bring cash or a debit card. You do not need a bank account, an ID, or any paperwork to buy a money order at most places. You do need to know two things: the exact amount and the name of the person or business you are sending it to. If you do not know the exact amount, ask the recipient before you go — money orders cannot be changed once they are issued, so getting it wrong means you have to buy another one.
Once you have the money order, you give it to the recipient. They take it to their bank or a check-cashing service and cash it like a check. They do not need to do anything special — the money order is as good as cash once it is issued. If you need proof that they received it, keep your receipt and ask them to confirm when they cash it.
If a money order is lost or stolen before the recipient cashes it, you can file a claim with the issuer (the bank, post office, or store where you bought it) and get a replacement. This is why keeping your receipt matters — you will need it to prove you bought the money order.
When a bank money order makes sense
A bank money order is worth buying if your bank is the only place you can reach during the hours you need it, or if you are already at the bank for another reason and do not mind paying extra. Some banks offer money orders to their customers as a service, even if they do not advertise it heavily. If you have a relationship with a bank and trust them, there is nothing wrong with buying there — you are just paying a premium for convenience.
Banks can also issue larger money orders or special types of money orders in some cases, though this is rare. If you need something unusual — a very large amount, a money order to a foreign country, or a certified money order — ask your bank whether they can do it. Most cannot, but it is worth asking before you assume you have to go elsewhere.
Frequently Asked Questions
Can I buy a money order at a bank without a bank account?
Yes. Most banks will sell a money order to anyone with cash or a debit card, even if you do not have an account with them. Some banks prefer to sell only to their own customers, so call ahead to confirm. If they turn you away, go to the post office, Walmart, or a grocery store instead.
What if the bank is closed when I need a money order?
The post office, Walmart, and most grocery stores and pharmacies have longer hours than banks and are open on weekends. If you need a money order outside of bank hours, one of these places is your faster option and will cost less.
Can I buy a money order for more than $1,000?
Most banks, stores, and pharmacies cap money orders at $1,000 per order. The post office also caps orders at $1,000. If you need to send more, you can buy multiple money orders. Ask the issuer what their limit is before you buy.
Do I need to show ID to buy a money order?
Most places do not require ID to buy a money order. However, some banks or check-cashing services may ask for ID as part of their standard practice. Call ahead if you do not have ID with you and want to confirm they will sell to you.
What if I make a mistake on the money order?
Money orders cannot be corrected once they are issued. If you write the wrong amount or payee name, you have to buy a new one. Keep your receipt so you can file a claim for the incorrect one and get your money back, though this process takes time.