Money order fees range from about 70 cents to $5, depending on the amount and where you buy it

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 one place and $3 at another. The fee usually depends on two things: how much money the order is for, and which business is issuing it.

Most money orders under $1,000 cost between 70 cents and $2. Orders for larger amounts can run $3 to $5. Some places charge a flat fee regardless of amount; others charge more as the order gets bigger. The only way to know the exact price is to ask before you buy.

Key Takeaways

  • Post offices typically charge 70 cents to $1.50 for money orders under $1,000, making them one of the cheapest options.
  • Grocery stores and pharmacies with money order services often charge $1 to $3, depending on the amount and location.
  • Banks and check-cashing services may charge $2 to $5 per money order, especially if you are not a customer.
  • Calling ahead or checking a business's website before you go saves time and helps you find the lowest fee in your area.

Where to find the lowest fees

The U.S. Postal Service is usually the cheapest place to buy a money order. Post offices charge 70 cents for orders up to $500 and $1.50 for orders from $500.01 to $1,000. You need a valid ID and cash or a debit card to buy one.

Walmart and other large retailers offer money orders at customer service desks, typically for $1 to $3 depending on the amount. Grocery stores like Kroger, Safeway, and Publix also sell them at similar prices. These are often cheaper than banks and faster than going to the post office if one is nearby.

Banks charge more — usually $2 to $5 per money order — and may charge extra if you are not an account holder. Credit unions sometimes offer lower rates to members. Check-cashing services and payday loan stores typically charge $3 to $5, making them the most expensive option for most people.

Why fees vary so much

Businesses set money order fees based on how much it costs them to issue one and how much profit they want to make. The post office operates at a smaller margin than a check-cashing store, which is why their fees are lower. A bank may charge more because they assume you are a customer and can absorb the cost, or because they issue fewer money orders and need to cover overhead differently.

The amount of the money order also affects the fee. Issuing a $10 money order takes the same work as issuing a $900 one, but some businesses charge more for larger amounts anyway. Others use a flat fee so that a $50 order and a $950 order cost the same. Neither approach is universal.

What the fee covers

The fee is the business's charge for creating the money order, running it through their system, and taking on the small risk that something goes wrong. It is not a tax or a government charge — it is pure profit for the issuer. You pay it once, at the time you buy the money order.

The recipient does not pay a fee to cash the money order. They can take it to a bank, post office, or check-cashing service and get the money without any additional cost to them. The fee is only on the buyer's side.

How to avoid overpaying

Call ahead or check online before you go. Most post offices, Walmart, and grocery stores list their money order fees on their websites or will tell you over the phone. If you need several money orders, the difference between a $1 fee and a $3 fee adds up quickly.

If you are buying a money order regularly — for rent, bills, or other payments — ask whether the business offers a discount for multiple orders. Some do not, but it never hurts to ask. Also consider whether a check, bank transfer, or bill-pay service might be free or cheaper for your specific situation.

Money orders for large amounts

Most places will not issue a single money order for more than $1,000. If you need to send more than that, you will have to buy multiple money orders. This means paying multiple fees — two $1.50 fees for two post office money orders, for example, instead of one larger fee.

Some businesses have different limits. Check before you go if you are sending a large amount. A bank transfer or cashier's check might be cheaper or more practical if you are moving a lot of money.

Frequently Asked Questions

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

Yes, but you will lose the fee. Most places will refund the full amount of the money order itself if you have not cashed it and can show your receipt. The fee you paid to buy it is non-refundable. Some businesses require you to return to the same location where you bought it.

Do I have to pay a fee if I cash a money order someone sent me?

No. The person who bought the money order paid the fee. You can cash it at a bank, post office, or check-cashing service without paying anything extra. You will get the full face value of the money order.

Is there a money order fee if I buy one online?

Some banks and payment services let you order money orders online, but you still pay a fee — usually $1 to $3 — and you have to pick it up in person or have it mailed to you. Online ordering does not eliminate the fee; it just changes how you buy it.

What if the money order gets lost or stolen?

You can file a claim with the issuer to get your money back, but the process takes time and you will need your receipt. The fee you paid is still gone. This is one reason to keep your receipt until the money order is cashed.