Most banks do not sell money orders at the counter anymore

If you walk into your bank expecting to buy a money order, you will likely leave empty-handed. The majority of large banks—including Chase, Bank of America, Wells Fargo, and Citibank—stopped offering money orders over the past decade. They found the transaction too costly to process relative to what they charge, and most customers now use digital payments instead.

Some smaller regional banks and credit unions still sell money orders, but you have to call ahead to confirm. Even when they do offer them, the fee is often higher than what you will pay elsewhere, and the process can take longer because bank staff are not set up to handle the volume.

The practical reality: if you need a money order, your bank is usually not your fastest or cheapest option. You are better off starting somewhere else.

Key Takeaways

  • Most major banks no longer sell money orders; call your branch first to confirm whether yours does.
  • The U.S. Postal Service, Walmart, and grocery stores like Kroger and Safeway sell money orders for lower fees than banks typically charge.
  • Money order fees range from about $1 to $5 depending on the amount and where you buy, with post offices usually charging less than retailers.
  • You need cash or a debit card to buy a money order; credit cards are not accepted at most locations.
  • The entire transaction—filling out the form, paying, and receiving the money order—usually takes 5 to 10 minutes.

Where to actually buy a money order

The U.S. Postal Service is the most reliable option. Every post office sells money orders up to $1,000 per order, and the fee is fixed by the Postal Service: $1.45 for amounts up to $500, and $1.95 for $500.01 to $1,000. You do not need an account or ID, just cash or a debit card. Walk in, tell the clerk you want a money order, and you will have it in your hands in minutes.

Walmart sells money orders at customer service desks in most locations. The fee is typically $0.88 for amounts up to $1,000, making it cheaper than the post office. You need cash or a debit card. Not every Walmart offers money orders—call ahead or check their website for your nearest location.

Grocery stores including Kroger, Safeway, Albertsons, and Food Lion sell money orders at their customer service counters. Fees vary by store and location, usually between $1 and $3. Call your local store to confirm they sell them and what the current fee is.

Check-cashing stores and payday lenders also sell money orders, but their fees are often the highest—sometimes $3 to $5 per order. Use them only if no other option is open when you need the money order.

What you need to bring and how the process works

Bring cash or a debit card. Credit cards are not accepted at post offices, Walmart, or most grocery stores. You will also need to know the exact amount of the money order and the name of the person or business it is going to. The clerk will not let you leave it blank.

The process is straightforward. Tell the clerk you want a money order, state the amount, and provide the payee name. The clerk fills out the form (or you do, depending on the location), you pay the amount plus the fee, and you receive the money order. Some locations will ask for your ID, but most do not require it. The entire transaction takes 5 to 10 minutes.

Keep your receipt. It contains the serial number of the money order, which you will need if the money order is lost or stolen and you want to request a replacement or refund.

Why your bank stopped selling money orders

Banks made a business decision to stop offering money orders because the transaction does not make them money. A customer pays $2 or $3 in fees, but the bank has to process the payment, track the serial number, handle disputes, and manage the liability if something goes wrong. For a transaction that takes 10 minutes of staff time, the margin is too thin.

Digital payments—ACH transfers, wire transfers, and bill pay through online banking—are cheaper for banks to process at scale. They pushed customers toward those options instead. Credit unions, which operate on a nonprofit model and prioritize member service over profit margins, have been slower to abandon money orders, which is why some still offer them.

Money order limits and when you need multiple orders

The U.S. Postal Service caps money orders at $1,000 per order. If you need to send $2,500, you will have to buy three money orders: two for $1,000 each and one for $500. Each one costs a separate fee.

Walmart and grocery stores typically have the same $1,000 limit, though some locations may differ. Check with your specific store if you need to send more than $1,000.

If you are sending a large amount and do not want to buy multiple money orders, a wire transfer through your bank or a cashier's check may be a better option. Wire transfers move money electronically and have higher limits, though they cost more ($15 to $30 per transfer). Cashier's checks are written by the bank and are treated as may provide funds, but they require a bank account and take longer to process.

What happens if a money order is lost or stolen

If you lose a money order before you cash it, contact the issuer—the post office, Walmart, or grocery store where you bought it—with your receipt. The receipt has the serial number, which is how they track it. You can request a replacement or a refund, but the process takes time. The post office typically takes 30 to 60 days to investigate and issue a replacement.

If someone else cashes the money order before you do, it is gone. Money orders are not like checks; they do not require a signature from the payee, so anyone who has the physical money order can cash it. This is why you should treat a money order like cash once you have it in your hands.

If you are sending a money order through the mail and it does not arrive, ask the recipient to check with their bank or post office. If it was cashed by someone else, the issuer can tell you the date and location where it was cashed, but they cannot recover the money. This is a risk of mailing any form of cash or cash equivalent.

Frequently Asked Questions

Can I buy a money order with a credit card?

No. The U.S. Postal Service, Walmart, and grocery stores do not accept credit cards for money orders. You must pay with cash or a debit card. Some check-cashing stores may accept credit cards, but their fees are higher and you should confirm before you go.

Do I need an ID to buy a money order?

Most locations do not require ID. The post office, Walmart, and grocery stores will sell you a money order without asking for identification. However, if you are buying a very large number of money orders in a short time, a clerk may ask for ID to comply with anti-money-laundering rules.

What is the difference between a money order and a cashier's check?

A money order is issued by the post office or a retailer and does not require a bank account. A cashier's check is issued by a bank and requires you to have an account there. Cashier's checks are larger (no limit) and are treated as may provide funds, but they cost more ($10 to $20) and take longer to process. Money orders are faster and cheaper for small amounts under $1,000.

Can I cancel a money order after I buy it?

Yes, but only if you have not given it to anyone yet. Contact the issuer with your receipt and serial number. They will cancel it and refund your money, minus a small fee (usually $1 to $2). If the money order has already been cashed, it cannot be cancelled.

How long does it take for a money order to clear?

Money orders are treated like 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's processing time. There is no waiting period like there is with personal checks.