Most banks do sell money orders, but not all of them, and many charge fees that make other options cheaper

If your bank offers money orders at all, you will usually find them at the teller window during business hours. Large national banks like Chase, Bank of America, and Wells Fargo sell them, but regional banks and credit unions vary — some offer them freely, some charge $5 to $10 per order, and some stopped selling them altogether. Before you assume your bank has them, call the branch directly or check your account online; many banks now list this service on their website.

The catch is that bank money orders are often more expensive than the alternatives. A $500 money order at a bank might cost $7 to $15, depending on the institution. The same order at the U.S. Postal Service costs $1.45 to $2.00. Walmart, grocery stores, and check-cashing services often charge $0.50 to $3.00. If you are sending money regularly, the fee difference adds up fast.

Banks also tend to have shorter hours than other outlets. The post office stays open Saturday mornings, and many grocery stores and pharmacies sell money orders until 9 or 10 p.m. If you need a money order on a Sunday or after 6 p.m., your bank is closed.

Key Takeaways

  • Not every bank sells money orders, and those that do often charge $5 to $10 per order, making them more expensive than post offices or retailers.
  • The U.S. Postal Service charges $1.45 to $2.00 for a money order and is open Saturday mornings, while most banks close at 5 or 6 p.m. on weekdays.
  • Walmart, grocery stores, and check-cashing services typically charge $0.50 to $3.00 and have evening and weekend hours banks do not offer.
  • You will need cash or a debit card to buy a money order at most places; credit cards are usually not accepted.

Why banks charge more than other places

Banks treat money orders as a low-profit service that takes teller time and carries fraud risk. They would rather you use a wire transfer or ACH payment, which are faster and more profitable for them. The fee is partly a way to discourage the service and partly to cover the cost of the teller's time and the bank's liability if the money order is lost or stolen.

The post office, by contrast, sells money orders as a core service and prices them to compete with other outlets. Walmart and grocery stores use money orders to draw customers into the store, so they keep fees low. Check-cashing services depend on money orders as a regular revenue stream and price them accordingly.

If you are sending a large amount, the fee difference is significant. A $1,000 money order costs $10 at a bank but $2 at the post office — an 80% difference. For a $5,000 order, that gap widens further.

What you need to bring to buy a money order at a bank

Bring cash or a debit card. Most banks will not accept credit cards for money order purchases because they want to ensure you have the funds available. You will also need to know the exact amount you want to send — the teller cannot issue a money order for a range or a "whatever you have" amount.

Have the recipient's name ready. The money order will show who it is payable to, and you cannot change that after it is issued. If you make a mistake, you will have to buy a new one and eat the fee on the first one.

Some banks require you to have an account with them to buy a money order. Others sell them to anyone. Call ahead to confirm, especially if you do not bank there.

When a bank money order makes sense

A bank money order is worth the extra cost in only a few situations. If you are already at the bank for another reason and need a money order immediately, the convenience might justify the fee. If you have a relationship with a banker who waives the fee for regular customers, that changes the math. If you are sending money internationally and your bank offers a special money order product for that purpose, it might be faster than other routes.

For routine domestic payments — rent, utilities, court fees, or sending money to family — the post office or a grocery store will save you money and often give you better hours. The only reason to choose a bank is if it is the only option available to you at that moment.

How to learn about your specific bank sells money orders

Log into your online banking portal and search for "money orders" in the help section or FAQ. Many banks list this information clearly. If you do not find it online, call your local branch and ask the teller directly. Do not ask a general customer service line — they often give wrong answers about branch services.

If your bank does not sell money orders, ask the teller where the nearest post office or Walmart is. They usually know, and they can point you to the fastest alternative.

Money orders from banks versus wire transfers

A wire transfer is faster and often cheaper for large amounts, but it requires a bank account and works only between banks. A money order is slower but works anywhere — you can hand it to a landlord, mail it to a court, or give it to a business that does not accept electronic payments. Wire transfers also carry more fraud risk because they are irreversible once sent. Money orders can be replaced if lost or stolen, as long as you kept the receipt.

For amounts under $1,000 and situations where you need a physical payment method, a money order from the post office or a retailer is usually the better choice. For amounts over $5,000 or transfers between bank accounts, a wire transfer is faster and often cheaper despite the bank fee.

What happens if you lose a bank money order

If you lose a money order before you cash it, contact the bank that issued it immediately. Bring your receipt. The bank can put a stop on the money order and issue a replacement, but this takes time — usually 30 to 90 days — because the bank has to wait to confirm the original was never cashed. You will likely pay a replacement fee, usually $15 to $25.

If the money order was already cashed by someone else, you have no recourse. This is why you should never mail a money order without tracking the delivery. Use certified mail with a return receipt if the amount is large.

Frequently Asked Questions

Can I buy a money order with a credit card at a bank?

No. Banks treat money order purchases as cash advances and do not accept credit cards. You must use cash or a debit card. Some retailers that sell money orders also refuse credit cards for the same reason.

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

It depends on the bank. Some require you to be a customer; others sell to anyone. Call your local branch to ask. If they require an account, the post office, Walmart, or a grocery store will sell you one without any account.

How long does it take to get a money order at a bank?

Usually 5 to 10 minutes at the teller window, assuming the line is short. The teller fills out the form, takes your payment, and hands you the money order. There is no waiting period like there is with a check.

What is the maximum amount I can put on a bank money order?

Most banks cap money orders at $1,000 per order. If you need to send more, you can buy multiple money orders, but you will pay a fee for each one. For amounts over $5,000, a wire transfer is usually faster and cheaper.

Can I cancel a money order after I buy it?

Yes, but only if you have not given it to anyone yet. Bring the money order and your receipt back to the bank within a set time frame — usually 30 days. The bank will refund your money minus a cancellation fee, typically $10 to $15. Once someone else has the money order, you cannot cancel it.