The most common places to buy a money order
You can buy a money order at a bank, credit union, post office, grocery store, pharmacy, or check-cashing business. Most of these locations are open during regular business hours, and the process takes just a few minutes. The cost ranges from about 50 cents to a few dollars depending on where you go and the amount of the money order.
Banks and credit unions are often the cheapest option if you have an account with them — some offer money orders free or for under a dollar. The post office charges a flat fee that varies by the amount being sent. Grocery stores, pharmacies, and check-cashing businesses charge more but are convenient if you need one outside normal banking hours.
You'll need cash or a debit card to buy a money order. Most places won't accept credit cards. Bring the exact amount you want to send plus the fee, and have the recipient's name ready — you'll write it on the money order at the counter.
Key Takeaways
- Banks, credit unions, and the post office typically charge less than grocery stores or check-cashing businesses.
- You need cash or a debit card and the recipient's name to buy a money order.
- Most locations complete the transaction in minutes during their regular business hours.
- The total cost includes both the money order fee and the amount you're sending, so bring enough cash or have enough on your debit card.
- Some banks offer free or low-cost money orders to account holders, so check with your bank first.
Banks and credit unions
Your bank or credit union is usually the cheapest place to buy a money order if you're a customer. Many banks offer them free to checking account holders, while others charge 50 cents to $1. Credit unions often have similar pricing. You'll need to go during business hours, which are typically 9 a.m. to 5 p.m. on weekdays and sometimes Saturday mornings.
Call your bank before you go to confirm they sell money orders and ask about the fee. Not every branch carries them, especially smaller locations. If your bank doesn't offer them, ask if they can order one for you or recommend where to go nearby.
The post office
The United States Postal Service sells money orders at every post office location. The fee depends on the amount: money orders up to $500 cost one price, and money orders from $500.01 to $1,000 cost slightly more. You can pay with cash or a debit card. Post offices are open Monday through Friday and many have Saturday hours, though hours vary by location.
You can look up your nearest post office and its hours on USPS.com. Money orders sold at the post office are insured and can be tracked, which makes them reliable for important payments. The post office is a good choice if you don't have a bank account or your bank doesn't sell money orders.
Grocery stores and pharmacies
Most large grocery store chains and pharmacy chains like Walmart, Target, CVS, and Walgreens sell money orders at their customer service desk. The fee is typically $1 to $3 depending on the amount and location. These places are convenient because they have extended hours — many are open early and close late, and some are open on Sundays.
Walk to the customer service desk and ask for a money order. You'll pay the amount of the money order plus the fee. The process is quick, usually under five minutes. Call ahead if you're unsure whether your local store sells them, since policies vary by location.
Check-cashing businesses
Check-cashing stores and payday loan businesses sell money orders, often with the longest hours of any option — some are open evenings and weekends. The fee is usually higher than banks or the post office, ranging from $2 to $5 or more depending on the amount. These businesses are useful if you need a money order outside normal business hours.
Check-cashing businesses are common in urban areas and less common in suburbs or rural areas. Search online for "check cashing near me" to find locations. Bring cash or a debit card and the recipient's name. Be aware that fees at these businesses are significantly higher than other options, so use them only when convenience is worth the extra cost.
Online money order services
Some online payment services offer digital money orders that you can send electronically, though these are less common than traditional money orders. Services like Western Union and MoneyGram allow you to send money online and have it picked up as a money order or cash at a location near the recipient. These services charge a fee and work best when the recipient needs the money quickly.
Online services are useful if you can't leave your home or need to send money to someone far away. The recipient will need to go to a Western Union or MoneyGram location to pick up the money, so this option works best when the recipient has access to these services. Fees are typically higher than buying a money order in person.
Comparing costs and convenience
| Location | Typical Fee | Hours | Best For |
|---|---|---|---|
| Bank or credit union | Free to $1 | Weekdays 9–5, some Saturdays | Account holders, lowest cost |
| Post office | $1.10–$1.75 | Weekdays, some Saturdays | Anyone, insured and trackable |
| Grocery store or pharmacy | $1–$3 | Extended hours, often Sundays | Convenience, quick service |
| Check-cashing business | $2–$5+ | Evenings and weekends | After-hours needs, highest cost |
| Online service | $3–$10+ | 24/7 online, pickup at location | Remote sending, recipient pickup |
The cheapest option is almost always your bank if you have an account. The post office is the next most affordable choice and works for anyone. Grocery stores and pharmacies offer a middle ground between cost and convenience. Check-cashing businesses and online services cost more but offer flexibility in timing and location.
What to bring and what to expect
Bring cash or a debit card, the amount you want to send plus the fee, and the recipient's full name. You'll fill out a form with the recipient's name and address, your name and address, and the amount. The cashier will print the money order and you'll sign it. The whole process takes about five minutes.
Keep your receipt. It shows the money order number and amount, which you'll need if the money order is lost or never reaches the recipient. Some places will replace a lost money order if you have the receipt and can prove you bought it.
Frequently Asked Questions
Can I buy a money order with a credit card?
Most places won't accept credit cards for money orders. Banks, the post office, and grocery stores typically require cash or a debit card. Check-cashing businesses may have different policies, so call ahead if you only have a credit card available.
What's the maximum amount I can put on a money order?
Most money orders max out at $1,000. If you need to send more, you can buy multiple money orders. The post office and most other locations will sell you as many as you need.
Do I need an ID to buy a money order?
Most places don't require ID, but some do — especially check-cashing businesses and Western Union locations. Call ahead or bring your ID to be safe. The post office generally doesn't require ID for money orders under $3,000.
Can I buy a money order if I don't have a bank account?
Yes. The post office, grocery stores, pharmacies, and check-cashing businesses all sell money orders to anyone with cash or a debit card. You don't need a bank account.
How long does it take for a money order to reach the recipient?
If you mail a money order, it takes as long as regular mail — typically three to five business days. If you hand-deliver it, the recipient can cash it immediately. Online money orders can be picked up within hours at a Western Union or MoneyGram location.