The fastest way to find a money order is to check your bank first, then a grocery store or pharmacy
Most banks and credit unions sell money orders at the teller window during business hours. If you have an account there, this is often the cheapest option — many charge $1 to $3 per order. You do not need to go inside; many banks offer them at the drive-through window.
If your bank is closed or you do not have an account, grocery stores and pharmacies are your next stop. Walmart, Target, Kroger, Safeway, and most regional chains sell money orders at the customer service desk. Walgreens and CVS also carry them. These typically cost $2 to $5 depending on the amount and location.
Post offices sell money orders as well, though they are often more expensive than banks or retailers — usually $1.45 to $2.00 per order depending on the amount. The advantage is that post offices are open on Saturday mornings in most places, which can matter if you need one outside normal business hours.
Key Takeaways
- Your own bank or credit union is usually the cheapest place to buy a money order, costing $1 to $3 per order.
- Grocery stores, pharmacies, and big-box retailers like Walmart and Target sell money orders at the customer service desk and are open longer hours than banks.
- Post offices sell money orders and are open Saturday mornings, but typically charge more than banks or retailers.
- You will need cash or a debit card to buy a money order; most places do not accept credit cards for this transaction.
- Bring a valid ID and know the exact amount you need before you go to the counter.
What to bring when you go to buy a money order
You need a valid photo ID — a driver's license, passport, or state ID card. Some places ask for it even if you have an account there. Bring cash or a debit card; most retailers and banks do not take credit cards for money orders.
Know the exact amount you want to send before you arrive. The person at the counter will ask you for it, and you cannot change your mind once the money order is printed. If you are unsure, bring a bill or invoice showing what you owe so you can read the amount aloud.
Have the recipient's name ready. You will need to write it on the money order, and the teller may ask you to spell it. If you are sending it to a business, use the exact legal name — "ABC Plumbing Inc." rather than "ABC Plumbing."
Banks and credit unions near you
Call your bank's customer service number or check their website to confirm they sell money orders and what the fee is. Some smaller banks or credit unions do not offer them, though most do. Ask whether you can buy one at any branch or only at your home branch.
If you do not have a bank account, you can still buy a money order at most banks — you just pay a higher fee, usually $5 to $10. Some banks require you to have an account. Call ahead to ask.
Grocery stores and pharmacies in your area
Walmart, Target, Kroger, Safeway, Albertsons, Publix, and Whole Foods all sell money orders at customer service. Hours are usually 8 a.m. to 10 p.m. on weekdays and Saturdays, and 9 a.m. to 9 p.m. on Sundays, though this varies by location. Check the store's website or call ahead to confirm.
Walgreens and CVS sell money orders at the pharmacy counter during store hours. Fees are typically $2 to $5. Some locations have limits on how much you can send in a single money order — often $500 or $1,000 — so ask if you need a large amount.
Post offices and their hours
The United States Postal Service sells money orders at every post office. Fees depend on the amount: orders up to $500 cost $1.45, and orders from $500.01 to $1,000 cost $2.00. Post offices are usually open Monday through Friday 9 a.m. to 5 p.m., and Saturday 9 a.m. to 1 p.m. Some locations have different hours.
Find your nearest post office by visiting USPS.com and using the location finder. You can also call 1-800-275-8777. Post offices do not require an account, and you do not need to be a customer to buy a money order.
When to use a money order instead of other payment methods
Money orders are useful when you need to send cash but do not want to mail actual bills, or when the person you are paying does not have a bank account to receive a transfer. They are also safer than personal checks because they cannot bounce. Landlords, utility companies, and government agencies often accept them.
Money orders are not the fastest way to pay. If you need the payment to arrive quickly, a bank transfer or credit card payment is usually better. If the recipient needs the money in person or same-day, a money order will not work — you have to mail it or hand it to them in person.
Frequently Asked Questions
Can I buy a money order online and pick it up in a store?
No. Money orders must be purchased in person at a bank, post office, or retailer. You cannot order one online. Some banks may allow you to request one by phone and pick it up at a branch, but you still have to go to the location to complete the transaction and pay.
What if I need a money order after the bank closes?
Walmart, Target, and most grocery stores are open until 10 p.m. or later on weekdays. Some Walmart locations are open 24 hours. Post offices close at 5 p.m. on weekdays and 1 p.m. on Saturday, so they are not an option for evening purchases.
Can I use a credit card to buy a money order?
Most banks, post offices, and retailers do not accept credit cards for money orders. You will need cash or a debit card. Some credit card companies also treat money order purchases as cash advances, which means you pay a fee and interest starts immediately.
What is the maximum amount I can send in one money order?
Most retailers and post offices limit a single money order to $500 or $1,000. If you need to send more, you can buy multiple money orders. Check with the specific location before you go, since limits vary.
Do I need an account at the bank to buy a money order there?
No, but you will pay a higher fee if you do not have an account — usually $5 to $10 instead of $1 to $3. Some smaller banks may refuse to sell to non-customers. Call ahead to ask.