Money order fees range from about 70 cents to $10, depending on where you buy them and how much money you're sending
The cost of a money order is not fixed. Post offices, banks, grocery stores, and check-cashing services all set their own prices. A money order for $500 might cost $1.50 at your bank but $5 at a check-cashing store. The amount you're sending also matters — sending $50 usually costs less than sending $1,000. Most money orders cap out at $1,000 per order, though some places let you buy multiple orders in one transaction.
The fee is separate from the face value. If you buy a $100 money order for $1.25, you pay $101.25 total — the recipient gets $100. You cannot recover the fee if the money order is lost or never cashed, so it's worth comparing prices before you buy, especially if you're sending a large amount.
Key Takeaways
- Post offices typically charge 70 cents to $1.50 for money orders under $500, making them the cheapest option for most people.
- Banks usually charge $5 to $10 per money order, even for customers with accounts, so they are rarely the best deal.
- Grocery stores and pharmacies with money order services often charge $1 to $3, falling between post offices and banks.
- Check-cashing stores charge the most — often $5 to $10 — but are open longer hours and may not require a bank account.
- The fee does not change based on how far the money order travels or how quickly it's cashed.
Post office money order costs
The United States Postal Service charges a flat fee based on the amount you're sending. For money orders up to $500, the fee is 70 cents. For money orders from $500.01 to $1,000, the fee is $1.50. These prices apply at every post office in the country — there is no regional variation.
You do not need a bank account or ID to buy a money order at the post office, though you will need to show a valid ID at the counter. Post offices are open during standard business hours, usually 9 a.m. to 5 p.m. on weekdays, with limited Saturday hours. If you need a money order outside those times, you'll have to use another source.
Bank money order fees
Banks typically charge $5 to $10 per money order, regardless of the amount. Some banks charge less for customers with checking or savings accounts, but the discount is usually only 50 cents to $1. A few banks offer money orders free to premium account holders, but this is rare and usually requires maintaining a high balance or paying a monthly fee.
Banks are not a cost-effective choice for most people buying a single money order. The post office is almost always cheaper. Banks make sense only if you're already there for another reason or if your bank offers them free as part of your account benefits.
Grocery store and pharmacy money order costs
Stores like Walmart, Kroger, Safeway, and CVS that offer money order services typically charge $1 to $3 per order. Walmart is often the cheapest at around $1 to $1.25, while grocery stores and pharmacies tend to charge closer to $2 to $3. These prices fall between the post office and banks, making them a reasonable middle option.
The advantage is convenience — many of these stores are open early and close late, including weekends. You can often buy a money order while you're already shopping. The downside is that not every location offers the service, so you may need to call ahead or check online to confirm.
Check-cashing store money order fees
Check-cashing stores and payday loan shops charge the most for money orders, typically $5 to $10 depending on the amount. These stores are most useful if you don't have a bank account and need a money order outside normal business hours. Many are open until 8 or 9 p.m. on weekdays and have Saturday hours.
The trade-off is clear: you pay significantly more for the convenience of extended hours and no account requirement. If you have access to a post office or grocery store, those are cheaper options. Use check-cashing stores only when timing or account status makes other sources unavailable.
How the amount you're sending affects the price
Most money order providers charge based on brackets — the fee stays the same within a range, then jumps at a threshold. The post office uses two brackets: under $500 costs 70 cents, and $500 to $1,000 costs $1.50. Banks and other providers may use different brackets, so a $100 money order and a $499 money order might cost the same, but a $501 order costs more.
If you're sending more than $1,000, you'll need to buy multiple money orders. Buying two $500 orders costs twice the fee of one $500 order. This is why comparing total cost — not just per-order fee — matters when sending large amounts. Two $500 orders at the post office cost $1.40 total. Two $500 orders at a bank might cost $10 to $20.
Money order fees compared to other payment methods
A money order fee is a one-time cost that does not depend on distance, speed, or the recipient's bank. A wire transfer through a bank typically costs $15 to $30 and is faster but more expensive. A cashier's check from a bank costs $5 to $15 and works similarly to a money order but requires a bank account. A personal check costs nothing but offers no proof of payment and can bounce.
For small amounts under $1,000 and situations where speed is not critical, a money order is usually the cheapest secure payment method. For larger amounts or when you need the money to arrive within hours, a wire transfer may be worth the extra cost. For routine payments to people you trust, a personal check or bank transfer is free.
Frequently Asked Questions
Can I get a refund on a money order fee?
No. The fee is non-refundable once you've bought the money order. If the money order is lost, stolen, or never cashed, you can request a replacement, but the original fee is gone. This is why it's worth comparing prices before you buy — a few dollars in fees can add up if you're sending money regularly.
Do I pay the fee on top of the amount I'm sending?
Yes. If you want to send $100 and the fee is $1, you pay $101 total. The recipient receives $100. The fee does not come out of what they get — you cover it entirely.
Is there a difference in cost between sending a money order locally versus out of state?
No. The fee is the same whether you're sending the money order across town or across the country. Distance does not affect the price at the post office, banks, or other providers.
What's the cheapest way to send money if I need it to arrive quickly?
A wire transfer through your bank is fastest but costs $15 to $30. A money order takes 3 to 7 business days and costs under $2 at the post office. If speed matters more than cost, wire transfer is the trade-off. If cost matters more than speed, a money order is cheaper.
Do I need a bank account to buy a money order?
No. The post office, grocery stores, and check-cashing stores all sell money orders without requiring an account. You do need a valid ID at the post office. Check-cashing stores may ask for ID but typically don't require proof of banking.