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 service. Each location charges a different fee — usually between $1 and $5 — and some have limits on how much you can send in a single money order. A bank or credit union is often cheapest if you already have an account there, while a post office or grocery store works if you need one quickly without membership.
The fastest option depends on what's near you. Post offices are open on weekdays and many Saturdays. Grocery stores and pharmacies with money order services (like Walmart, CVS, and Walgreens) often have longer hours and weekend availability. Banks and credit unions have standard business hours and may require you to be a customer.
You'll need cash or a debit card to buy a money order at most places. Some locations accept checks, but this is less common. 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 itself.
Key Takeaways
- Banks and credit unions typically charge $1 to $3 per money order if you have an account, making them the cheapest option for regular customers.
- Post offices, grocery stores, and pharmacies charge $1 to $5 depending on the amount, with no membership required.
- Most money order limits range from $500 to $1,000 per order, though some banks allow higher amounts for account holders.
- You'll need the recipient's full name and address, plus cash or a debit card to complete the purchase.
- Grocery stores and pharmacies often have the longest hours, including evenings and weekends, when banks and post offices may be closed.
Banks and credit unions
If you have a checking or savings account, your bank or credit union is usually the cheapest place to buy a money order. Fees typically range from $1 to $3 per order, and some institutions waive the fee entirely for account holders. You can buy a money order during regular business hours at any branch, and many banks allow you to order them online for pickup or delivery.
The main drawback is that banks and credit unions have limited hours — usually 9 a.m. to 5 p.m. on weekdays, with some Saturday hours at larger branches. If you need a money order outside these hours, you'll have to go elsewhere. Also, some smaller credit unions may not offer money orders at all, so call ahead if you're unsure.
Money order limits at banks vary. Most allow up to $1,000 per order, but some let account holders send higher amounts. If you need to send more than $1,000, you can buy multiple money orders or ask your bank about their specific policy.
The U.S. Postal Service
Post offices sell money orders for $1.45 to $2.00 depending on the amount. Orders up to $500 cost $1.45, and orders from $500.01 to $1,000 cost $2.00. You don't need to be a customer or have any membership — you can walk in and buy one with cash or a debit card.
Post offices are open Monday through Friday, with limited Saturday hours at most locations. Some rural post offices have shorter hours, so check your local branch's schedule online before you go. You can also buy a money order by mail if you send cash or a check to your post office, though this takes longer and adds risk.
The post office is a reliable choice if you need a money order during business hours and want a low, fixed fee. However, it's not the fastest option if you need one in the evening or on a Sunday.
Grocery stores and pharmacies
Walmart, Kroger, Safeway, CVS, Walgreens, and similar chains sell money orders at their customer service desks. Fees range from $0.88 to $3.00 depending on the store and the amount. These locations often have the longest hours — many are open until 9 or 10 p.m. on weekdays and open on Sundays, making them convenient if you need a money order outside normal business hours.
Money order limits at grocery stores and pharmacies are usually $500 to $1,000 per order. Walmart, for example, allows up to $1,000. You'll need cash or a debit card, and you can complete the transaction in just a few minutes at the customer service counter.
The trade-off is that fees are sometimes higher than at a bank or post office, and the service desk staff may move slowly during busy times. However, the convenience of extended hours and weekend availability makes these locations worth considering if you're in a hurry or need a money order outside standard business hours.
Check-cashing services
Check-cashing stores and payday loan shops often sell money orders, though fees are typically higher than other options — usually $2 to $5 per order. These locations are useful if you need a money order late at night or on a Sunday, since many are open extended hours or on weekends.
The downside is cost. You'll pay more per money order than you would at a bank, post office, or grocery store. Also, check-cashing services are less common in some areas, so you may have to search to find one nearby. Before you go, call ahead to confirm they sell money orders and ask about their fee and hours.
Online money order services
Some online payment services and banks allow you to order money orders online and pick them up at a retail location or have them mailed to you. This option is convenient if you want to avoid a trip to the store, but it usually takes several business days for delivery and may cost more than buying one in person.
Online services work best if you're planning ahead and don't need the money order immediately. You'll still pay a fee — typically $2 to $5 — plus any shipping cost if you choose delivery. Check your bank's website or search for "online money order" to see what options are available in your area.
Comparing fees and limits across locations
| Location | Typical Fee | Usual Limit | Hours |
|---|---|---|---|
| Bank or credit union | $1–$3 (account holders) | $500–$1,000 | Weekdays 9 a.m.–5 p.m., limited Saturday |
| Post office | $1.45–$2.00 | $1,000 | Weekdays 9 a.m.–5 p.m., limited Saturday |
| Grocery store or pharmacy | $0.88–$3.00 | $500–$1,000 | Extended hours, often open evenings and Sundays |
| Check-cashing service | $2–$5 | $500–$1,000 | Extended hours, often open evenings and weekends |
| Online service | $2–$5 plus shipping | $500–$1,000 | Order anytime, delivery takes 3–7 business days |
What to bring and how to fill out a money order
Bring cash or a debit card and the recipient's full name and address. You'll need to know exactly how much you want to send, including the fee. The cashier will fill in most of the money order, but you'll write the recipient's name on the "Pay to the Order of" line and sign the back.
Keep your receipt. It shows the money order number and amount, which you'll need if the money order is lost or never cashed. The recipient will need to sign the back of the money order when they cash it, just like a check.
Some places require a photo ID, though this is less common for money orders than for check cashing. If you're buying a large money order or multiple orders at once, the cashier may ask for ID as a precaution against fraud.
Frequently Asked Questions
Can I buy a money order with a credit card?
Most places do not accept credit cards for money orders because they treat it as a cash advance, which carries high fees. Stick with cash or a debit card. Some banks may allow credit card purchases if you have an account with them, so call ahead to ask.
What's the difference between a money order and a cashier's check?
A money order is smaller and cheaper, usually capped at $1,000, while a cashier's check is issued by a bank and can be for any amount. Cashier's checks are more formal and often required for large purchases like real estate. For everyday payments under $1,000, a money order is faster and cheaper.
Can I cancel a money order after I buy it?
Yes, but the process varies by location. You'll need your receipt and the money order number. Most places charge a cancellation fee of $1 to $5 and may take several weeks to process the refund. It's easier to cancel at the place where you bought it than to try to stop it elsewhere.
Do I need to show ID to buy a money order?
Not always, but some locations ask for ID as a standard practice or if you're buying multiple orders. Bring a driver's license or state ID just in case. If you don't have ID, call ahead to ask whether the location will sell you a money order without one.
How long does it take for someone to cash a money order?
A money order can be cashed almost immediately at most banks, check-cashing services, and post offices. Some places may hold it for a few business days if the amount is large or if there's any question about the money order's validity. The recipient should ask the cashier how long the hold will be.