Most banks sell money orders, but not all, and some charge more than other places
You can get a money order at your bank if it offers them, but you will need to ask first—many banks have stopped selling them as fewer people use them. If your bank does sell money orders, you can buy them in person at a branch during business hours. The cost varies by bank, usually between $1 and $10 per money order, depending on the amount and your account type.
If your bank does not sell money orders or you do not have a bank account, you have other options that are often faster and cheaper. The U.S. Postal Service, Walmart, Western Union, and MoneyGram all sell money orders at thousands of locations. Many people find these alternatives easier because the locations are more numerous and hours are longer than bank branches.
Key Takeaways
- Call your bank before you go—many no longer sell money orders, and those that do may require you to have an account.
- Bank money orders typically cost $1 to $10 each, but post offices and retailers often charge less.
- The U.S. Postal Service, Walmart, and Western Union are widely available alternatives that may be faster and cheaper than your bank.
- You will need cash or a debit card to buy a money order; most places do not accept credit cards for this transaction.
- Money orders are safer than cash for paying bills or sending money because they can be replaced if lost or stolen.
What you need to bring to buy a money order at your bank
Bring cash or a debit card and a valid photo ID. Most banks require identification to sell a money order, even if you have an account with them. If you are buying a money order for someone else, bring their name and address so you can fill in the payee line correctly.
You will also need to know the exact amount you want the money order for. Money orders are sold for specific amounts—you cannot buy one for $47.50 and then change it later. If you are unsure of the exact amount, ask the teller before you hand over your money.
How much banks charge for money orders
Bank fees for money orders range from $1 to $10, depending on the bank and the amount of the money order. Some banks charge a flat fee regardless of size; others charge more for larger amounts. A few banks waive the fee for customers with certain account types, such as premium checking or wealth management accounts.
Compare this to the U.S. Postal Service, which charges $1.45 for money orders up to $500 and $1.95 for money orders from $500.01 to $1,000. Walmart charges $0.88 for money orders up to $1,000. If you are buying multiple money orders or large amounts, the savings at a post office or retailer can add up quickly.
When your bank does not sell money orders
If your bank says it does not sell money orders, the post office is usually your fastest option. Most post offices are open six days a week, and many have extended hours. You can also check whether your bank offers a money order through a partner service—some banks contract with Western Union or MoneyGram to sell money orders at the branch even if they do not issue them directly.
Walmart, Target, and other large retailers sell money orders during store hours, which are often longer than bank branches. Western Union and MoneyGram have agents at thousands of locations, including grocery stores, pharmacies, and check-cashing services. Call ahead or check the website to confirm the location sells money orders and what payment methods they accept.
How to fill out a money order at the bank
The teller will usually fill in most of the money order for you, or they will hand you a blank one and show you where to write. Write the payee name (the person or business receiving the money) on the "Pay to the Order of" line. Write your name and address on the "From" line so the recipient knows who sent it.
Do not sign the money order until you are ready to send it. If you sign it blank, anyone who has it can cash it. Keep your receipt—it contains the money order number and serial number, which you will need if the money order is lost, stolen, or not cashed within a certain time frame.
What to do if you lose a money order or it is not cashed
If a money order you bought is lost or stolen before you send it, contact your bank immediately with your receipt. The bank can cancel the money order and issue a replacement or refund. This process usually takes one to two weeks, though some banks are faster.
If you sent a money order and the recipient says they never received it, ask them to check with their bank—it may have been deposited under a different name or account. If it was truly lost in the mail, you can file a claim with the U.S. Postal Service or the money order issuer (your bank, Western Union, or MoneyGram). You will need your receipt and proof that the money order was not cashed. The issuer will investigate and replace the money order or refund your money if the claim is valid.
Money orders versus other payment methods at the bank
A cashier's check is similar to a money order but is issued by the bank itself and is used for larger amounts. Cashier's checks are more secure because the bank guarantees the funds, but they cost more—usually $5 to $15 each. Use a cashier's check for large payments like a down payment on a house or car; use a money order for smaller bills or transfers.
A wire transfer moves money directly from your bank account to another account, usually within one business day. Wire transfers are faster than money orders but cost more, typically $15 to $30. A bank draft is another option that works like a money order but is drawn on your account and takes longer to clear. For most everyday payments, a money order is the cheapest and most straightforward choice.
Frequently Asked Questions
Do I need a bank account to buy a money order?
No. You can buy a money order at the post office, Walmart, Western Union, or MoneyGram without an account. You will need cash or a debit card and a valid photo ID. Some banks require you to have an account with them to buy a money order, so call ahead if you are planning to use your bank.
Can I use a credit card to buy a money order at the bank?
Most banks do not accept credit cards for money order purchases. You will need cash or a debit card. This is because money orders are considered a cash advance by credit card companies, and they charge high fees and interest. Paying with cash or debit avoids these extra charges.
How long does it take to buy a money order at the bank?
The transaction usually takes five to ten minutes if you have your ID and know the amount. If the bank is busy, you may wait longer. Post offices and retailers are often faster because they have more locations and longer hours, so you may not have to wait as long.
What is the maximum amount I can buy a money order for?
Most banks, the post office, and retailers limit money orders to $1,000 each. If you need to send more than $1,000, you will need to buy multiple money orders or use a wire transfer or cashier's check instead. Ask your bank or the issuer what their limit is before you go.
Can someone else cash my money order if I lose it?
If you have not signed the money order, yes—anyone who has it can cash it. This is why you should not sign it until you are ready to send it. If you do lose an unsigned money order, contact the issuer right away with your receipt to cancel it and get a replacement.