Yes, most banks sell money orders, but not all of them, and the process varies by institution

You can walk into many banks and buy a money order the same way you would at a grocery store or post office. However, banks are not always the cheapest or fastest option, and some banks have stopped offering them altogether. If you have a checking or savings account at a bank, calling ahead to confirm they sell money orders is the first step—and asking the fee while you call saves a trip.

Banks that do offer money orders typically charge between $5 and $10 per order, depending on the amount and the institution. Some banks charge less for customers with certain account types or balances. The transaction usually takes 10 to 15 minutes if you have your account information and ID ready.

Key Takeaways

  • Not every bank sells money orders; call your branch before you go to confirm they offer them and ask the exact fee.
  • Bank money order fees typically range from $5 to $10, and some banks charge less for premium account holders.
  • Post offices, grocery stores, and Walmart often charge $1 to $3 per money order, making them cheaper than banks in most cases.
  • You will need a valid ID and enough cash or a debit card to cover the money order amount plus the fee.
  • Money orders from banks, post offices, and major retailers are equally safe and widely accepted.

How to buy a money order at your bank

Go to the teller window with your ID and the cash or debit card to cover the amount you need plus the fee. Tell the teller the exact dollar amount of the money order—this is the amount that will be printed on the order itself, separate from what you pay in fees. The teller will ask you for the recipient's name (who the money order is payable to) and may ask why you need it, though they are not required to act on that answer.

The teller will print the money order, take your payment, and give you the original. Keep the receipt or stub that comes with it; this is your proof of purchase and shows the serial number. If the money order is lost or stolen before the recipient cashes it, you will need this stub to file a claim for a replacement.

The whole process takes about 10 to 15 minutes. Some banks can issue a money order while you wait; others may need to order them and ask you to come back the next day. Calling ahead prevents this surprise.

Why banks are often more expensive than other sources

A money order from the U.S. Postal Service costs $1.45 to $2.00 depending on the amount. Walmart charges $0.88 for amounts up to $1,000. Most grocery stores with money order services charge $1 to $3. Banks typically charge $5 to $10 for the same service, making them the most expensive option for most people.

The reason banks charge more is that they treat money orders as a service for account holders rather than a core business. Post offices and retailers use money orders to draw customers in and make money on other transactions. If you do not have a bank account or prefer not to use your bank, you will save money elsewhere.

Which banks still offer money orders

Large national banks like Chase, Bank of America, Wells Fargo, and Citibank still sell money orders at most branches. Regional banks and credit unions vary—some offer them, others do not. Community banks are less likely to offer them than large chains.

The safest approach is to call your branch directly and ask. Do not assume based on the bank's website; policies change and branch-level practices vary. When you call, ask three things: whether they sell money orders, what the fee is, and whether you need an account to buy one. Some banks require you to be a customer; others sell to anyone with ID.

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

Bring a valid government-issued ID—a driver's license, passport, or state ID card. Bring enough cash or have a debit card ready to cover both the money order amount and the fee. Some banks will not let you charge a money order to a credit card, only to a debit card or with cash.

Know the exact dollar amount you need and the name of the person or business the money order should be made out to. If you are paying a bill, the recipient name is usually the company name as it appears on your bill. If you are sending money to a person, use their full legal name as it appears on their ID.

Cheaper alternatives to bank money orders

The U.S. Postal Service is usually the cheapest option if you have a post office nearby. A money order for up to $500 costs $1.45; up to $1,000 costs $2.00. Post offices are open during standard business hours and some locations have extended evening or Saturday hours. You need the same ID and payment method as at a bank.

Walmart sells money orders for $0.88 for amounts up to $1,000 at the customer service desk. You do not need an account or membership. Most Walmarts are open until 10 or 11 p.m., making them convenient for evening transactions. Grocery stores like Kroger, Safeway, and Publix also sell money orders for $1 to $3, usually at the customer service desk or checkout.

If you need a money order and cost matters, check what is available near you. The difference between a $1.45 post office money order and a $7 bank money order is real money, especially if you are sending multiple orders.

What happens after you buy a money order

The money order is now a financial instrument, similar to a check. You can mail it, hand it to someone in person, or deposit it into an account. The recipient cashes it at their bank, a check-cashing service, or the same place you bought it. Money orders do not expire, though some institutions may refuse very old ones without a good reason.

If you lose the money order before the recipient cashes it, contact the issuer (your bank, the post office, or Walmart) with your receipt or stub. They will file a claim and issue a replacement, usually within 30 to 60 days. This is why keeping the stub is important—without it, proving you bought the order is much harder.

Frequently Asked Questions

Can I buy a money order without a bank account?

Yes. You do not need a bank account to buy a money order at a post office, Walmart, or grocery store. You only need a valid ID and cash or a debit card. Some banks require you to be a customer, but many do not—call ahead to ask.

What is the maximum amount for a money order?

Most money orders have a limit of $1,000 per order. If you need to send more than $1,000, you can buy multiple money orders. Some banks and post offices allow higher limits, but $1,000 is the standard.

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

Usually 10 to 15 minutes if the bank has them in stock. Some branches may need to order them and ask you to return the next day. Call ahead to confirm your branch has them available.

Can I use a credit card to buy a money order at a bank?

Most banks do not allow credit card purchases for money orders. You will need cash or a debit card. Check with your specific bank, as policies vary.

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

No. Money orders from banks, the post office, and major retailers are equally safe and widely accepted. The issuer does not affect how safe the money order is—what matters is that you keep your receipt in case you need to file a claim.