Banks will cash money orders, but not always at the counter

Yes, most banks cash money orders. However, the process and rules depend on whether you have an account there, whether the money order is from a bank or a non-bank issuer, and what that specific bank's policy is. Some banks cash them for account holders only. Others cash them for anyone, but may charge a fee. A few banks have stopped cashing them altogether because of fraud concerns.

The safest approach is to call your bank's main number and ask directly: "Do you cash money orders for non-customers?" or "What is your fee for cashing a money order?" This takes two minutes and saves you a trip to the branch.

Key Takeaways

  • Most banks cash money orders for account holders at no charge, but policies vary widely by bank and branch.
  • Banks often charge a fee to cash money orders for people without accounts, typically between $3 and $10.
  • Check cashing services, grocery stores, and Walmart often cash money orders faster and with fewer restrictions than banks.
  • The issuer of the money order matters: bank-issued money orders are easier to cash than those from non-bank companies.
  • Always bring the original money order and a valid photo ID, and ask about fees before you hand over the money order.

Why banks sometimes refuse to cash money orders

Banks have become more cautious about cashing money orders because they are a common tool in fraud schemes. A scammer might issue a fake money order, you cash it, and weeks later the bank discovers it was counterfeit — leaving you responsible for the money. Banks protect themselves by being selective about which money orders they will touch.

A bank is more likely to cash a money order if it was issued by another bank (called a bank money order) than if it came from a grocery store, Western Union, or MoneyGram. Bank money orders are harder to counterfeit and easier for the bank to verify. Non-bank money orders carry more risk from the bank's perspective, so they may refuse them or charge a higher fee.

Some banks also limit cashing services to account holders only, as a way to encourage people to open accounts. If you do not have an account, you may be turned away entirely, even with a legitimate money order.

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

Bring the original money order and a valid photo ID. The ID must be current and show your face — a driver's license, passport, or state ID card all work. A library card or expired ID will not.

The bank will also want to see that the money order is made out to you, or that you have written permission from the person it is made out to. If the money order says "Pay to the order of John Smith" and your name is Sarah Smith, the bank will likely refuse it unless John Smith has signed the back and written "Pay to Sarah Smith."

Some banks will ask where the money order came from or what it is for. This is normal — they are checking for signs of fraud. Answer honestly. If you cannot explain where it came from, the bank may refuse to cash it.

Fees and timing at banks versus other places

Bank account holders usually cash money orders for free. Non-account holders typically pay $3 to $10, depending on the bank and the amount. Large banks like Chase and Bank of America tend to charge more than smaller regional banks or credit unions.

Cashing at a bank usually takes a few minutes if you are at the counter during business hours. However, if the bank suspects fraud or if the money order is from an unfamiliar issuer, they may put a hold on it — meaning you do not get the cash right away. Holds can last anywhere from one day to ten business days.

Check cashing services, Walmart, and grocery stores like Kroger or Safeway often cash money orders faster and with fewer questions. They may charge $2 to $5 and usually do not put holds on the money. The trade-off is that these places may not accept money orders from every issuer, so call ahead to confirm.

Money orders from banks versus non-bank issuers

A bank money order is issued by a bank and drawn on that bank's account. Western Union and MoneyGram are non-bank issuers — they are money transfer companies. Walmart and grocery stores also sell money orders, usually through a third-party processor.

Banks are most willing to cash bank money orders because they can verify them when ready through their own systems. A Western Union or MoneyGram money order requires the bank to contact that company to confirm it is real, which takes longer and carries more risk. Some banks will not cash non-bank money orders at all.

If you are buying a money order and plan to cash it at a bank, ask the seller whether it is a bank money order. If you are receiving one and the issuer is unclear, ask the person who gave it to you. Knowing the issuer before you walk into a bank saves time and frustration.

What to do if a bank refuses to cash your money order

If your bank says no, try a check cashing service. These are independent businesses that specialize in cashing checks, money orders, and other financial instruments. They are more accustomed to handling non-bank money orders and usually have fewer restrictions. Fees are typically $2 to $5, and they usually do not put holds on the money.

Walmart and grocery stores are another option. Walmart cashes money orders from most issuers for a flat fee (usually around $3). Kroger, Safeway, and other major grocery chains have customer service desks that cash money orders, often for free if you are a rewards member. Call ahead to confirm they accept the type of money order you have.

If the money order is from a specific issuer like Western Union or MoneyGram, you can also cash it directly at a Western Union or MoneyGram location. These are often inside grocery stores, pharmacies, or check cashing services. Cashing it at the issuer's own location is usually the fastest and most reliable option.

Frequently Asked Questions

Can I cash a money order at any bank, or only my own bank?

You can usually cash a money order at any bank, but banks are more likely to do it for free if you have an account there. Non-account holders may face higher fees or refusal. Credit unions are often more flexible than large banks. Call ahead to ask about the bank's policy before you go.

What happens if the money order is damaged or torn?

A torn or damaged money order may not be accepted. If the damage affects the amount, the issuer's name, or the serial number, the bank cannot verify it. Contact the issuer to request a replacement. This process can take one to two weeks, so handle money orders carefully.

Can someone else cash a money order that is made out to me?

Only if you sign the back and write their name on it. Write "Pay to the order of [their name]" and sign your name below it. They will then need to sign it as well and bring ID. Some banks will refuse this arrangement anyway, so confirm with the bank first.

Why did the bank put a hold on my money order?

Banks place holds when they cannot verify the money order when ready or when they suspect fraud. Holds typically last one to ten business days. You can ask the bank why they placed a hold and how long it will last. If the hold seems unreasonable, ask to speak to a manager.

Is it cheaper to cash a money order at a check cashing service or a bank?

Check cashing services are usually cheaper — typically $2 to $5 versus $3 to $10 at a bank. However, if you have a bank account, cashing at your own bank is free. Walmart and grocery stores are often the cheapest option at $2 to $3, or free for members.