Money order fees typically range from $1 to $5, depending on where you buy them and the amount you're sending

A money order is a prepaid document you buy at a store or bank, then give to someone else to cash. You pay the face amount of the money order plus a fee. The fee is what the seller charges you for issuing it — it's not part of the amount the recipient receives. A $500 money order might cost you $503 if the fee is $3.

Where you buy the money order matters more than anything else. Walmart and grocery stores typically charge $0.88 to $1.25 for amounts under $1,000. Banks and credit unions often charge $3 to $5. The U.S. Postal Service charges around $1.45 to $2.00 depending on the amount. Western Union and MoneyGram, which you'll find at convenience stores and pharmacies, charge $1 to $3 for smaller amounts but can go higher for larger sums.

Most places cap the amount you can buy in a single money order. Walmart and grocery stores usually max out at $1,000. Banks may allow up to $5,000 or more. If you need to send more than the limit, you'll have to buy multiple money orders, which means paying multiple fees.

Key Takeaways

  • Money order fees range from under $1 at discount retailers to $5 at banks, so shopping around saves money on large amounts.
  • Walmart and grocery stores are the cheapest option for most people, charging less than $1.50 per money order.
  • Most money orders cap at $1,000 per document, so sending $3,000 requires three separate money orders and three separate fees.
  • The recipient gets the full face amount; you pay the fee on top of that.

Where to buy money orders and what each place charges

Walmart charges $0.88 for money orders up to $1,000 and $1.25 for amounts between $1,000 and $5,000. This is the lowest flat fee you'll find at a major retailer. You can buy them at the customer service desk during store hours.

Grocery stores like Kroger, Safeway, and Albertsons typically charge $0.99 to $1.25 per money order, with limits around $1,000. Some regional chains vary slightly, so ask at the customer service counter. Many grocery stores issue them during regular checkout hours.

The U.S. Postal Service charges $1.45 for money orders up to $500 and $1.95 for $500.01 to $1,000. You can buy them at any post office during business hours. This is a middle-ground option — more expensive than Walmart but cheaper than most banks.

Banks and credit unions charge $3 to $5 per money order, sometimes more. They may allow higher limits (up to $5,000 or $10,000) and offer them only to account holders. If you bank somewhere, this is convenient but not the cheapest route.

Western Union and MoneyGram, found at convenience stores, pharmacies, and check-cashing places, charge $1 to $3 for smaller amounts but can charge more for larger sums or rush delivery. These are useful if you need a money order outside normal business hours, but fees can add up quickly.

How money order limits affect the total cost

If you need to send $2,500, you cannot buy a single $2,500 money order at most retailers. Instead, you'd buy three money orders: two for $1,000 each and one for $500. At Walmart, that's three fees of $0.88 each, totaling $2.64 in fees. At a bank charging $5 per money order, you'd pay $15 in fees for the same transaction.

The limit varies by issuer and sometimes by the amount. Walmart caps most money orders at $1,000 but allows up to $5,000 if you're buying the higher-tier version (which costs $1.25). The postal service caps at $1,000. Banks may go higher. Always ask the limit before you buy, especially if you're sending a large amount.

For amounts over $5,000, money orders become impractical because you'd need to buy so many that fees pile up. A cashier's check or bank transfer becomes a better option at that point.

Money orders versus cashier's checks on cost

A cashier's check costs $5 to $15 at most banks and credit unions, sometimes more. A money order costs $0.88 to $5 depending on where you buy it. For small amounts, a money order is cheaper. For large amounts, a cashier's check may be cheaper because you pay one fee instead of multiple money order fees.

If you're sending $3,000, three money orders at Walmart cost $2.64 total. Three money orders at a bank cost $15. A single cashier's check at that same bank costs $10 — less than the money orders but more than Walmart's option. The math changes based on where you bank and where you buy the money order.

Cashier's checks are also more formal and carry higher limits (usually $10,000 or more in a single check). Money orders are faster to issue and don't require a bank account. Choose based on the amount, where you bank, and how quickly you need it.

Fees you might pay beyond the base cost

Some places charge extra if you need a duplicate or replacement money order. If you lose a money order or need a copy of the receipt, expect to pay $5 to $15 for a replacement or duplicate. Keep your receipt until the money order is cashed.

A few retailers charge a small fee if you want to cancel a money order you've already bought. This is rare, but it's worth asking before you purchase. Most places will refund the money order amount but keep the fee.

If you're buying a money order at a check-cashing service or pawn shop rather than a bank or retailer, fees can be higher — sometimes $3 to $5 even for small amounts. These places make money on fees, so they charge more than Walmart or the post office.

How to minimize money order costs

Buy at Walmart or a grocery store if you have access to one. The fees are the lowest you'll find, and both are open during convenient hours. If you need multiple money orders, buying them all at once at Walmart saves you the most money.

If you're sending a large amount, calculate whether a cashier's check or bank transfer would be cheaper. For $5,000 or more, a single cashier's check often costs less than multiple money orders, even though the per-item fee is higher.

Avoid buying money orders at convenience stores or check-cashing places unless you have no other option. Their fees are higher, and you're paying for the convenience of location and hours rather than a better service.

Ask about limits before you buy. If a place caps money orders at $1,000 and you need $2,000, you already know you'll pay two fees. Some banks allow higher limits for account holders, which might save you a fee if you're sending a large amount.

Frequently Asked Questions

Can I buy a money order for more than $1,000?

Yes, but limits vary. Walmart allows up to $5,000 for a $1.25 fee. The postal service caps at $1,000. Banks may allow $5,000 to $10,000 or more. If you need more than the limit, you buy multiple money orders and pay multiple fees.

Do I need a bank account to buy a money order?

No. Walmart, grocery stores, the post office, and convenience stores all sell money orders without requiring an account. Banks and credit unions may require you to be a customer, but most retailers do not.

Is a money order safer than cash?

Yes. Cash can be lost or stolen and is gone. A money order is a document with a tracking number, so if it's lost or stolen, you can request a replacement or refund. The recipient also has proof of payment because they cash it at a bank or store.

What's the difference between a money order fee and the face amount?

The face amount is what the recipient receives. The fee is what you pay the issuer. If you buy a $500 money order with a $1 fee, you pay $501 total, and the recipient cashes it for $500.

Can I use a money order to pay a bill?

Yes. Write the recipient's name on the money order, include your account number in the memo line, and mail it or deliver it in person. Treat it like a check. Make sure the recipient's name matches exactly what you write on the money order.