Yes, banks sell money orders, but not all of them do, and you'll often pay less elsewhere

Most large banks sell money orders at their teller windows during business hours. Bank of America, Wells Fargo, Chase, and Citibank all offer them. However, banks typically charge more than other places—usually between $5 and $10 per money order, depending on the amount and your account status. Some banks waive the fee for account holders, but you have to ask. The catch: you need to go in person during branch hours, and smaller regional banks may not carry them at all.

If you don't have a bank account or want to avoid the fee, you can buy money orders at grocery stores, pharmacies, check-cashing services, and the post office. Walmart, Target, and most supermarkets sell them for $1 to $3. The post office charges a flat $1.45 for domestic money orders. These places are often open longer than banks and don't require an account.

Key Takeaways

  • Banks charge $5 to $10 per money order, while grocery stores and the post office charge $1 to $3, so shopping around saves money on multiple orders.
  • You must visit a bank in person during business hours to buy a money order there, and some smaller banks don't sell them at all.
  • The post office, Walmart, Target, and most grocery stores sell money orders with no account requirement and longer hours than banks.
  • Some banks waive money order fees for checking account holders, so ask your bank before paying the standard fee.

What you need to buy a money order at a bank

Bring a valid government-issued ID—a driver's license, passport, or state ID card. You'll also need to know the exact amount and the name of the person or business the money order is payable to. Have that information ready before you get to the teller window.

If you have a bank account there, bring your debit card or account number. Some banks waive the fee for account holders, and others offer a discount. If you don't have an account, you'll pay the full fee, usually in cash. A few banks require a minimum deposit or account balance to sell money orders to non-customers, so call ahead if you're not sure.

How the bank fills out and issues your money order

The teller will fill in the payee name (the person or business receiving the money), the amount, and the date. They'll print your name and address as the purchaser. You'll receive the original money order and a receipt. Keep the receipt—it has a tracking number you'll need if the money order is lost or never cashed.

The money order is ready to use immediately. You can mail it, hand it to the recipient, or deposit it into an account. The recipient cashes it at their bank, a check-cashing service, or the post office. There's no waiting period.

Why banks charge more than other vendors

Banks treat money orders as a service to account holders and a transaction fee for everyone else. They're not making money on the money order itself—they're charging for the teller's time and the processing. Grocery stores and pharmacies use money orders as a draw to get you in the door, so they price them lower or break even on the fee.

The post office is a government service and sets a flat rate nationwide. Walmart and Target operate on high volume and thin margins, so they keep the fee low. If you're buying one money order, the difference is small. If you're buying five or ten, the difference adds up fast.

When a bank won't sell you a money order

Some banks have stopped selling money orders entirely, especially smaller regional banks and credit unions. Call your branch before you go. If they don't sell them, the post office or a nearby grocery store will.

A bank may also refuse to sell you a money order if you have a history of fraud or if your account is flagged for suspicious activity. If you're not an account holder and the bank has a policy against selling to non-customers, you'll be turned away. In those cases, go to Walmart, Target, a grocery store, or the post office instead.

Money orders from banks versus other places: what changes

VendorFeeHoursAccount RequiredTracking
Bank$5–$10Branch hours (usually 9 AM–5 PM weekdays)No, but may be waived for account holdersYes, receipt included
Post Office$1.45Varies; many open SaturdaysNoYes, receipt included
Walmart/Target$1–$3Store hours (often 7 AM–11 PM)NoYes, receipt included
Grocery Store$1–$3Store hours (often 7 AM–10 PM)NoYes, receipt included
Check-Cashing Service$2–$5Varies; some open evenings and weekendsNoYes, receipt included

How to track a bank money order if it goes missing

Keep your receipt. It has a serial number that identifies your money order. If the money order is lost or never arrives, contact the bank where you bought it. Bring your receipt and the date of purchase. The bank will check whether the money order has been cashed.

If it hasn't been cashed, the bank can issue a replacement or refund. This usually takes 30 to 90 days because the bank has to wait for the original money order to expire before they can confirm it won't be cashed. If it has already been cashed, you'll need to contact the recipient to find out who cashed it and where. The bank can't reverse a money order once it's been cashed.

Frequently Asked Questions

Can I buy a money order online from my bank?

No. Banks require you to buy money orders in person at a branch. You cannot order them online or by phone. Some banks offer bill pay through their website, which is different—it's a check-like payment sent directly to a business, not a money order you can hand to someone.

Do I need a bank account to buy a money order at a bank?

No, but you'll pay the full fee. Some banks waive or discount the fee for account holders. Non-account holders can still buy money orders; you just pay more. You'll need a valid ID and cash or a debit card.

What's the maximum amount a bank will put on a money order?

Most banks limit money orders to $1,000 per order. If you need to send more, you can buy multiple money orders. The post office also caps orders at $1,000. Check with your specific bank or vendor for their limit.

Can I cancel a money order after I buy it from the bank?

Yes, but only if it hasn't been cashed. Go back to the bank with your receipt and ask for a cancellation. They'll issue a refund or replacement. If the money order has already been cashed, you cannot cancel it—it's final.

Is a bank money order safer than a personal check?

Yes. A money order is may provide by the bank or vendor that issues it, so the recipient knows the funds are real. A personal check can bounce if there's not enough money in the account. That's why landlords, utilities, and government agencies often ask for money orders instead of checks.