Yes, most banks sell money orders, but not all branches carry them and fees vary
You can buy a money order at your bank if it offers them, but you need to check first—not every bank does. Large national banks like Bank of America, Wells Fargo, and Chase typically sell money orders at their branches during business hours. Credit unions often sell them too, though policies differ by institution. The cost usually ranges from $5 to $10 per money order, depending on the amount and your bank's pricing.
The main advantage of buying at your bank is that you already have an account there, so the teller knows you and can verify funds on the spot. You'll need a valid ID and enough money in your account to cover both the money order amount and the fee. The transaction is quick—usually five to ten minutes—and you walk out with a receipt and the money order in hand.
However, banks are not always the cheapest or most convenient option. Many people find it faster to buy a money order at a grocery store, pharmacy, or post office, especially if your bank branch has limited hours or is far away. Understanding where else you can get one helps you choose based on cost, location, and timing.
Key Takeaways
- Banks sell money orders during business hours, but you must call ahead to confirm your specific branch carries them.
- Bank fees for money orders typically range from $5 to $10, which is often higher than fees at grocery stores or the post office.
- You need a valid ID and sufficient funds in your account; the teller will verify both before issuing the money order.
- Grocery stores, pharmacies, and the post office often offer money orders with lower fees and longer hours than banks.
- Money orders issued by banks are backed by the bank itself, making them as secure as those from other sources.
How to buy a money order at your bank
Walk into your branch during business hours with a valid photo ID—a driver's license or passport works. Tell the teller you want to buy a money order and provide the amount. The teller will ask for the payee name (the person or business the money order is for) and may ask why you need it, though they are not required to tell you no based on your answer.
The teller will then deduct the money order amount plus the fee from your account and issue you the money order. You will receive a receipt showing the transaction details. Write down the money order number from the receipt and keep it in case you need to track or cancel the money order later. The whole process takes about five to ten minutes.
Some banks require you to have an account with them to buy a money order; others will sell one to non-customers for a higher fee. Call your branch ahead of time to ask whether they sell money orders, what the fee is, and whether you need an account. Hours vary by location, so confirm they will be open when you plan to go.
Why bank fees are often higher than other sources
Banks typically charge $5 to $10 per money order because they treat it as a service for account holders. The fee covers the cost of issuing the money order, verifying your identity, and maintaining the system that tracks it. Some banks charge based on the amount—a $500 money order might cost more than a $100 one.
Grocery stores and pharmacies often charge $1 to $3 per money order because they use it as a way to draw customers into the store. The post office usually charges $1.45 to $2.00, making it one of the cheapest options. If you are buying multiple money orders or the amount is large, the difference in fees can add up quickly.
However, convenience and speed matter too. If your bank is open late and a grocery store is not, or if you are already at the bank for another reason, the higher fee might be worth it to you. Compare the fee against the cost and time of going elsewhere.
What to do if your bank does not sell money orders
If your bank does not offer money orders, you have several other options. The United States Postal Service sells money orders at every post office location. Walmart, Target, and most grocery stores with customer service desks sell them. CVS and Walgreens pharmacies sell money orders at their registers. Some check-cashing businesses also sell them, though their fees tend to be higher than banks or stores.
The post office is often the most reliable backup because locations are widespread and hours are consistent. You do not need an account or ID to buy a money order there, though you will need to show ID to prove your identity. Grocery stores are convenient if you are already shopping, and their fees are usually lower than banks.
If you need a money order outside normal business hours, a 24-hour Walmart or grocery store is your best bet. Call ahead to confirm they sell them and ask what the fee is, since pricing varies by location.
Money order limits and what happens if you need a larger amount
Most banks, the post office, and stores limit individual money orders to $1,000. If you need to send more than that, you will have to buy multiple money orders. For example, to send $2,500, you would buy three money orders: two for $1,000 each and one for $500.
Each money order comes with its own fee, so buying three money orders costs three times the fee. This is why large transfers sometimes make more sense through a bank wire, cashier's check, or ACH transfer if the recipient's bank supports it. A cashier's check from your bank has no limit and usually costs $10 to $15, making it cheaper than multiple money orders for very large amounts.
Ask your bank about alternatives if you need to send a large sum. A wire transfer costs $15 to $30 but arrives the same day. An ACH transfer is free but takes one to three business days. A cashier's check is secure and has no limit, but the recipient has to deposit it like a regular check.
Tracking and canceling a money order bought at your bank
Keep your receipt. It contains the money order number, the amount, the date, and the fee charged. If the money order is lost, stolen, or never arrives at its destination, you will need this number to file a claim or cancel it.
If you need to cancel a money order you bought at your bank, contact the bank directly with your receipt and money order number. The bank will verify that the money order has not been cashed. If it has not, the bank will cancel it and refund the amount to your account, though there may be a cancellation fee of $15 to $25. This process usually takes one to two weeks.
If the money order was cashed by someone other than the intended payee, contact your bank immediately. The bank can investigate and may be able to recover the funds, though this depends on how long ago it was cashed and whether the recipient's bank cooperates. Report it as fraud if someone cashed it without your permission.
Money orders versus cashier's checks from your bank
A cashier's check is another secure payment method issued by banks. Unlike a money order, which has a $1,000 limit, a cashier's check can be written for any amount. The fee is usually $10 to $15, which is higher than a money order but lower than buying multiple money orders for large amounts. A cashier's check is may provide by the bank itself, making it as secure as a money order.
Cashier's checks take longer to obtain—you have to go to the bank and request one, and the teller has to prepare it, which can take 10 to 20 minutes. Money orders are faster because they are pre-printed and the teller just fills in the details. For amounts under $1,000, a money order is usually faster and cheaper. For amounts over $1,000, a cashier's check is often the better choice.
Some recipients prefer cashier's checks because they are less common and therefore less likely to be counterfeited. Others prefer money orders because they are familiar and widely accepted. Ask the recipient which they prefer before you buy either one.
Frequently Asked Questions
Do I need to be a customer of the bank to buy a money order there?
Most banks require you to have an account with them, but some will sell money orders to non-customers for a higher fee. Call your bank to ask. If you are not a customer, the post office or a grocery store is usually a faster option.
Can I buy a money order with a credit card?
Most banks and stores do not accept credit cards for money orders because they treat it as a cash transaction. You will need to pay with cash or a debit card. Some banks may allow you to pay from your account balance if you are a customer.
What if the money order gets lost in the mail?
Contact the issuer (your bank, the post office, or the store) with your receipt and money order number. They will verify whether it has been cashed. If not, they can cancel it and issue a replacement or refund, though this may take one to two weeks and could include a cancellation fee.
How long does a money order take to clear once the recipient deposits it?
Money orders clear like checks—usually one to three business days after the recipient deposits them. The recipient's bank may hold it longer if the amount is large or if they are a new customer. Money orders are not instant like wire transfers.
Can I get a refund if I buy a money order and change my mind?
If the money order has not been cashed, you can cancel it and get a refund, minus a cancellation fee of $15 to $25. If it has already been cashed, you cannot get a refund. This is why you should only buy a money order when you are certain you need it.