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

A money order is a prepaid piece of paper that works like a check, but the sender pays the full amount upfront — so the recipient knows the money is there. The cost to buy one depends on the amount you're sending and which business sells it to you. The Post Office, Walmart, grocery stores, and banks all sell money orders, and each charges different fees.

Most money orders under $500 cost $1 to $1.50 at the Post Office. Walmart typically charges $0.88 for amounts up to $1,000. Grocery store chains like Kroger or Safeway usually charge $1 to $2. Banks that offer them may charge $3 to $5 or waive the fee for account holders. A few places charge more for larger amounts — for instance, if you're sending $1,000 or more, some retailers add an extra dollar or two.

The fee is separate from the amount you're sending. If you want to send $200, you pay the $200 plus whatever fee the seller charges. You hand over the total cash at the time of purchase.

Key Takeaways

  • The Post Office charges $1 to $1.50 for most money orders, making it one of the cheapest options.
  • Walmart money orders cost $0.88 for amounts up to $1,000, which is often the lowest fee available.
  • Grocery stores and pharmacies typically charge $1 to $2 per money order.
  • Banks may charge $3 to $5 or waive the fee if you have an account with them.
  • The fee is always paid in addition to the amount of money you're sending.

Where to buy a money order and what each place charges

The Post Office is widely available and has consistent pricing. A domestic money order costs $1.45 for amounts up to $500, and $1.95 for $500.01 to $1,000. You can buy one at any Post Office location during business hours with cash or a debit card.

Walmart has the lowest fees of any major retailer. Money orders cost $0.88 for any amount up to $1,000. You can buy them at the customer service desk in most Walmart stores during store hours, and you'll need cash or a debit card.

Grocery stores and drugstores vary by chain. Kroger, Safeway, Albertsons, and similar chains usually charge $1 to $2. CVS and Walgreens typically charge $1.25 to $2. You can buy them at the customer service counter or checkout, and most accept cash or cards.

Banks that offer money orders usually charge $3 to $5 per order, but many waive the fee if you have a checking or savings account with them. Call your bank first to confirm they sell them and what they charge — not all banks do.

Money order limits and what they mean for your cost

Most money orders have a maximum amount of $1,000 per order. If you need to send more than $1,000, you'll have to buy multiple money orders, which means paying multiple fees. For example, to send $2,500, you'd need to buy three money orders ($1,000 + $1,000 + $500) and pay three separate fees.

Some places set lower limits. The Post Office allows up to $1,000. Walmart allows up to $1,000. Grocery stores and drugstores typically allow $500 to $1,000 depending on the chain. Banks may have different limits — ask when you call.

If you're sending a large amount, the fee for multiple orders can add up. Sending $3,000 in money orders at Walmart would cost you $2.64 in fees (three orders at $0.88 each). At the Post Office, it would cost $4.40. This is one reason some people use wire transfers or cashier's checks for larger amounts, though those have their own costs and requirements.

How to pay for a money order

You must pay for a money order in full at the time you buy it. Most places accept cash, debit cards, and sometimes credit cards, though policies vary. The Post Office takes cash and debit cards but not credit cards. Walmart takes cash and debit cards. Grocery stores and drugstores typically take all three.

You cannot charge a money order to a credit card at most retailers, because the business treats it as a cash advance or refuses it outright. If you don't have cash or a debit card, you'll need to use a different payment method or go to a different location that accepts what you have.

Comparing money orders to other ways to send money

A money order is cheap and safe, but it's not the only option. A cashier's check is similar — it's a check the bank writes on its own account — but it costs $5 to $15 and takes longer to clear. A wire transfer costs $15 to $50 but arrives in hours instead of days. A personal check is free but gives the recipient no may provide the money is there.

Money orders work best when you're sending under $1,000 to someone who needs proof the money is real and you want to pay as little as possible. If you're sending more than $1,000, multiple money orders get expensive, and a cashier's check or wire transfer might make more sense. If the recipient needs the money the same day, a wire transfer is faster, though it costs more.

What happens if you lose a money order or need to cancel it

If you lose a money order before you send it, you can request a refund from the place that sold it to you. You'll need to provide the receipt and the money order number. The refund process takes time — usually 30 to 60 days — and some places charge a fee to cancel, though many waive it if you lost it.

If someone else cashes a money order you sent, you cannot get the money back. Money orders are treated like cash once they're signed and handed over. This is why you should only send them to people you trust or use them for transactions where you know the recipient's identity.

If you need to cancel a money order you haven't sent yet, contact the seller as soon as possible with your receipt. The faster you act, the easier the cancellation. Keep your receipt until the money order has been cashed by the recipient.

Frequently Asked Questions

Can I buy a money order with a credit card?

Most places do not accept credit cards for money orders. The Post Office, Walmart, and most grocery stores only take cash or debit cards. Some banks may accept credit cards if you have an account with them, but this is rare. Call ahead if you only have a credit card available.

Is there a fee to cash a money order?

No. The person who receives the money order does not pay a fee to cash it. Only the person who buys the money order pays a fee. The recipient can cash it at a bank, check-cashing service, or the Post Office for free.

What's the difference between a money order and a cashier's check?

Both are prepaid and may provide, but a cashier's check is issued by a bank and costs $5 to $15. A money order is sold by retailers and the Post Office and costs $0.88 to $5. Cashier's checks are better for large amounts; money orders are cheaper for small amounts.

How long does a money order take to clear?

Money orders typically clear within one to three business days, depending on where they're cashed. The Post Office and banks usually process them faster than check-cashing services. Ask the recipient where they plan to cash it if timing matters.

Can I send a money order internationally?

The Post Office sells international money orders, but they're more expensive and take longer to clear — usually two to four weeks. International money orders cost $9.45 for amounts up to $500. For international transfers, a wire transfer or money transfer service is often faster and cheaper.