Yes, most banks sell money orders, but not all branches carry them

You can buy a money order at most banks, but you need to check with your specific bank first—some branches don't stock them, and a few banks have stopped offering them altogether. The largest national banks (Chase, Bank of America, Wells Fargo, Citibank) all sell money orders at most locations. Regional and community banks often do too, though smaller branches may not keep them in stock.

When you go to your bank, bring your debit card or ID and cash or a linked account. The teller will write the money order for you on the spot. The cost varies by bank—typically $5 to $10 per money order—and some banks charge less for customers with checking accounts. The process takes about five minutes.

If your bank doesn't carry money orders or your branch is closed, you have other fast options: the U.S. Postal Service, Walmart, grocery stores, and check-cashing services all sell them. Each has different hours, fees, and limits on how much you can send.

Key Takeaways

  • Most major banks sell money orders at their branches for $5 to $10 each, and the transaction takes about five minutes.
  • Not every bank branch stocks money orders, so call ahead or check your bank's website before you go.
  • The U.S. Postal Service, Walmart, and grocery stores are faster alternatives if your bank doesn't have them or is closed.
  • You'll need a valid ID and either cash or a debit card to buy a money order at a bank.
  • Money order limits at banks are usually $1,000 per order, though some banks allow higher amounts for business customers.

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

Bring a valid photo ID (driver's license, passport, or state ID card) and either cash or your debit card. Some banks require you to have an account with them; others will sell to anyone with ID. Call your branch ahead of time to confirm their policy.

You'll also need to know the exact amount you want to send and the name of the person or business receiving it. The teller will fill in the payee name and amount while you watch. Write down the money order number and keep your receipt—you'll need both if the money order is lost or never arrives.

How much a bank money order costs and what the limits are

Bank fees for money orders range from $5 to $10 per order, depending on the bank and whether you have an account there. Some banks charge $5 for account holders and $7 or $8 for non-customers. A few banks offer one assistance programs order per month to checking account holders.

Most banks allow you to send up to $1,000 per money order. If you need to send more, you can buy multiple money orders. Some banks will sell you as many as you want in one visit; others limit you to a few per day. Business customers may be able to request higher limits or buy in bulk at a discount.

Why you might choose a bank over other places to buy a money order

Banks are a good choice if you already have an account there and want a discount on the fee. They're also reliable—you're buying from a regulated financial institution, and the money order is may provide by the bank. If something goes wrong, you can walk back into the branch and talk to someone who knows your account.

Banks are slower than some alternatives, though. If you need a money order outside business hours, the post office, Walmart, or a grocery store may be open when your bank is not. If speed is your priority and you're willing to pay a slightly higher fee, those options are faster.

Comparing banks to post offices, Walmart, and grocery stores

Where to BuyFeeLimit per OrderHoursSpeed
Bank$5–$10$1,000 (usually)Business hours only5 minutes
U.S. Post Office$1.45–$2.00$1,000Varies; many open Saturdays5 minutes
Walmart$0.88–$1.25$1,000Usually 6 a.m.–11 p.m.3 minutes
Grocery store (varies by chain)$1–$3$500–$1,000Store hours3 minutes
Check-cashing service$2–$5$500–$1,000Often open evenings and weekends5 minutes

The post office charges the least ($1.45 to $2.00), but banks charge more ($5 to $10). Walmart and grocery stores fall in the middle and are often faster because they have longer hours. If you need a money order on a Sunday evening, your bank won't be open—Walmart or a check-cashing service probably will be.

What happens after you buy a money order at your bank

The teller will hand you the money order and a receipt. The money order has a unique serial number printed on it. Write down that number and keep your receipt in a safe place. If the money order is lost or stolen before it reaches the recipient, you'll need both the number and the receipt to file a claim and get your money back.

Mail the money order to the recipient or hand it to them in person. They'll sign the back and deposit it at their bank like a check. The money usually appears in their account within one to three business days, depending on their bank. If the recipient's bank is slow or if there's a problem with the money order, it can take longer.

If the money order never arrives or is lost, contact your bank with your receipt and serial number. The bank will file a claim with the money order issuer (usually a third-party processor). The claim process takes 30 to 90 days. Once the claim is approved, the bank will refund you or issue a replacement money order.

When a bank money order is not the best choice

If you need a money order outside business hours, a bank won't work. If you're sending a small amount and want to save on fees, Walmart or the post office are cheaper. If you don't have a photo ID, some banks won't sell to you—check-cashing services and the post office may have different rules.

If you're sending money internationally, a bank money order won't work at all. International money orders are a different product, and most banks don't sell them. You'll need a wire transfer, an international money transfer service, or a specialized international money order from the post office.

Frequently Asked Questions

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

No, most banks will sell money orders to anyone with a valid photo ID, whether or not you have an account there. However, some smaller banks or credit unions may require membership. Call your bank ahead of time to confirm their policy.

What if my bank doesn't have money orders in stock?

Ask the teller if they can order one for you—many banks can get one within a day or two. If you need it immediately, go to Walmart, a grocery store, or the post office instead. Those places almost always have them in stock.

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

Most banks do not accept credit cards for money orders. You'll need cash or a debit card. Some banks treat money order purchases as cash advances if you use a credit card, which means you'll pay a higher fee and interest immediately.

What's the maximum amount I can send in one money order?

Most banks limit money orders to $1,000 per order. If you need to send more, you can buy multiple money orders. Some banks will sell you as many as you want in one transaction; others limit you to a few per day.

How long does it take for a money order to reach someone?

If you mail it, delivery depends on the postal service—typically three to five business days. If you hand it to the recipient in person, they can deposit it immediately. Once deposited, the money usually appears in their account within one to three business days.