Most banks do sell money orders, but not all, and fees vary widely

Your bank probably sells money orders, but you need to check with your specific branch before you count on it. Large national banks like Bank of America, Wells Fargo, and Chase offer them at most locations. Credit unions often do too. But some smaller regional banks and online-only banks do not, so a quick call to your branch or a look at their website saves a wasted trip.

When your bank does sell them, you pay a fee per money order — typically between $5 and $10 for a single order, though some banks charge less. The fee is separate from the amount you are sending. If you need to send $500, you pay the $500 plus the fee. Some banks waive the fee if you maintain a certain account balance or have a premium checking account, so ask about that when you call.

The money order itself is issued in your name as the sender, and you write in the recipient's name. The recipient cashes it at their bank, a check-cashing service, or sometimes a grocery store or post office. Unlike a personal check, a money order is a may provide payment — the bank has already taken the money from your account, so there is no risk the payment will bounce.

Key Takeaways

  • Call your bank first to confirm they sell money orders and what the fee is, because not every branch or bank type offers them.
  • Bank money order fees usually run $5 to $10 per order, though some banks charge less or waive the fee for premium account holders.
  • The money order is may provide payment because the bank collects the money from you upfront, unlike a personal check.
  • You can also buy money orders at the post office, Walmart, grocery stores, and check-cashing services if your bank does not offer them or the fee is too high.

How to buy a money order at your bank

Go to your bank branch in person with your debit card or checkbook and cash or a debit card to pay for the money order. Tell the teller you want to buy a money order and provide the recipient's name and the amount. The teller will fill out the money order, take the payment plus the fee from your account, and give you the completed order.

Some banks let you order money orders online or by phone, but most require you to come in. If you do order remotely, you will still need to pick it up at the branch or have it mailed to you — either way, you pay the fee upfront. Mailing takes several business days, so if you need the money order quickly, going in person is faster.

Keep your receipt. It shows the amount, the fee, and the money order number. If the money order is lost or stolen before the recipient cashes it, you will need that receipt to request a replacement or refund.

When bank money orders cost more than alternatives

A $7 fee at your bank might seem reasonable for one money order, but if you need several, the cost adds up fast. The post office charges $1.45 for money orders up to $500 and $1.95 for $500 to $1,000 — far less than most banks. Walmart charges around $0.88 for orders up to $1,000. Even check-cashing services, which typically charge $2 to $5, are often cheaper than a bank.

If you are sending multiple money orders or the amount is large enough that the bank fee stings, shop around. The post office is usually the cheapest option and is open on Saturday at most locations. Walmart is open late and on Sundays. Your bank is convenient if you are already there, but do not assume it is the best price.

What to do if your bank does not sell money orders

If your bank says no, your next stop is the post office. Every post office in the country sells money orders, and the fees are low. You can buy them during regular business hours, and many locations are open Saturday morning. Bring cash or a debit card.

Walmart, Target, and most grocery stores with a customer service desk also sell money orders. Hours vary by location, but many are open until 9 or 10 p.m. and on Sundays. Check-cashing services sell them too, though the fee is usually higher than the post office or Walmart.

Online banks and some credit unions that do not have physical branches often direct customers to the post office or a retail partner. Ask your bank for a referral if they do not sell money orders themselves.

Money order limits and what they mean for large payments

Most banks cap money orders at $1,000 per order. If you need to send more, you buy multiple money orders. A $5,000 payment means five $1,000 money orders and five separate fees — which is why money orders are not practical for very large payments. A wire transfer or cashier's check is usually cheaper and faster for amounts over $2,000.

The post office has the same $1,000 limit per money order. Walmart caps orders at $1,000 as well. These limits exist partly for fraud prevention and partly because money orders are meant for everyday payments, not large transfers.

How long a money order takes to clear

Once the recipient deposits or cashes a money order at their bank, it usually clears within one to three business days. The recipient's bank treats it like a check — they hold it briefly to verify it is genuine, then release the funds. You do not need to do anything after you hand over the money order; the recipient handles the deposit or cash-out on their end.

If the recipient cashes it at a check-cashing service or retail store instead of a bank, they get the cash immediately. There is no clearing period because the service pays them on the spot and then deposits the money order itself later.

Replacing a lost or stolen money order

If a money order goes missing before the recipient cashes it, contact your bank or the issuer (post office, Walmart, etc.) with your receipt. You will need the money order number, the amount, and the date you bought it. The issuer will put a stop on that money order and issue a replacement, though there may be a small fee — usually $1 to $5.

The process takes a few days to a few weeks depending on the issuer. During that time, the original money order is flagged in the system, so if someone tries to cash it, the bank will reject it. Once the replacement is issued, you can send it to the recipient or cash it yourself if you no longer need to send it.

This is why keeping your receipt is critical. Without it, proving you bought the money order and did not cash it yourself is much harder, and some issuers will not replace it.

Frequently Asked Questions

Can I buy a money order with a credit card?

Most banks and the post office do not accept credit cards for money orders because they consider it a cash advance. You will need to pay with cash, a debit card, or a check. Some Walmart locations accept credit cards, so call ahead if that is your only payment option.

What if the recipient's name is spelled wrong on the money order?

A misspelled name can cause problems. The recipient may not be able to cash it, or the bank may hold it for verification. If you catch the error before handing it over, ask your bank or issuer if they can cancel and reissue it. If the recipient already has it, they should contact their bank to see if the misspelling is minor enough to overlook.

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

Most banks require you to have an account with them. Some will sell to non-customers, but they may charge a higher fee or require ID. Call your bank first. If you do not have an account anywhere, the post office, Walmart, or a check-cashing service will sell to you without one.

Is a money order safer than sending cash in the mail?

Yes. Cash can be stolen and is gone forever. A money order is traceable — it has a number, an issuer, and a record of who bought it. If it is lost or stolen, you can stop payment and get a replacement. The recipient also cannot cash it unless their name is on it, so it is safer for both of you.

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

Yes, but there is a fee. Most banks and the post office will refund the amount minus a $1 to $5 cancellation fee. You need the original receipt and the unused money order. Some issuers require you to wait a certain number of days before refunding, so ask when you buy it.