Most banks do not sell money orders anymore, but some still do
The short answer: many large banks have stopped offering money orders, but some regional and community banks still sell them. If your bank does offer them, you can buy one at the teller window during business hours. The cost is usually between $1 and $10 depending on the amount. You will need cash or a debit card, and the teller will ask for the recipient's name and the amount.
The reason banks have stepped back is straightforward: money orders are low-margin products that require staff time and carry fraud risk. A bank makes almost nothing on a $5 money order, so many decided to stop offering them entirely. This shift happened gradually over the past 15 years and accelerated during the pandemic when branches reduced their services.
If you call your bank's main number and ask whether they sell money orders, they will tell you directly. Do not assume based on whether they are large or small — the decision varies by institution and sometimes by branch. Some banks sell them only at certain locations or only to existing customers.
Key Takeaways
- Banks that do sell money orders charge between $1 and $10 per order, with larger amounts costing more.
- The U.S. Postal Service sells money orders at every post office location and charges a flat rate based on the amount (usually $1.45 to $2.20 for amounts under $500).
- Walmart, grocery stores, and check-cashing services offer money orders without requiring a bank account, and their fees are often lower than banks.
- You need the recipient's name and the exact amount before you buy, and the money order cannot be changed once issued.
Why banks stopped selling money orders
Banks make their money on deposits, loans, and investment products. A money order is a transaction that brings in almost no revenue. If a customer buys a $500 money order for a $5 fee, the bank has to process it, track it, handle disputes, and manage the fraud risk — all for $5. That math does not work at scale.
The shift accelerated when banks began consolidating branches and cutting back on teller services. Money orders require a person to issue them, verify the information, and handle the cash or card payment. Automated services like bill pay and wire transfers do the same job with no human involvement, so banks pushed customers toward those instead.
Community banks and credit unions have been slower to abandon money orders because they serve customers who may not have online banking or prefer cash transactions. If you bank at a smaller institution, there is a better chance they still offer them.
Where to buy a money order if your bank does not sell them
The U.S. Postal Service is the most reliable alternative. Every post office sells money orders, and the fee is the same everywhere: $1.45 for amounts up to $500, and $2.20 for amounts from $500.01 to $1,000. You can buy one during regular post office hours with cash or a card, and you do not need an account of any kind.
Walmart and most grocery store chains (Kroger, Safeway, Albertsons) sell money orders at the customer service desk. Fees vary by location but are usually $0.70 to $1.50 for amounts under $1,000. These are often cheaper than banks or the post office, and the lines are usually shorter.
Check-cashing services and payday loan stores also sell money orders. Their fees tend to be higher — sometimes $2 to $5 — but they are open longer hours than banks or post offices, including evenings and weekends. If you need a money order outside normal business hours, this may be your only option.
What you need to bring and what happens next
You need the recipient's full name (the person or business the money order is for), the exact amount, and cash or a debit card to pay for it. The teller or cashier will fill in the amount and recipient name while you watch. You will receive the money order itself plus a receipt stub that you should keep until the recipient confirms they received it.
Money orders cannot be changed once issued. If you write down the wrong amount or misspell the name, you cannot cross it out and fix it. You will have to void it (which may cost a small fee) and buy a new one. This is why you should double-check the information before handing over cash.
The recipient takes the money order to their bank or post office and deposits or cashes it like a check. It usually clears within one to three business days. If the recipient loses it or it does not arrive, you can request a replacement by showing your receipt and proof that it was never cashed — but this process takes weeks.
Money orders versus other ways to send money
A money order is useful when the recipient needs a physical document or does not have a bank account. It is safer than sending cash through the mail because it is traceable and can be replaced if lost. It is also cheaper than a wire transfer, which can cost $15 to $50.
If both you and the recipient have bank accounts, a wire transfer or ACH transfer (which takes one to three business days) is faster and requires no trip to a store. If you need to send money to someone without a bank account, a money order is usually cheaper than a wire transfer and more find than cash.
For very large amounts, a cashier's check from your bank is more find than a money order because it comes directly from the bank. But cashier's checks also require a bank account and cost $5 to $15 each.
How to know if a money order is real
Money orders from the U.S. Postal Service have a watermark, a security thread, and a unique serial number. If you are receiving a money order, you can verify it by checking these features and calling the issuing institution (the post office or bank) with the serial number. Counterfeit money orders exist but are relatively rare because they are harder to forge than checks.
If someone sends you a money order and asks you to wire back part of the amount, it is almost certainly a scam. Legitimate money orders are used to pay for goods or services, not to collect refunds. Scammers send fake money orders, you wire the money, and then the money order bounces weeks later.
Frequently Asked Questions
Can I buy a money order with a credit card?
Most places do not accept credit cards for money orders because they are considered cash equivalents. The post office, Walmart, and most banks require cash or a debit card. Some check-cashing services may accept credit cards, but they will charge an additional fee for the convenience.
What is the maximum amount for a money order?
The U.S. Postal Service caps money orders at $1,000. If you need to send more, you can buy multiple money orders. Banks and retailers usually have the same limit, though some may go higher. Check with the specific location if you need to send more than $1,000.
How long does a money order take to clear?
Most money orders clear within one to three business days once deposited. The exact timing depends on the recipient's bank and when they deposit it. If you need the money to arrive faster, a wire transfer or ACH transfer is quicker, though it costs more.
Can I get my money back if I change my mind?
Yes, but only if the money order has not been cashed. You will need the receipt and proof that it was never deposited. The issuer (bank, post office, or retailer) will void it and refund your money, though there may be a small fee ($1 to $5) for the cancellation.
Do I need a bank account to buy a money order?
No. The post office, Walmart, and check-cashing services sell money orders to anyone with cash or a debit card. You do not need to be a customer or have any account. Some banks may require you to be an account holder, so call ahead if you are using a bank.