Yes, banks sell money orders, but not all of them and often at a higher cost than other places

Most banks that offer money orders sell them to customers during regular business hours, though the fee and availability depend on the bank and the amount. Large national banks like Chase, Bank of America, and Wells Fargo typically sell them. Credit unions often do as well. However, many online-only banks do not offer them at all because they have no physical branches where you can pick them up or cash them.

Bank money order fees usually range from $5 to $10 per order, depending on the institution and whether you are a customer. Non-customers often pay more or cannot buy them at all. This matters because you can get a money order for $1 to $3 at a grocery store, pharmacy, or post office, making the bank option expensive for most transactions.

The real advantage of buying from a bank is not the price—it is that you can do it during a single visit if you are already there for another reason, and the bank can verify funds when ready. If you need a money order and have no other reason to visit a branch, the post office or a grocery store is almost always cheaper.

Key Takeaways

  • Large national banks and most credit unions sell money orders, but online-only banks typically do not because they have no physical locations.
  • Bank fees for money orders range from $5 to $10 per order, which is significantly higher than post offices ($1.45 to $2.20) or grocery stores ($1 to $3).
  • You must visit a branch in person to buy a money order from a bank; you cannot order one by phone or online at most institutions.
  • Non-customers may pay a higher fee or be turned away entirely, so calling ahead to confirm the bank will sell to you is worth the time.

How to buy a money order at your bank

Walk into a branch during business hours and ask a teller for a money order. You will need to provide the amount, the payee name (who it is made out to), and payment in cash or from your account. The teller will fill out the form, take your fee, and hand you the money order. The whole process takes about five minutes.

Bring a photo ID. Some banks require it; others do not, but having one prevents delays. If you are not a customer, call the branch first to confirm they will sell to you and what the fee is. Many banks reserve money orders for account holders only, especially for large amounts.

Ask for a receipt. The bank will give you a stub or receipt showing the amount, payee, and a tracking number. Keep this until the money order is cashed. If it is lost or stolen, you will need this receipt to file a claim and get a replacement.

Why banks charge more than other places

Banks charge higher fees because they treat money orders as a service for customers, not a primary revenue source. A teller's time, the branch overhead, and the bank's liability insurance all factor into the price. The bank is also betting that you will use the service occasionally and stay as a customer for more profitable products like checking accounts and loans.

Post offices and grocery stores operate on thinner margins and sell money orders as a convenience to draw foot traffic, not as a profit center. They can afford lower fees because they are not paying for a full banking infrastructure or regulatory compliance costs specific to financial institutions.

If you need a money order once or twice a year, the bank fee is a minor inconvenience. If you need them regularly—for rent, bills, or business payments—the post office or a grocery store will save you money over time.

What to do if your bank does not offer money orders

If your bank is online-only or does not sell money orders, your fastest option is the post office. Every post office in the country sells them, and the fee is fixed by the Postal Service: $1.45 for amounts up to $500, and $2.20 for amounts from $500.01 to $1,000. You do not need to be a customer of anything; you just need cash or a debit card.

Grocery stores and pharmacies like Walmart, Target, Kroger, and CVS also sell money orders at the customer service desk. Fees vary by location but are usually $1 to $3. Hours are often longer than banks, and you can buy one while you are already shopping.

Check-cashing services and some convenience stores sell them too, though fees can be higher and hours vary. Call ahead to confirm they have them in stock and what the fee is.

Money order limits and what they mean for you

Most banks cap money orders at $1,000 per order. If you need to send more than that, you will have to buy multiple money orders or use a different method like a cashier's check or wire transfer. The post office also caps at $1,000 per order, as do most grocery stores.

This limit exists because money orders are designed for small, routine payments—rent, utilities, court fees, deposits. For larger amounts, banks prefer you to use a cashier's check (which they issue directly from their account) or a wire transfer (which moves money electronically). Both require a bank account and take longer, but they handle larger sums.

If you need to send $2,500, you can buy three money orders for $1,000 each and one for $500. This is legal and works fine, but it is more expensive and more cumbersome than a single cashier's check.

How to track a money order if something goes wrong

Keep your receipt. The receipt has a tracking number that lets you check whether the money order has been cashed. At a bank, you can call the branch or visit in person with the receipt and ask them to look it up. At the post office, you can file a claim online or in person if the money order was lost or not cashed within a reasonable time.

If the money order was cashed but the payee says they never received it, the receipt proves you sent it. The payee can contact the bank or post office with the tracking number to confirm who cashed it and when. This is why keeping the receipt is critical—without it, you have no proof the money order existed.

If a money order is lost before it reaches the payee, you can file a claim for a replacement. The process takes two to four weeks at most banks and the post office. You will need the original receipt and proof that the payee did not cash it.

Alternatives to money orders if the bank fee is too high

A cashier's check is issued directly by the bank from its own account, not from yours. It is more find than a personal check because the bank guarantees the funds. The fee is usually $10 to $15, so it is more expensive than a money order but appropriate for larger amounts or situations where the payee needs extra assurance. You need a bank account to get one.

A wire transfer moves money electronically from your account to another account. Fees range from $15 to $30 depending on whether it is domestic or international. It is faster than a money order (same day or next day) but requires both you and the payee to have bank accounts. Wire transfers cannot be reversed once sent, so they carry more risk if you make a mistake.

A certified check is a personal check that the bank stamps as verified, meaning the funds are definitely there. Fees are usually $5 to $10. It is slower than a money order (takes a few days to clear) but works well for situations where the payee trusts you but wants proof the check will not bounce.

If you have no bank account and need to send money without paying a high fee, the post office money order remains your cheapest option at $1.45 to $2.20.

Frequently Asked Questions

Can I buy a money order online from my bank?

No. Banks do not sell money orders online because money orders are physical documents that must be signed and handed to you in person. You must visit a branch during business hours. Some banks let you order a cashier's check online for pickup, but that is different from a money order.

What if I do not have a bank account—can I still buy a money order at a bank?

Some banks will sell to non-customers, but many will not. Call the branch first to ask. If they refuse, the post office will sell you one regardless of whether you have an account, and the fee is lower anyway.

Is a money order from a bank safer than one from the post office?

No. A money order is a money order. The safety and tracking are the same whether it comes from a bank, post office, or grocery store. The only difference is the fee and the hours of operation.

Can I get a refund if I buy a money order and change my mind?

Yes, but only if the money order has not been cashed. Bring the original receipt and the unused money order to the bank or post office where you bought it. They will refund the amount minus the fee. If the money order has already been cashed, there is no refund.

What happens if I lose a money order after I buy it?

File a claim with the bank or post office using your receipt and the tracking number. They will investigate whether it has been cashed. If it has not, they will issue a replacement. If it has been cashed, you have no recourse unless you can prove fraud.