Money order fees vary by where you buy them, but typically run between $1 and $5

A money order is a prepaid slip of paper that works like a check — you pay the full amount upfront, plus a small fee, and the recipient cashes it. The fee is what you pay for the service. Post offices, grocery stores, convenience stores, and banks all sell money orders, and each charges differently. A money order from the US Postal Service usually costs $1.45 to $2.00 depending on the amount. Walmart charges around $0.88 to $1.25. Your bank may charge $5 or more, or nothing at all if you have a checking account there.

The fee is separate from the money order amount itself. If you want to send $500, you pay $500 plus the fee — so your total cost is $500 plus whatever that seller charges. The recipient gets the full $500; the fee stays with the seller.

Key Takeaways

  • Money order fees range from under $1 at discount retailers to $5 or more at banks, depending on where you buy.
  • The US Postal Service charges $1.45 to $2.00 per money order, with higher fees for amounts over $500.
  • Walmart and other grocery stores typically charge less than $1.50, making them cheaper than banks for most transactions.
  • You pay the fee at the time of purchase, separate from the money order amount itself.
  • Some banks waive fees for customers with checking accounts, so it is worth asking your bank before buying elsewhere.

US Postal Service money order fees

The Postal Service charges based on the amount you are sending. For money orders up to $500, the fee is $1.45. For amounts between $500.01 and $1,000, the fee is $2.00. You cannot buy a single money order for more than $1,000, so if you need to send more, you would buy multiple money orders.

You can buy a money order at any post office during business hours. You will need cash or a debit card to pay. Bring the money order amount plus the fee. The postal worker will fill in the payee name (who receives it), and you sign it. The whole process takes about five minutes.

Retail store money order fees

Walmart charges $0.88 for money orders up to $1,000. This is the cheapest option at most major retailers. Many grocery stores like Kroger, Safeway, and Albertsons sell money orders through their customer service desk for $0.99 to $1.50. Convenience stores like 7-Eleven and Circle K typically charge $1.25 to $2.00. The exact fee depends on the store location and the amount, so it is worth asking before you buy.

The advantage of retail stores is convenience — most are open longer hours than post offices and are located in neighborhoods where you already shop. You pay at the register or customer service desk, and the transaction is quick. You will need cash or a debit card.

Bank money order fees

Banks charge the most for money orders, typically $5 to $10 each. However, many banks waive the fee if you have a checking account with them. Before you pay a fee at a post office or store, call your bank and ask whether they sell money orders and what the cost is for account holders. Some credit unions also offer money orders to members at no charge or for a small fee.

The benefit of buying from your bank is that you can do it during a visit to the branch, and the teller can verify the amount and payee right away. If you are already there for another reason, it may be worth the trip even if there is a small fee.

Comparing total cost across sellers

SellerTypical FeeBest For
Walmart$0.88Lowest cost, convenient hours
Grocery store$0.99–$1.50Nearby location, familiar store
US Postal Service$1.45–$2.00Reliable, widely available
Convenience store$1.25–$2.00Late-night availability
Bank (non-account holder)$5–$10Not recommended unless account holder
Bank (account holder)$0–$5Often free or low cost

If you are sending a $200 money order, the difference between Walmart ($0.88) and a bank ($5) is $4.12. Over time, if you send multiple money orders, those small fees add up. For a single transaction, the difference may not matter much, but if you send money orders regularly, shopping around saves money.

What affects the fee amount

The main factor is the seller, not the amount you are sending. Walmart charges $0.88 whether you buy a $50 money order or a $1,000 one. The US Postal Service is the exception — it charges $1.45 for amounts up to $500 and $2.00 for amounts between $500 and $1,000. Most retail stores do not change their fee based on the amount.

Some sellers may charge extra if you want a duplicate copy or if you need to cancel and reorder. Ask about these options when you buy, especially if you are sending a large amount and want proof of purchase.

Frequently Asked Questions

Can I get a refund if I buy a money order and change my mind?

Yes, but there is usually a fee. The US Postal Service charges $1.00 to cancel a money order and refund your money. Retail stores and banks have their own cancellation policies, so ask before you buy. You will need the original money order receipt and proof of ID.

Is there a limit to how much I can send in one money order?

Yes. The US Postal Service caps money orders at $1,000. Most retail stores and banks have the same limit. If you need to send more than $1,000, you can buy multiple money orders or use a wire transfer or cashier's check instead.

Do I need an ID to buy a money order?

Not always. Most retailers do not ask for ID. The US Postal Service does not require it either. However, if you are buying a very large money order or the seller suspects fraud, they may ask for identification. Bring your driver's license just in case.

What happens if a money order gets lost or stolen?

If you have the receipt, you can request a replacement from the seller. The US Postal Service can trace a money order if you have the receipt number. Bring your receipt and proof of ID to the post office, and they will investigate. This process can take several weeks, so keep your receipt in a safe place.

Can I buy a money order with a credit card?

Most sellers do not accept credit cards for money orders. The US Postal Service, Walmart, and most retail stores require cash or a debit card. Some banks may allow you to charge a money order to your account if you are a customer, but this is rare. Call ahead to confirm payment methods.