Yes, you can cash a money order at your bank, but the process and fees depend on whether you have an account there

Most banks will cash a money order if you have a checking or savings account with them. You walk in with the money order, hand it to a teller, and they deposit it into your account or give you cash on the spot. If you don't have an account, many banks will still cash it, but they may charge a fee—usually $5 to $15—and some will refuse entirely. A few banks cash money orders only for account holders.

The money order must be made out to you (or to you and someone else), and you'll need to sign the back. If it's made out to someone else, they have to be present to sign it, or they need to sign it and write "Pay to the order of [your name]" on the back. The teller will check that the money order is legitimate and that the amount matches what's written on it.

Timing matters: if the money order is very old (more than a year or two), some banks may refuse it or hold it for verification. Money orders don't expire the way checks do, but banks treat very old ones with suspicion.

Key Takeaways

  • Account holders at most banks can cash money orders for free at any branch during business hours.
  • Non-account holders can usually cash money orders at a bank, but expect a fee of $5 to $15 and possible refusal.
  • The money order must be signed on the back by the person it's made out to, and that person must be present or have already endorsed it to you.
  • Money orders older than one or two years may be held for verification or rejected, even though they don't technically expire.
  • If your bank refuses, credit unions, check-cashing stores, and the issuer of the money order are backup options.

What you need to bring and what the teller will check

Bring the money order itself and a valid photo ID—a driver's license, passport, or state ID card. The teller will verify that the amount printed on the money order matches the amount written in words, that your name is on it, and that it's been signed on the back. They'll also check the issuer's name (usually Western Union, MoneyGram, or your bank's own money order) and may run it through a system to confirm it hasn't already been cashed.

If the money order is made out to two people (you and someone else), both of you must be present with ID, or the other person must have already signed it and written "Pay to the order of [your name]" on the back. If it's made out to a business or organization and you're trying to cash it on their behalf, bring documentation showing you're authorized to do so—a letter from the business, a power of attorney, or a board resolution.

Fees and timing for non-account holders

If you don't have an account at the bank, call ahead before you go. Ask whether they cash money orders for non-customers and what the fee is. Some banks charge a flat fee ($5 to $15), others charge a percentage of the amount, and some refuse non-customers entirely. A few large banks (like Bank of America or Wells Fargo) have policies that vary by branch, so the answer you get at one location may not apply to another.

Cashing usually takes a few minutes if the money order is recent and legitimate. If the money order is old, the amount is very large, or the teller has any doubt about it, they may put a hold on it while they verify it with the issuer. This can take a few business days. During that time, the money order is frozen and you can't cash it elsewhere.

What happens if the money order is damaged or partially illegible

A torn, water-damaged, or faded money order may still be cashed, but the teller has to be able to read the key information: the amount, the issuer's name, the serial number, and the payee (your name). If any of these are missing or unclear, the teller will likely refuse it or put it on hold for the issuer to verify.

If the money order is damaged but you know it's legitimate, contact the issuer directly (Western Union, MoneyGram, or your bank) and ask about a replacement. They can issue a new money order if you provide the serial number and proof of purchase. This process usually takes a few days to a week.

Cashing a money order at a bank branch versus other locations

Banks are usually the fastest and cheapest option if you have an account. Credit unions often cash money orders for members at no charge and sometimes for non-members for a small fee. Check-cashing stores and grocery stores with check-cashing services will cash money orders, but their fees are often higher—$3 to $10 or more—and they may ask more questions about where the money order came from.

You can also cash a money order at the issuer's location. Western Union and MoneyGram have thousands of agent locations (grocery stores, pharmacies, convenience stores) where you can cash a money order for a fee. The fee is usually $1 to $3, which is lower than a bank's non-customer fee, but you have to find a location that's open and has cash on hand.

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

If your bank refuses, ask why. Common reasons are: the money order is too old, the amount is unusually large, the signature doesn't match the ID, or the money order appears to be counterfeit or already cashed. If the reason is age or a signature mismatch, you can contact the issuer and ask for a replacement or verification.

If the bank suspects fraud or counterfeiting, they may keep the money order and report it. Don't argue or insist—this is a security measure. Instead, contact the issuer directly with your receipt or proof of purchase. If the money order is legitimate, the issuer will issue a replacement.

If you simply can't cash it at a bank, try a credit union, a check-cashing store, or the issuer's agent locations. Each has different standards and fees, so you may have better luck elsewhere.

Money orders from online banks and smaller issuers

If the money order was issued by an online bank or a smaller financial institution, some brick-and-mortar banks may be reluctant to cash it because they're less familiar with the issuer. They may put it on hold for verification, which can take several business days. In this case, it's faster to cash it at the issuer's own location or to deposit it into your account at your own bank and let them handle the verification.

If you have an account at the bank that issued the money order, you can deposit it directly into your account without going to a teller. Use a mobile deposit app (if available) or an ATM, or hand it to a teller. Deposits made at an ATM or through mobile deposit usually post within one business day.

Frequently Asked Questions

Do I need an account to cash a money order at a bank?

No, but most banks charge a fee of $5 to $15 for non-account holders. Some banks refuse non-customers entirely. Call your bank first to ask their policy. Account holders usually cash money orders for free.

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

The person it's made out to must sign the back and write "Pay to the order of [your name]." That person must be present with ID, or they must have already signed and endorsed it to you before you take it to the bank. The bank will ask to see both of your IDs.

How long does it take to cash a money order?

If the money order is recent and legitimate, cashing takes a few minutes. If it's old, the amount is large, or the teller has questions, they may put it on hold for verification, which can take a few business days. Ask the teller for an estimate before you leave.

Can I deposit a money order instead of cashing it?

Yes. If you have an account at the bank, you can deposit the money order into your account instead of cashing it. This is often faster than cashing, especially if you use mobile deposit or an ATM. The money usually posts within one business day.

What if the money order is very old?

Money orders don't expire, but banks treat very old ones (more than a year or two) with suspicion and may refuse to cash them or put them on hold for verification. Contact the issuer to confirm the money order is still valid, or ask for a replacement if the issuer has a policy against cashing old money orders.