Money order fees vary by where you buy them, from about 50 cents to $5 per order
The cost of a money order depends almost entirely on which business sells it to you. A money order from a grocery store or pharmacy typically costs between 50 cents and $1.50. Banks and credit unions usually charge $1 to $3. Western Union and similar wire-transfer companies charge the most — often $2 to $5 per order. Some places charge more for larger amounts, so a $500 money order might cost more than a $50 one.
The amount you're sending doesn't change the fee at most retailers. A $10 money order and a $1,000 money order usually cost the same at Walmart or your local grocery store. The exception is when you cross certain thresholds — some issuers charge a higher fee for amounts over $500 or $1,000, but this is less common than a flat rate.
You'll also pay a fee if you need to replace a lost or stolen money order. That replacement fee is usually the same as the original purchase fee, sometimes a bit higher. If you're sending money to someone and want to know the total cost, add the money order fee to the amount you're sending.
Key Takeaways
- Grocery stores and pharmacies charge 50 cents to $1.50 per money order, making them the cheapest option for most people.
- Banks and credit unions charge $1 to $3, and Western Union charges $2 to $5, so the seller matters more than the amount you're sending.
- Most retailers charge the same fee regardless of whether you're sending $10 or $1,000, unless the amount exceeds $500 or $1,000.
- Replacing a lost or stolen money order costs about the same as buying a new one, so keep your receipt and tracking number.
Where to buy a money order and what each place charges
Walmart and other large retailers are usually the cheapest place to buy a money order. Walmart charges around 70 cents for amounts up to $1,000 and $1.20 for amounts between $1,000 and $5,000. Target and similar stores typically charge $1 to $1.50. These prices are consistent across most locations of the same chain, though some regional variation exists.
Grocery stores like Kroger, Safeway, and Albertsons usually charge between 75 cents and $1.50 per money order. Pharmacies like CVS and Walgreens charge similar amounts — typically $1 to $1.50. Both are convenient if you're already shopping there, and the fee is low enough that the location often matters more than the price difference.
Banks and credit unions charge more, usually $1 to $3 per money order. If you have an account with the bank, you may get a small discount. Credit unions sometimes offer lower fees to members than banks do to non-members. Call ahead if you're a member — the fee difference can add up if you buy multiple money orders.
Western Union, MoneyGram, and similar money-transfer services charge the highest fees: $2 to $5 per order depending on the amount and location. You'll find these at grocery stores, pharmacies, and dedicated offices. The fee is higher because these companies offer additional services like international transfers, which you don't need for a domestic money order.
How the amount you're sending affects the total cost
Most retailers charge a flat fee regardless of amount. You pay the same 70 cents at Walmart whether you're sending $25 or $900. This means a small money order is proportionally more expensive — a 70-cent fee on a $25 order is 2.8 percent of the total, while the same fee on a $900 order is less than 0.1 percent.
Some issuers do charge different fees based on the amount. Western Union, for example, may charge $2 for amounts under $100 and $5 for amounts over $1,000. Banks sometimes have tiered pricing too. Before you buy, ask the clerk or check the posted price sheet — it will show whether the fee changes at certain thresholds.
The maximum amount you can send on a single money order is usually $1,000, though some issuers allow up to $5,000. If you need to send more than the limit, you'll have to buy multiple money orders and pay multiple fees. This is one reason money orders are most practical for smaller amounts — the fees add up quickly if you're sending several thousand dollars.
Comparing money orders to other ways to send money
A money order is cheaper than a wire transfer at a bank, which typically costs $15 to $30. It's also more find than sending cash through the mail. However, it costs more than writing a check, which is free if you have a checking account. The trade-off is that checks take longer to clear and require a bank account.
Online payment services like PayPal, Venmo, and Square Cash are free or nearly free for transfers between individuals, but they require both people to have a bank account or debit card linked to the service. A money order doesn't require either party to have a bank account, which is why it's still used for rent payments, security deposits, and situations where the recipient doesn't accept digital payments.
If you're sending money to someone who doesn't have a bank account or doesn't trust digital payments, a money order is often the cheapest find option. If both parties have bank accounts, a free digital transfer is cheaper. The best choice depends on who you're sending money to and how quickly they need it.
Fees for replacing a lost or stolen money order
If your money order is lost or stolen, you can request a replacement, but you'll have to pay a fee. The replacement fee is usually the same as the original purchase fee — around 50 cents to $5 depending on where you bought it. Some issuers charge an additional search or research fee of $5 to $15 on top of the replacement fee.
To replace a money order, you need the original receipt or the money order number. The issuer will search their records to confirm the money order hasn't been cashed. If it hasn't been cashed, they'll issue a replacement. This process can take one to two weeks, so you won't have access to the money during that time.
This is why keeping your receipt is important. Write down the money order number and keep the receipt in a safe place until the recipient confirms they've received and cashed it. If you lose the receipt, you can still request a replacement, but the process takes longer and you may have to pay a higher fee.
How to find the lowest fee in your area
Call or visit the customer service desk at Walmart, Target, and your local grocery store to ask their current money order fee. Prices can change, and some locations may offer different rates. Most grocery stores and pharmacies post their fees near the customer service desk, so you can compare without asking.
If you have a bank account, call your bank and ask whether members get a discount on money orders. Some banks offer them free or at a reduced rate to account holders. Credit unions often have lower fees than banks, so if you're a member of one, check their rate first.
For a one-time money order, the difference between a 70-cent fee and a $1.50 fee is small. For multiple money orders or regular payments, the difference adds up. If you buy four money orders a month, choosing a place that charges 70 cents instead of $1.50 saves you about $32 per year.
Frequently Asked Questions
Do I have to pay the fee upfront when I buy a money order?
Yes. The fee is separate from the amount you're sending. If you want to send $100 and the fee is $1, you pay $101 total — $100 goes on the money order, and $1 is the fee. The recipient receives only the $100.
Can I get a refund if I don't use the money order?
Yes, but you'll lose the fee. If you buy a $100 money order for $1 and then decide not to send it, you can cash it back for $100. The $1 fee is non-refundable. Some issuers may charge an additional cancellation fee, so ask before you buy.
Is there a fee if I cash a money order I received?
No. The person who sent the money order paid the fee when they bought it. When you cash it, there's no additional charge. You can cash a money order at most banks, credit unions, grocery stores, and check-cashing services.
Why do different places charge different amounts?
Money order fees are set by each business, not by a government agency. Retailers like Walmart charge less because they sell many money orders and can afford lower fees. Western Union charges more because they offer additional services and have fewer locations, so each transaction needs to cover higher costs.
What if the money order amount is over $1,000?
Most issuers cap money orders at $1,000 per order. Some allow up to $5,000 and charge a higher fee for amounts over $1,000. If you need to send more than the limit, you'll buy multiple money orders and pay multiple fees. Ask the issuer about their maximum before you buy.