Yes, but your bank may charge a fee and require you to have an account there

Most banks will cash a money order if you have a checking or savings account with them. The teller will verify the money order is legitimate, check that it's been signed and filled out correctly, and deposit or cash it for you. The process usually takes a few minutes at the counter.

If you don't have an account at that bank, they may still cash it, but many will refuse or charge you a fee—sometimes $5 to $15. Some banks have policies against cashing money orders for non-customers at all. Call ahead before you go in.

The money order itself may also have restrictions printed on it. Some are marked "payable to order of" a specific person, meaning only that person can cash it. Others say "non-negotiable" or "void after 90 days"—check the front and back before you head to the bank.

Key Takeaways

  • Bank customers can usually cash money orders at their own bank with no fee, though some banks charge $1 to $3 even for account holders.
  • Non-customers often face fees of $5 to $15, and many banks refuse to cash money orders for people without accounts.
  • The money order must be signed on the back by the person it's made out to, and the amount must match what's written in words and numbers.
  • If the money order is old (more than a year or two), the issuer may have stopped honoring it, and you'll need to contact them for a replacement.
  • If you don't have a bank account, the post office, check-cashing stores, and Walmart are faster and more reliable options than trying banks.

What happens when you bring a money order to the bank

The teller will ask to see your ID and the money order. They'll check that the payee name (the person it's made out to) matches your ID, that the amount is filled in on both the number line and the written-out line, and that you've signed the back. If any of these don't match, they won't cash it.

They'll also run it through a scanner to verify the money order number is real and hasn't already been cashed. This is the bank's protection against fraud. If the system flags it as suspicious or already processed, the teller will tell you and you'll need to contact the money order issuer—usually the post office, Western Union, or MoneyGram.

Once everything checks out, they'll either hand you cash or deposit it into your account, depending on what you ask for. If you're depositing it, the funds may take one to two business days to clear, though many banks make the first $200 or $300 available the same day.

When banks refuse to cash money orders

Some banks have stopped cashing money orders altogether, especially for non-customers. This is their choice—banks aren't required to cash them. If you call ahead and they say no, don't argue; move to a different option.

Banks may also refuse if the money order is very old. Most money order issuers honor them for one to three years, but after that they may not. If yours is older than two years, contact the issuer first to confirm it's still valid before going to the bank.

If the money order is damaged, torn, or has been altered in any way, the bank will refuse it. So will they if the signature on the back doesn't match the ID you're showing them, or if the payee name is blank or illegible.

Fees your bank might charge

Account holders at most major banks (Chase, Bank of America, Wells Fargo, Citibank) pay nothing to cash a money order. A few charge $1 to $3 even for customers, so check your bank's fee schedule or ask the teller before they process it.

Non-customers face higher fees. Regional banks and credit unions often charge $5 to $15 to cash a money order for someone without an account. Some waive the fee if you open an account on the spot, but that's not worth it for a one-time transaction.

The fee is separate from any fee the money order issuer charged you when you bought it. You've already paid to create the money order; this is the bank's fee for cashing it.

Faster alternatives if your bank won't help

The U.S. Postal Service will cash money orders they issued, and you don't need to be a customer. Bring your ID and the money order to any post office. They'll verify it and hand you cash on the spot, with no fee. This is the fastest option if your money order came from USPS.

Check-cashing stores will cash money orders for a fee, usually 1 to 3 percent of the amount. On a $500 money order, that's $5 to $15. They're open longer than banks and don't require an account, but the fee is higher than a bank customer would pay.

Walmart cashes money orders at customer service for a flat fee of around $3, though the exact amount varies by location. Call ahead to confirm, but this is often cheaper than a check-cashing store and faster than a bank.

Western Union and MoneyGram will cash their own money orders at their agent locations (often grocery stores, pharmacies, or convenience stores). Fees vary by location and amount, but are typically $2 to $5. You'll need your ID.

What to do if the money order is lost or damaged

If your money order is damaged but still readable, most banks will still cash it. If it's torn, water-damaged, or the numbers are smudged, the bank may refuse it. In that case, contact the issuer with your receipt or the money order number and ask for a replacement.

If the money order is lost, you'll need the receipt you got when you bought it. The issuer can look up the money order number and issue a replacement, but this takes time—usually 30 to 60 days. You'll have to prove you paid for it and didn't cash it already.

Keep your receipt until the money order is cashed. It's the only proof you have if something goes wrong.

How to fill out a money order so the bank will cash it

Write the recipient's name (or your own name if you're cashing it yourself) on the "Pay to the order of" line. Use a pen, not pencil. Leave no blank spaces—if the line is longer than the name, draw a line through the rest.

Fill in the amount in both places: the box with numbers and the line with words. They must match exactly. If they don't, the bank will refuse it.

Sign the back of the money order in the "Signature" box. This is required. Don't sign the front. If you're depositing it into your account, some banks also want you to write your account number on the back, but ask the teller first.

Write your ID number (driver's license or passport) on the back as well. This helps the bank verify you're the person the money order is made out to.

Frequently Asked Questions

Can I cash a money order made out to someone else?

No. The person whose name is on the "Pay to the order of" line must be the one cashing it, and they must show an ID that matches. If someone gives you a money order made out to them and asks you to cash it, they need to go to the bank themselves or sign the back and write "Pay to the order of [your name]" above their signature—though many banks won't accept this.

What if my bank says the money order is fake?

Contact the issuer immediately with the money order number. If it's a USPS money order, go to the post office. If it's Western Union or MoneyGram, call their fraud line. They can tell you whether it's real and what to do next. If it's fake, report it to the police and the issuer.

How long does it take for a cashed money order to show up in my account?

If you deposit it, most banks make the funds available within one to two business days. Some make the first $200 available the same day. If you ask for cash, you get it immediately. Ask the teller what your bank's policy is.

Can I cash a money order at an ATM?

No. ATMs only accept deposits of checks and cash, not money orders. You have to go to a teller inside the bank, or use one of the alternatives like the post office or a check-cashing store.

What if the money order has been sitting in my drawer for two years?

Contact the issuer with the money order number to confirm it's still valid. Most honor them for one to three years, but policies vary. If it's expired, the issuer can issue a replacement, though you may need your receipt as proof of purchase.