Yes, most banks sell money orders, but not all of them, and the cost and process vary

Banks do sell money orders, but you need to check with your specific bank first because policies differ. Some banks offer them free to account holders, some charge a flat fee (usually $5 to $10), and some don't sell them at all. Credit unions often sell money orders too, sometimes cheaper than banks. If your bank doesn't carry them or charges more than you want to pay, you have other options: the U.S. Postal Service, Walmart, grocery stores, and check-cashing services all sell money orders, often for $1 to $3 per order.

The reason to check your bank first is speed and familiarity—you already have an account there, they know you, and the transaction is straightforward. But if your bank charges $10 and Walmart charges $1.50, the difference adds up fast if you're sending multiple money orders.

Key Takeaways

  • Banks sell money orders to account holders and non-account holders, but fees range from free to $10 depending on the bank and whether you have an account.
  • The U.S. Postal Service charges $1.45 to $2.00 per money order and is available at every post office during business hours.
  • Walmart, grocery stores, and check-cashing services typically charge $1 to $3 per money order and are often open longer than banks.
  • Money orders from any source are equally safe and legally binding—the issuer doesn't matter to the person receiving it.

What banks charge for money orders

Large national banks like Bank of America, Wells Fargo, and Chase sell money orders, but their fees are not standardized. Bank of America charges around $5 per money order for account holders and $10 for non-account holders, though this varies by branch. Wells Fargo charges roughly $5 to $7. Smaller regional banks and credit unions often charge $1 to $3 or offer them free to members.

The fee structure usually depends on whether you have a checking or savings account with the bank. Account holders typically pay less or nothing. If you don't have an account, expect to pay the higher end of the range. Call your bank's customer service line or visit a branch to confirm the exact fee before you go in—don't assume based on another bank's pricing.

One advantage of buying through your bank: you can use your debit card or withdraw cash from your account to pay for the money order, all in one place. You also get a receipt and a stub for your records immediately.

U.S. Postal Service money orders

The Post Office sells money orders for $1.45 to $2.00 each, depending on the amount. Money orders up to $500 cost $1.45; money orders from $500.01 to $1,000 cost $2.00. This is a flat federal rate, so the price is the same at every post office in the country.

You can buy a money order at any post office during business hours. You'll need to fill out a form with the recipient's name and your name, and you can pay with cash, debit card, or credit card. The Post Office gives you a receipt and keeps a record of the transaction, which is useful if the money order is lost or stolen—you can file a claim to get your money back.

Post offices are often open longer than banks (many have Saturday hours), and they're located in most neighborhoods. If you're already mailing something, buying a money order at the same counter saves a trip.

Walmart and grocery store money orders

Walmart sells money orders for $0.88 to $1.50 depending on the amount (up to $1,000). Most Walmart locations have a money services desk in the front of the store, and you can buy a money order during store hours. You'll need to show an ID and fill out a simple form. Payment is cash only at most Walmart locations, though some accept debit cards.

Many grocery store chains—including Kroger, Safeway, and Albertsons—also sell money orders at their customer service desk for $1 to $2 each. The process is the same: show ID, fill out the form, pay cash. Grocery stores are convenient if you're already shopping and need a money order on the spot.

The trade-off with Walmart and grocery stores is that they're usually open longer than banks and post offices, but they may not keep records as carefully. Ask for a receipt and keep it until the money order is cashed. If it's lost or stolen, you'll need the receipt number to file a claim.

Check-cashing services and other outlets

Check-cashing stores, payday loan shops, and some convenience stores sell money orders for $1 to $3 each. These are often open late and on weekends, making them useful if you need a money order outside normal business hours. The process is the same: show ID, provide recipient information, pay cash.

The downside is that check-cashing services charge higher fees than banks or the Post Office for other services, so their money order fees may reflect that markup. Also, not all check-cashing locations sell money orders—call ahead to confirm. Keep your receipt, because these businesses may not maintain records as thoroughly as the Post Office or a bank.

How to choose where to buy

Start by asking yourself three questions: How much are you sending? How many money orders do you need? When do you need it?

If you're sending under $500 and need just one or two, the Post Office is usually the cheapest option at $1.45 each. If you're sending multiple money orders, Walmart or a grocery store saves more money—$0.88 to $1.50 per order adds up. If you need a money order outside business hours, a check-cashing service or 24-hour convenience store is your only option, even if the fee is higher.

If you have a bank account and your bank charges less than $3 per money order, using your bank is reasonable because you already have the relationship and they keep records. But if your bank charges $5 or $10, you're paying a premium for convenience—decide if that's worth it to you.

What to bring and how the transaction works

You'll need a valid photo ID (driver's license, passport, or state ID card) to buy a money order at any location. You'll also need to know the recipient's name and address. Some places ask for your phone number or address too, so bring that information if you have it.

The seller will give you a form to fill out with the recipient's name, your name, and the amount. You'll pay the amount of the money order plus the fee (so if you're sending $500, you pay $500 plus $1.45 at the Post Office). You'll receive the money order itself, a receipt, and sometimes a stub or carbon copy for your records. Keep all of these until the recipient confirms they received and cashed the money order.

The entire transaction usually takes 5 to 10 minutes. If the location is busy, it may take longer. Don't rush—make sure the amount and recipient name are correct before you leave, because correcting mistakes after the fact is difficult.

Frequently Asked Questions

Can I buy a money order with a credit card?

Most places accept debit cards but not credit cards for money orders. The Post Office and some banks accept credit cards. Walmart and grocery stores typically accept cash only. Check with the specific location before you go, because policies vary by store and region.

What if I lose a money order after I buy it?

Contact the issuer (your bank, the Post Office, Walmart, etc.) with your receipt and the money order number. You can file a claim to get your money back, but it takes time—usually two to four weeks. This is why keeping your receipt is critical. Without it, proving you bought the money order is much harder.

Is a money order from a bank safer than one from Walmart?

No. A money order is a money order regardless of where you buy it. The recipient doesn't care whether it came from a bank or Walmart—they cash it the same way. The safety comes from the money order itself, not the seller. All money orders are backed by the issuer's may provide to pay.

Can I buy a money order for someone else?

Yes, but you'll need to show your ID. The form asks for your name as the purchaser and the recipient's name. You're not sending money on behalf of someone else—you're buying the money order yourself and giving it to the recipient. The recipient can be anyone.

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

No. You can buy a money order at the Post Office, Walmart, grocery stores, or check-cashing services without a bank account. You only need a valid photo ID and cash (or a debit card at some locations). Banks sell money orders to non-account holders too, though they usually charge a higher fee.