Walmart money orders cost $0.88 for amounts up to $1,000
Walmart charges a flat fee of $0.88 for any money order up to $1,000. This is one of the lowest fees available — most banks charge $1 to $10, and some grocery stores charge $1.25 or more. You pay the fee at the register when you buy the money order, on top of the amount you're sending.
Walmart does not issue money orders for amounts over $1,000. If you need to send more than that, you'll have to use a different provider or split the amount across multiple money orders (which means paying the fee twice).
The money order itself is good at any bank, business, or government office that accepts them. Walmart does not limit where you can use it — the recipient can cash it anywhere, and you can send it by mail or hand it over in person.
Key Takeaways
- Walmart charges $0.88 for money orders up to $1,000, with no additional fees added to the amount you send.
- You must buy the money order in person at a Walmart customer service desk or money services counter — you cannot order one online or by phone.
- Walmart does not issue money orders over $1,000, so amounts larger than that require a different payment method or multiple money orders.
- The money order is valid at any bank, business, or government office nationwide, and the recipient does not need a Walmart account to cash it.
Where to buy a Walmart money order
Go to the customer service desk or money services counter at any Walmart location. Not all Walmart stores have a money services counter — call ahead or check the store locator on Walmart.com to confirm the location near you offers them. Hours vary by store, but most are open during regular store hours.
Bring cash or a debit card to pay for the money order and the $0.88 fee. Walmart does not accept credit cards for money order purchases at most locations. Have the recipient's name ready — you'll need to write it on the money order at the counter.
What information you need to provide
You will need the recipient's full name — the person or business who will cash the money order. You do not need their address, account number, or any other details. The cashier will fill in the amount and your information as the sender.
If you're sending the money order by mail, write the recipient's mailing address on the envelope, not on the money order itself. The money order only needs the recipient's name to be valid.
How to track or replace a lost money order
Keep your receipt. Walmart's receipt shows the money order number, the amount, the date, and the fee paid. If the money order is lost or stolen before the recipient cashes it, you can use this receipt to request a replacement or refund.
Contact the Walmart location where you bought it with your receipt. Walmart can check whether the money order has been cashed. If it has not been cashed, they can issue a replacement or refund the amount minus the fee. This process typically takes a few days to a few weeks, depending on whether the money order has cleared the banking system.
If you do not have the receipt, Walmart can still look up the money order using the date and amount, but it will take longer. Keep receipts for at least 60 days after you send a money order.
Walmart money order vs. other payment methods
Money orders are safer than cash for mailing because they can be replaced if lost, and they show a paper trail. They cost less than wire transfers (which can run $15 to $50) and do not require a bank account like ACH transfers do. However, they are slower than digital payments — the recipient has to physically cash or deposit them, which takes a few business days.
If the recipient has a bank account, a direct bank transfer or payment app like Venmo or PayPal is usually faster and free. Money orders are most useful when you need to send cash to someone without a bank account, pay a bill that does not accept digital payments, or send money by mail to someone you do not know well enough to give your bank details to.
Fees at other major retailers
Walmart's $0.88 fee is competitive. Most banks charge $1 to $2 for money orders, and some charge more. Western Union, available at many grocery stores and pharmacies, charges $1 to $2 for amounts under $1,000. The U.S. Postal Service charges $1.45 for money orders up to $500 and $1.95 for $500 to $1,000.
If you are sending a large number of money orders or sending them regularly, the small difference in fees adds up. For a single transaction, Walmart is usually the cheapest option available.
Frequently Asked Questions
Can I buy a Walmart money order online?
No. Walmart only sells money orders in person at the customer service desk or money services counter. You cannot order one through Walmart.com or the Walmart app. You must visit a physical store location.
What if I make a mistake on the money order?
If you write the wrong name or amount before the cashier finalizes it, ask them to void it and issue a new one. Once it is printed and you leave the counter, you cannot change it. If the recipient's name is wrong, the money order may not be cashable.
Does the recipient need to show ID to cash a Walmart money order?
Yes. Most banks and check-cashing services require a photo ID to cash a money order, even if the recipient's name is on it. This is a standard security measure. The recipient does not need to be the account holder — they just need to match the name on the money order and have valid ID.
How long does a money order stay valid?
Walmart money orders do not expire. However, if a money order is not cashed within a certain period (usually one to three years, depending on state law), the issuer may charge an inactivity fee or the funds may be turned over to the state. It is best to cash or deposit a money order within a few months of receiving it.
Can I get a refund if I change my mind?
Yes, but only if the money order has not been cashed. Return to the Walmart location where you bought it with your receipt and ask for a refund. Walmart will refund the amount you sent minus the $0.88 fee. If the money order has already been cashed, you cannot get a refund.