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 paper document that works like a cashier's check but costs less and is available at more locations. You pay the full amount upfront — the money order itself plus a small fee — and the recipient cashes it like a check. The fee is what varies most, and it depends on whether you buy from a bank, post office, grocery store, or check-cashing service.

Most post offices charge $1.45 to $2.00 for money orders under $500 and slightly more for larger amounts. Walmart and other retailers typically charge $0.70 to $1.00. Banks may charge $5 to $10 if they offer them at all — many no longer do. Check-cashing stores usually fall in the $1 to $3 range. The amount you're sending doesn't affect the fee much; a $50 money order costs nearly the same as a $500 one from the same place.

Key Takeaways

  • Money order fees range from under $1 at retailers to $5 or more at banks, with the post office falling in the middle around $1.50 to $2.00.
  • You pay the fee when you buy the money order, not when the recipient cashes it, so the total cost is the amount plus the fee.
  • Retail locations like Walmart and grocery stores offer the cheapest fees and are open longer than post offices.
  • Money orders have a maximum amount — usually $500 to $1,000 depending on the issuer — so sending large sums requires multiple money orders.

Where to buy money orders and what each location charges

The U.S. Postal Service is the most recognizable option. Post offices charge $1.45 for money orders up to $500 and $2.00 for amounts between $500.01 and $1,000. Hours vary by location, but most close by 5 or 6 p.m. on weekdays and have limited Saturday hours. You'll need cash or a debit card; some post offices don't accept credit cards.

Walmart and other large retailers are usually cheaper and more convenient. Walmart charges $0.70 for money orders up to $1,000 and $1.00 for amounts up to $5,000. Most Walmart locations are open until 10 or 11 p.m. and some are open 24 hours. Grocery stores like Kroger, Safeway, and Albertsons typically charge $0.99 to $1.50 and are also open longer than banks or post offices.

Banks rarely issue money orders anymore, and when they do, the fee is high — often $5 to $10. Call your bank first to confirm they offer them. Check-cashing services charge $1 to $3 and are common in neighborhoods without bank branches, but their hours vary widely and some require membership.

How the total cost breaks down

The cost of a money order is simple math: the amount you're sending plus the fee. If you send a $200 money order from Walmart, you pay $200.70 out of pocket. If you send the same amount from the post office, you pay $201.45. The recipient receives the full $200; the fee doesn't come out of what they get.

This matters when you're budgeting. If you need to send exactly $500, buying a $500 money order from Walmart costs $500.70 total. Sending $1,000 requires two money orders, which doubles the fee. Some people send multiple smaller money orders to stay under the limit and avoid paying higher fees at banks.

Money order limits and when you need more than one

Most money orders cap out at $500 to $1,000 depending on the issuer. The post office allows up to $1,000 per money order. Walmart caps theirs at $5,000, which is higher than most. If you need to send more than the limit, you buy multiple money orders and the recipient deposits them all.

This adds cost. Sending $2,000 requires two $1,000 money orders from the post office, which means two $2.00 fees instead of one. That's $4.00 in fees instead of $2.00. For large amounts, a cashier's check from a bank may be cheaper — many banks charge a flat $10 to $15 per check regardless of amount — or a wire transfer if speed matters and you have a bank account.

Money orders versus cashier's checks for cost

Money orders are cheaper than cashier's checks for small to medium amounts. A cashier's check typically costs $10 to $15 from a bank, while a money order costs $1 to $5. If you're sending under $1,000, a money order is almost always the cheaper choice.

For amounts over $1,000, the math shifts. A single cashier's check costs $10 to $15 no matter the amount. Two money orders to send $2,000 cost $4 to $8 in fees. But if you need to send $5,000 or $10,000, a cashier's check becomes more economical because you avoid buying five or ten separate money orders. Cashier's checks also don't have amount limits, so they're the only option for very large sums.

What you need to buy a money order

Buying a money order is simpler than getting a cashier's check. You don't need a bank account. You need cash or a debit card (some places accept credit cards, but not all), the amount you want to send, and the recipient's name and address. The issuer fills in the rest.

You'll provide the recipient's name as the payee — the person who cashes it — and your name as the purchaser. Some locations ask for your address. You don't need to show ID at most retailers, though the post office may ask for it. The whole process takes five to ten minutes.

Tracking and safety features

Money orders come with a receipt that includes a serial number. If the money order is lost or stolen before the recipient cashes it, you can contact the issuer with the serial number and request a replacement or refund. This process takes time — typically two to eight weeks depending on the issuer — so money orders aren't ideal if you need to send something urgently and can't afford to wait if it goes missing.

The recipient's name is printed on the money order, so only that person can cash it. This makes it safer than sending cash through the mail. However, if you make a mistake writing the recipient's name, the money order becomes difficult to correct. Some issuers will cancel and reissue, but others won't, so double-check the name before you hand over your cash.

Frequently Asked Questions

Can I get a refund if I buy a money order and don't use it?

Yes. Take the money order and your receipt back to the place where you bought it. Most retailers and the post office will refund the full amount minus the fee. Some require the money order to be uncashed and unendorsed. The post office typically processes refunds within a few business days.

What's the difference between a money order and a wire transfer?

A wire transfer moves money electronically from one bank account to another and arrives within hours or a day. A money order is a paper document that the recipient has to deposit or cash, which takes several days. Wire transfers cost $15 to $30 and require a bank account. Money orders cost $1 to $5 and don't require an account, but they're slower.

Do I need to show ID to buy a money order?

At most retailers, no. The post office may ask for ID. Check-cashing services usually require ID. None of these are federal requirements; it depends on the issuer's policy. Call ahead if you're unsure.

Can someone else cash a money order if my name is on it?

No. The payee — the person's name written in the "pay to" line — is the only one who can cash it. If you're the purchaser but not the payee, you can't cash it yourself. This is a safety feature, but it also means you can't use a money order as a substitute for cash if you change your mind about sending it.

What happens if a money order gets lost in the mail?

Contact the issuer with your receipt and serial number. They'll investigate whether it's been cashed. If it hasn't, they can issue a replacement or refund, but this process takes weeks. For this reason, some people send money orders by certified mail so they have proof of delivery.