Yes, most banks issue money orders, but not all branches carry them and some charge fees

You can get a money order from your bank, but you need to go in person during business hours. Not every bank offers them — some have stopped issuing money orders entirely because fewer people use them — so call your branch first to confirm they have them in stock. If your bank does issue them, you'll pay a fee (usually $5 to $10 per money order) and you'll need to bring cash or a debit card to pay for the order itself plus the fee.

The process is straightforward: tell the teller you want a money order, provide the name of the person or business it's going to, and hand over the cash or card. The teller fills it out, you sign it, and you get a receipt. The whole transaction takes about five minutes. You can then mail it, deliver it in person, or give it to someone else to deliver.

If your bank doesn't offer money orders or their fees are high, you have other options that are often faster and cheaper. The U.S. Postal Service, Walmart, CVS, and Western Union all issue money orders with different fee structures and availability.

Key Takeaways

  • Call your bank branch before you go — some no longer issue money orders, and those that do may have limited stock or specific hours.
  • You'll need to pay the money order amount plus a fee (typically $5 to $10), and you must pay in cash or with a debit card at the time of purchase.
  • The post office, Walmart, and CVS often charge less than banks and have longer hours or more locations near you.
  • Money orders are safer than cash for mailing because they can be replaced if lost, but only if you keep your receipt.

What banks charge for money orders and why fees vary

Bank fees for money orders typically range from $5 to $10 per order, though some banks charge less if you have a checking account with them. A few banks waive the fee entirely for customers who meet certain account requirements — usually a minimum balance or direct deposit. Call your specific branch to ask what they charge; the fee can vary between branches of the same bank.

Banks charge fees because issuing a money order involves labor (the teller's time), the cost of the physical paper, and the bank's liability if the money order is lost or stolen. Larger banks tend to charge more than credit unions or smaller regional banks. Some banks have stopped offering money orders altogether because the demand has dropped and the profit margin is too thin.

If your bank's fee seems high, compare it to the post office ($1.45 to $2.00 for most amounts), Walmart ($0.88 to $3.00 depending on the amount), or CVS ($1.25 to $2.50). The difference adds up if you're buying multiple money orders.

How to buy a money order at your bank

Walk into your bank during business hours and ask a teller for a money order. Have ready the name of the payee (the person or business receiving the money) and the amount. The teller will ask you to provide this information and will fill out the money order form. You'll need to sign it in front of the teller.

Pay the teller with cash or a debit card. Do not use a credit card — banks will not accept credit cards for money order purchases because money orders are considered cash equivalents. You'll pay both the face value of the money order (the amount being sent) and the fee. For example, if you want a $500 money order and the fee is $8, you'll hand over $508.

The teller will give you the money order and a receipt. Keep the receipt in a safe place. If the money order is lost or stolen before it's cashed, you'll need the receipt to request a replacement. Write down the money order number from the receipt if you're mailing it and want to track it.

When a bank won't have money orders in stock

Some branches run out of money orders, especially smaller branches or those in rural areas. If your branch doesn't have them on hand, they can usually order them for you to pick up in a few business days. This delay makes the post office or Walmart a better choice if you need a money order today.

Branches in very small towns or those that rarely issue money orders may not stock them at all. In that case, you'll need to go to a different branch, the post office, or a retailer. Call ahead to confirm availability rather than making a trip for nothing.

Why the post office and retailers are often faster and cheaper

The U.S. Postal Service charges $1.45 for money orders up to $500 and $2.00 for money orders from $500.01 to $1,000. Post offices are open on Saturdays at most locations and many stay open until 5 or 6 p.m. on weekdays, making them more convenient than banks if you work standard hours. You don't need an account or ID, just cash.

Walmart charges $0.88 for money orders up to $1,000 and $3.00 for money orders from $1,000.01 to $5,000. Walmart is open late (often until 11 p.m.) and has locations in most towns. CVS charges $1.25 to $2.50 depending on the amount and is open even later in many places. Both accept cash only.

Western Union, available at many grocery stores and convenience stores, charges higher fees ($5 to $15 depending on the amount) but offers the fastest service and can sometimes send money directly to a person rather than requiring a physical money order.

How to protect yourself when buying and sending a money order

Keep your receipt until the money order is cashed. The receipt contains the money order number and is your proof of purchase. If the money order is lost in the mail or stolen, you'll need this receipt to file a claim for a replacement. Without it, you have no way to prove you bought it.

Write the payee's name clearly on the money order. Do not leave it blank or write "cash" — anyone who finds it can cash it if it's blank. If you make a mistake, ask the teller for a new one; most places will not correct errors on a money order that's already been issued.

If you're mailing the money order, use regular mail with tracking if the amount is large (over $500). The post office offers Certified Mail for about $4 extra, which gives you proof of delivery. For smaller amounts, regular mail is standard practice.

Never send a money order to someone you don't know or trust. Money orders cannot be stopped or reversed once they're cashed, unlike checks or credit card payments. If the recipient is a scammer, your money is gone.

Money orders versus other payment methods

Money orders are safer than cash for mailing because they're traceable and can be replaced if lost. They're also safer than personal checks because they're may provide funds — the issuer has already collected the money. However, they're slower than electronic transfers and more expensive than ACH payments or wire transfers for large amounts.

Use a money order when you need to pay someone who doesn't accept electronic payments, when you want to avoid giving out your bank account number, or when you need a paper trail. Use a check if the recipient accepts them and you want to avoid the fee. Use an ACH transfer or wire transfer if both parties have bank accounts and the money needs to arrive quickly.

For paying bills to a utility company or government agency, check whether they accept online payment first — it's free and instant. Money orders are most useful for paying rent to a landlord who doesn't have online payment set up, paying a contractor or small business, or sending money through the mail to someone you don't have a banking relationship with.

Frequently Asked Questions

Can I buy a money order with a credit card?

No. Banks, the post office, Walmart, and CVS all require cash or debit card only. Money orders are treated as cash equivalents, and payment processors don't allow credit card purchases of cash equivalents because of fraud and money-laundering rules.

What happens if I lose a money order before I send it?

Contact the issuer (your bank, the post office, or Walmart) with your receipt and the money order number. They'll file a claim and issue a replacement, usually within 30 to 60 days. This is why keeping your receipt is critical — without it, you have no proof you bought it.

Can I cancel a money order after I've bought it?

Yes, if it hasn't been cashed yet. Bring the receipt and the money order to the issuer and ask for a refund. They'll charge a small fee (usually $1 to $5) to process the cancellation. Once it's cashed, it cannot be reversed.

How long does a money order take to clear?

Money orders are treated as cash, so they clear immediately when cashed. The recipient can deposit it at their bank and the funds will be available within one to two business days, depending on the bank. There's no waiting period like there is with checks.

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

Most banks don't require ID if you have an account with them. If you don't have an account, some banks will ask for ID; others won't issue money orders to non-customers at all. Call ahead to ask. The post office and retailers don't require ID.