Money order fees range from about 50 cents to $5, depending on where you buy it and how much money you're sending

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 location and $3 at another. The amount you're sending sometimes affects the price — many places charge less for smaller amounts and more for larger ones, though the difference is usually just a dollar or two.

Where you already do business often matters more than hunting for the absolute cheapest option. If you bank at a credit union, check there first; credit unions frequently charge the lowest fees or waive them entirely for members. If you have a post office nearby, that's usually competitive. Grocery store money order services tend to be inexpensive because they're trying to draw you into the store.

Key Takeaways

  • Post offices typically charge $1.45 to $1.95 for money orders under $500, and slightly more for larger amounts.
  • Banks and credit unions often charge $5 to $10, but credit union members may pay nothing or a flat 50 cents.
  • Grocery stores and Walmart usually charge under $1 for money orders, making them the cheapest option for most people.
  • The fee is separate from the money order amount — if you buy a $200 money order for $1, you pay $201 total.
  • Some banks waive money order fees for customers who maintain certain account balances or account types.

Post office money order costs

The U.S. Postal Service charges $1.45 for a money order up to $500, and $1.95 for money orders from $500.01 to $1,000. These are the standard rates at post offices nationwide. You can buy a money order at any post office window during business hours, and the fee is added to whatever amount you're sending.

Post offices are reliable and widely available, which is why many people use them even though they're not the cheapest option. The money order itself is insured up to its face value, and the post office will replace it if it's lost or stolen — though you'll need to keep your receipt and wait for the replacement process, which can take weeks.

Bank and credit union fees

Traditional banks typically charge $5 to $10 per money order, making them one of the most expensive options. However, many banks waive the fee if you maintain a certain account balance, have direct deposit set up, or hold a premium checking account. It's worth asking your bank whether you may have access to for a waiver before you pay.

Credit unions are usually much cheaper. Many charge 50 cents to $1 per money order, and some waive the fee entirely for members. If you belong to a credit union, that's often your best bet. Call ahead or check your member handbook to confirm the fee, since it varies by institution.

Grocery store and retail money order costs

Walmart, grocery store chains, and check-cashing services often offer the lowest fees — typically under $1 for amounts up to $1,000. Walmart charges around 88 cents for money orders up to $1,000. Many grocery stores charge similarly or slightly less. These businesses use money orders as a way to bring customers in, so they keep fees low.

The trade-off is that these locations may have shorter hours than a post office or bank, and the money order itself may not come with the same insurance or replacement may provide. Check the receipt to see what protections come with your money order, and keep it in a safe place.

How the amount you're sending affects the price

Most money order providers charge one flat fee for amounts up to a certain limit — usually $500 or $1,000 — and then a higher fee for larger amounts. The post office, for example, charges $1.45 up to $500 and $1.95 from $500.01 to $1,000. Walmart charges one price for anything up to $1,000.

This means there's no real savings in sending a $100 money order instead of a $500 money order at the same place — you'll pay the same fee either way. If you need to send more than $1,000, you'll either need to buy multiple money orders or use a different method like a wire transfer or cashier's check.

Money order fees compared to other payment methods

A money order costs less than a wire transfer, which typically runs $15 to $30 at a bank. A cashier's check usually costs $5 to $15 and takes longer to clear. A personal check costs nothing but offers no proof of payment and can bounce. For sending cash to someone you don't fully trust or paying a bill by mail, a money order is usually the cheapest secure option.

If you're sending money to someone you know and trust, a bank transfer or payment app like Venmo or PayPal might be free or cheaper. But if you need a paper trail, proof of payment, or you're sending money to a stranger or business, a money order's fee is usually worth the protection.

Ways to avoid or reduce money order fees

Ask your bank or credit union whether you may have access to for a fee waiver. Many institutions waive money order fees for customers with certain account types or balances, and you won't know unless you ask. If you're a member of a credit union, that's often your cheapest route.

Buy your money order at a grocery store or Walmart instead of a bank or post office if you're just looking to save a few dollars. The difference between 88 cents and $1.95 adds up if you buy money orders regularly. Some people also buy multiple smaller money orders instead of one large one to stay under the $500 threshold, but this only saves money if the provider charges different rates for different amounts — most don't.

Frequently Asked Questions

Can I get a refund if I don't use the money order?

Yes, you can return an unused money order to the place where you bought it and get your fee back, though you may need your receipt. Some places charge a small cancellation fee, usually $1 or less. If the money order has already been cashed or sent, you cannot get a refund — the money is gone.

What if I lose a money order after I buy it?

Contact the issuer (post office, bank, or store) right away with your receipt. They can put a stop on it and issue a replacement, but the process takes time — usually two to four weeks. You won't get your fee back. This is why keeping your receipt is critical.

Do I have to pay the fee upfront or does it come out of the money order amount?

The fee is separate. If you buy a $200 money order for $1.50, you pay $201.50 total out of your pocket. The recipient gets the full $200. The fee does not reduce the amount being sent.

Are there money orders with no fee?

Some credit unions waive money order fees for members, and a few banks do as well if you meet certain requirements. Otherwise, you'll pay a fee somewhere — it's how the issuer makes money on the transaction. The fee is usually small enough that it's worth paying for the security and proof of payment a money order provides.