Banks, check-cashing stores, and the post office will all cash money orders, but fees and speed vary

You can cash a money order at your bank, a check-cashing store, the post office, or Walmart and some grocery stores. Your bank is usually the fastest and cheapest option if you have an account there. Check-cashing stores and the post office charge fees but don't require an account. Walmart and grocery stores typically charge less than dedicated check-cashing businesses but may have limits on how much you can cash at once.

The money order itself tells you where it was issued — that matters because some places will only cash money orders they sold. A USPS money order must go to the post office or a bank; a Western Union money order can go to Western Union locations, banks, or check-cashing stores. Always bring the original money order and a valid ID with your current address.

Key Takeaways

  • Your own bank will cash a money order for free or a small fee if you have a checking or savings account there.
  • The post office cashes USPS money orders for a small fee and does not require you to have an account.
  • Check-cashing stores and Walmart will cash most money orders but charge a percentage fee, usually between 1 and 3 percent of the amount.
  • You need the original money order and a government-issued ID with your current address to cash it anywhere.
  • If the money order is damaged, lost, or you need to cash it somewhere other than where it was issued, contact the issuer first — they can verify it or issue a replacement.

Cashing at your bank

If you have a checking or savings account, your bank will cash the money order for free or charge a small fee — usually $0 to $5. This is the fastest route: you walk in, show your ID and the money order, and the teller deposits it into your account or gives you cash on the spot. Most banks do this while you wait, though some may hold the funds for one business day.

You do not need to have the account at the bank that issued the money order. Any bank will cash a money order from any issuer — USPS, Western Union, MoneyGram, or a local bank. Bring your ID, the original money order, and your account number if you want it deposited rather than cashed out.

The post office for USPS money orders

The post office cashes USPS money orders for a small fee, usually around $1.10 to $1.65 depending on the amount. You do not need an account or any relationship with the post office. Bring your government-issued ID and the original money order. The teller will verify it and give you cash or deposit it into a bank account if you provide one.

The post office will only cash money orders it issued itself. If your money order is from Western Union, MoneyGram, or another issuer, the post office cannot cash it — you will need to go to the issuer's location or a bank instead. If the money order is damaged, torn, or you suspect fraud, ask the postal clerk; they can contact the issuer to verify it before cashing.

Check-cashing stores and money services

Check-cashing businesses, payday loan stores, and money transfer services like Western Union will cash money orders for a fee, typically 1 to 3 percent of the amount. A $500 money order might cost $5 to $15 to cash. These places usually cash any money order regardless of issuer, and they often have longer hours than banks — many are open evenings and weekends.

The trade-off is cost and speed. Check-cashing stores are fast — usually a few minutes — but the fee adds up if you cash money orders regularly. They also may ask more questions about where the money order came from, especially for large amounts. Bring your ID and the original money order. Some locations have daily or per-transaction limits, so ask before you hand over the money order.

Walmart and grocery stores

Walmart and many grocery store chains (Kroger, Safeway, and others) offer money order cashing at their customer service desk. Fees are typically lower than check-cashing stores — often $1 to $3 per money order — and you may be able to cash it while you shop. Not all locations offer this service, so call ahead or ask at the desk.

Walmart and grocery stores usually have limits on how much you can cash at once, often $1,000 or less. They will cash money orders from most issuers, but some locations only cash money orders they sold themselves. Bring your ID and the original money order. The process is usually quick, but if the store is busy, you may wait in line at customer service.

What to do if the money order is damaged or lost

If the money order is torn, water-damaged, or partially illegible, most places will still cash it if they can read the key information: the amount, the issuer, and the serial number. If it is severely damaged, the teller may refuse it and tell you to contact the issuer for a replacement.

If the money order is lost, contact the issuer immediately — USPS, Western Union, MoneyGram, or whoever issued it. You will need the receipt or the serial number. The issuer can tell you whether it has been cashed and, if not, can issue a replacement or refund. This process usually takes a few days to a few weeks. Do not assume the money order is gone; issuers keep records and can help you recover it.

Money orders issued by banks or credit unions

Some banks and credit unions issue their own money orders. These can usually be cashed at any bank, but the fastest route is the bank that issued it. If you have an account at that bank, cashing is free or nearly free. If you do not, you can still cash it at another bank, but they may charge a small fee or require you to open an account.

Credit union money orders work the same way. If you are not a member of the credit union that issued it, you can take it to your own bank or to a check-cashing store. The issuing credit union will cash it for free if you are a member.

Frequently Asked Questions

Can I cash a money order without an ID?

No. Every place that cashes money orders requires a government-issued ID with your current address — a driver's license, passport, or state ID card. This is a federal requirement to prevent fraud. If you do not have an ID, you cannot cash the money order yourself, but the payee (the person the money order is made out to) can cash it with their ID.

What if the money order is made out to someone else?

The person whose name is on the money order must be present with their ID to cash it. If they want to give it to you, they can sign the back and write "Pay to the order of [your name]," then you can cash it with your ID. Some places accept this; others do not. Call ahead to ask before you try.

How long does it take to cash a money order?

At a bank or Walmart, usually 5 to 15 minutes. At a check-cashing store, typically 10 to 20 minutes. At the post office, 10 to 30 minutes depending on how busy it is. If the money order is deposited into an account rather than cashed out, the bank may hold it for one business day before the funds are available.

Can I cash a money order online?

No. Money orders must be cashed in person at a physical location. You cannot cash them through a bank app, by mail, or through a website. You must bring the original money order and your ID to a bank, post office, check-cashing store, or retailer.

What if a place refuses to cash my money order?

They may refuse if the money order is damaged, if they do not recognize the issuer, or if they suspect fraud. Ask why they are refusing and what you can do. If it is a USPS money order, go to the post office. If it is Western Union, go to a Western Union location. If it is from a bank, go to that bank. You can also contact the issuer directly to verify the money order and ask for a replacement if needed.