A money order is a prepaid payment method that works like a check but doesn’t require a bank account to purchase or cash. Millions of people use them every year to pay rent, send funds to family members, or handle bills when personal checks aren’t accepted. They’re one of the most reliable ways to send a guaranteed payment without exposing your bank details.
This page contains affiliate links. We may earn a commission at no extra cost to you.

Unlike personal checks, money orders can’t bounce. The full amount is paid upfront, which makes them a safe alternative to cash for both the sender and the recipient. Whether you need to mail a payment, cover a deposit, or send money to someone who doesn’t have a bank account, knowing where and how to buy one saves time and fees.
What to Look For When Buying a Money Order
The right one depends on how much you’re sending, where you’re buying it, and how fast you need it. Here are the key factors that matter.
Fee structure. Fees range from about $0.35 at Walmart to $2.00 or more at banks and credit unions. The United States Postal Service (USPS), the federal mail carrier, charges $1.75 for amounts up to $500 and $2.40 for $500.01 to $1,000. Small differences add up if you buy them regularly.
Purchase limit. Most issuers cap a single payment at $1,000. USPS domestic versions follow this same cap. If you need to send more, you’ll have to buy multiples or consider a cashier’s check instead.
Payment method accepted. Most locations require cash or a debit card. Credit cards are rarely accepted, and when they are, the transaction usually gets classified as a cash advance with extra fees. Stick with cash or debit to avoid surprises.
Tracking and proof of purchase. Always keep the stub you receive at checkout. That small slip is the only proof of purchase if the payment is lost or stolen. USPS and Western Union both offer tracking services tied to the serial number on that stub.
Expiration and refund policy. Domestic USPS versions never expire. However, some private issuers like MoneyGram, the global payment services company, deduct a monthly service fee from the face value after one to three years. Check the fine print before buying.
International capability. Not every type works across borders. USPS offers international versions to select countries, and Western Union, one of the oldest transfer companies in the world, handles cross-border payments through their network of locations.
Common Mistakes When Buying Money Orders
The biggest mistake people make is failing to fill one out immediately after purchase. A blank slip is as good as cash to anyone who finds it.
Leaving the payee line blank. Write the recipient’s name on the front before you leave the counter. If you lose a blank one, there’s no way to recover the funds without the stub, and even then it takes weeks.
Throwing away the stub. Your purchase stub contains the tracking number you’ll need to verify the payment has been cashed, request a refund, or file a claim if it goes missing. Treat it like a bank statement.
Using a credit card to pay. Some locations technically allow credit card purchases, but your card issuer will treat it as a cash advance. That means higher interest rates from day one and an additional fee on top of the purchase cost.
Buying from unverified sources. Advance-fee scams involving counterfeits are common. Only purchase from established issuers like USPS, MoneyGram, or major retailers. If someone asks you to deposit one and wire back the difference, it’s a scam.
Where to Buy Money Orders In Store
Thousands of retail locations, post offices, banks, and convenience stores sell them across the country. Here are the most accessible options.
USPS Post Office
The United States Postal Service sells postal money orders at every post office location. Fees run $1.75 for amounts up to $500 and $2.40 for amounts between $500.01 and $1,000. You’ll need cash or a traveler’s check to pay. One advantage of USPS is that domestic versions never expire, which makes them useful for payments that might not be cashed right away. Check your local post office for hours before heading over, since some branches close early on Saturdays and stay closed on Sundays.
Walmart
Walmart sells MoneyGram versions at the customer service desk for a flat fee of about $1.00, up to $1,000. That makes it one of the cheapest options available. Most Walmart locations are open early and close late, which helps if you need one outside normal business hours. Pay with cash or debit at the register.
CVS Pharmacy
CVS partners with MoneyGram to offer them at most locations. Fees vary by store but typically fall between $1.25 and $2.00. Pharmacy locations tend to have shorter lines than banks or post offices, so this is a solid choice when you’re in a hurry.
Grocery Stores
Many grocery store chains sell them at their customer service counter. Kroger, Publix, Safeway, and Meijer all offer them through MoneyGram partnerships. Fees usually range from $0.50 to $1.50. Call ahead to confirm your specific store offers this service, since not every location participates.
Banks and Credit Unions
Your local bank or credit union, a member-owned financial institution, can issue one. Fees tend to be higher here, often $5 to $10, but the process is straightforward if you already have a checking account at that branch. Some banks waive the fee for account holders. This option also works well if you need a larger amount, since banks can issue a cashier’s check for amounts above the $1,000 cap.
Canada Post
Canadian residents can purchase them through Canada Post at any post office location. Fees and limits differ from USPS, so check their current schedule before visiting.
Where to Buy Money Orders Online
Online purchases are available through a few major providers, though the process differs from walking into a store.
Western Union
Western Union lets you send payments online, though their digital options function more like wire transfers than traditional paper versions. You’ll create an account, enter the recipient’s details, and pay with a debit card or bank account. Fees vary based on the destination and payment method. They also operate physical locations if you prefer to handle the financial transaction in person.
MoneyGram
MoneyGram offers online payment services and maintains roughly 40,000 agent locations across the U.S. for in-person purchases. Their online platform lets you send funds electronically, which can serve the same purpose as a traditional paper version. Create an account, verify your identity, and complete the transaction at a nearby agent or pay digitally.
USPS Online
USPS does not sell them online. You must visit a post office in person. However, you can use the USPS website to look up locations and hours near you before making the trip. While you’re there, you might also want to pick up stamps to mail the completed payment.
Top Money Order Picks by Situation
The best place to buy depends on your budget, how quickly you need it, and whether you’re sending domestically or internationally.
Best for low fees: Walmart MoneyGram. At roughly $1.00 per transaction, Walmart offers the cheapest option for domestic payments up to $1,000. Available at the customer service desk during store hours. Check MoneyGram products on Amazon
Best for reliability: USPS Postal Money Order. Backed by the federal government, USPS postal versions never expire domestically and are widely accepted. Fees run $1.75 to $2.40. See related products on Amazon
Best for international transfers: Western Union. Their global network handles cross-border payments to over 200 countries. Fees vary by destination and payment method. See related products on Amazon
Best for convenience: Grocery Store or CVS. Short lines and extended hours make pharmacies and grocery stores ideal when you need a quick purchase without a special trip. Fees typically run $0.50 to $2.00.
If you’re looking for other ways to send value, you might also consider Visa gift cards for situations where a prepaid option works better than a paper payment.
Frequently Asked Questions
How much does a money order cost?
Fees typically range from $0.35 to $2.40, depending on where you buy. Walmart charges about $1.00, USPS charges $1.75 to $2.40, and banks may charge $5 to $10. The fee is separate from the face value of the payment itself.
Can you buy a money order with a debit card?
Yes, most locations accept cash or debit as payment. Credit cards are generally not accepted, and when they are, the transaction is treated as a cash advance with higher fees and immediate interest.
Do money orders expire?
USPS domestic orders never expire. However, private issuers like MoneyGram and Western Union may deduct service fees from the value after one to three years of inactivity. Check the terms before purchasing.
What happens if a money order is lost or stolen?
Contact the issuer immediately with your purchase stub. USPS and MoneyGram all offer refund or replacement processes, but you’ll need the serial number from that stub. Processing a refund typically takes 30 to 60 days.
How do you fill out a money order?
Write the recipient’s name on the “Pay to” line on the front. Add your name and address in the purchaser section. Sign the front only (the back is for the recipient to endorse). Keep the receipt stub for tracking. Complete this immediately after purchase.
Are money orders safer than personal checks?
Yes. Since they’re prepaid, they can’t bounce like a personal check tied to a checking account with insufficient funds. They also keep your bank account number private, which is why many landlords and government agencies prefer them.
Reviewed by the wheretobuyguides.com editorial team. Last updated: April 2026.