Where you can cash a money order
You can cash a money order at a bank, credit union, grocery store, pharmacy, or check-cashing business. Banks and credit unions are the most reliable option if you have an account there — they will cash it without charging you a fee. If you do not have a bank account, a check-cashing business or grocery store will cash it, though they typically charge a fee of $1 to $5 depending on the amount.
The fastest places are usually grocery stores and pharmacies, which often have money order cashing available during regular business hours. Some 24-hour locations will cash them around the clock. Banks and credit unions may require you to be a customer and may take longer if you need to go inside during busy times.
Before you go anywhere, check the back of the money order. Some are issued by specific companies — like Western Union or MoneyGram — and can only be cashed at their authorized locations. The issuer's name will be printed on the front or back of the money order.
Key Takeaways
- Banks and credit unions cash money orders for free if you have an account, but check-cashing businesses and stores charge a fee of $1 to $5.
- You need to sign the back of the money order in the payee line before cashing it, and bring a photo ID.
- The person or business that issued the money order must be printed on the front — if it says Western Union or MoneyGram, you must go to one of their locations.
- If the money order is damaged, torn, or has the wrong name on it, the cashing location may refuse it or require you to contact the issuer for a replacement.
What you need to bring
Bring the money order itself and a valid photo ID. Most places will accept a driver's license, passport, state ID card, or military ID. Some check-cashing businesses may ask for a second form of ID or a utility bill showing your current address, especially if the amount is large.
If someone else gave you the money order and your name is not on it, you will need to ask them to sign the back first. The person whose name appears on the money order (the payee) must sign it before anyone else can cash it. If the money order is blank in the payee line, you can write your own name there before signing.
If you are cashing it at a bank or credit union, have your account number ready. Some locations may ask for it to speed up the process, though it is not always required.
The steps to cash a money order
First, check the front of the money order to make sure your name is correct in the payee line. If it is blank, write your name there. Then flip it over and sign the back in the endorsement section — this is usually labeled "Payee Signature" or "Endorse Here." Sign your name exactly as it appears on your ID.
Take the signed money order and your photo ID to the location where you want to cash it. Hand both to the cashier or teller. They will verify that the money order is legitimate by checking the issuer's information and the serial number. This usually takes a few minutes.
Once they confirm it is valid, they will ask how you want the cash — in large bills, small bills, or a mix. Tell them your preference. They will count out the money, have you verify the amount, and give it to you. Some locations may offer to deposit it into your account instead of giving you cash, which is faster and safer if you have an account there.
What happens if the money order is damaged or has the wrong name
If the money order is torn, stained, or damaged in a way that makes it hard to read, most cashing locations will refuse it. The issuer needs to be able to read the serial number and amount clearly. In this case, contact the company that issued the money order — the name is printed on the front — and ask for a replacement. You will need to provide proof of purchase or the original receipt.
If the payee name is wrong — for example, it says "John Smith" but your name is "Jon Smith" — the location may still refuse to cash it. Some will accept a minor spelling variation if your ID matches closely enough, but others will not take the risk. If the name is significantly different, you will need to contact the issuer and request a corrected money order or a refund.
If you lost the money order or it was stolen, contact the issuer immediately with your receipt or proof of purchase. They can put a stop on it and issue a replacement, though this process usually takes several days to a few weeks.
Fees and what to expect at different locations
Banks and credit unions charge no fee if you have an account. If you do not have an account, some banks will still cash it for free, but others may charge $5 to $10. Call ahead to ask.
Check-cashing businesses typically charge $1 to $5 depending on the amount of the money order. A $500 money order might cost $3 to $5 to cash, while a smaller one might cost $1 to $2. Ask the cashier what the fee is before you hand over the money order.
Grocery stores and pharmacies usually charge $1 to $3 if they cash money orders at all. Walmart and Target, for example, cash them for a flat fee of around $3. Some grocery stores do it for free as a service to customers. Call ahead if you want to know the exact fee.
Why a location might refuse to cash your money order
A money order can be refused for several reasons. The most common is that the issuer's name does not match the location. If it is a Western Union money order and you go to a grocery store, they cannot cash it — you must go to a Western Union location or an authorized agent.
The money order may also be refused if it is expired. Most money orders do not expire, but some issued by banks or credit unions may have an expiration date printed on them. Check the front and back for any date listed as "valid until" or "expires."
If the serial number has been altered, if the amount is unclear, or if the money order appears to be counterfeit, the location will refuse it. This is a safety measure to protect against fraud. If you believe the money order is legitimate but the location refuses it, contact the issuer directly.
Frequently Asked Questions
Can I cash a money order without a bank account?
Yes. Check-cashing businesses, grocery stores, pharmacies, and Walmart all cash money orders without requiring an account. You will pay a small fee, usually $1 to $5. Bring a photo ID and make sure you sign the back of the money order before you go.
What if I do not have a photo ID?
Most locations will not cash a money order without a photo ID. If you do not have one, you can apply for a state ID card at your local DMV or equivalent agency. Some check-cashing businesses may accept other forms of ID like a passport card or military ID if you explain your situation, but this varies by location.
How long does it take to cash a money order?
At a grocery store or pharmacy, it usually takes 5 to 10 minutes. At a bank or credit union, it may take 10 to 15 minutes if you are a customer, or longer if you are not and they need to verify your identity more thoroughly. Check-cashing businesses typically take 5 to 10 minutes as well.
Can someone else cash my money order if my name is on it?
No. The person whose name is on the payee line must sign the back before anyone else can cash it. If you want someone else to cash it for you, you will need to sign the back first, and they will need to bring your signed money order and their own photo ID to the cashing location.
What if the money order amount is very large?
Most locations will cash large money orders, but some may ask additional questions or require extra verification. If the amount is over $1,000, the location may report it to the IRS as required by law. This is normal and does not mean anything is wrong — it is a standard reporting requirement. Bring your ID and be prepared to answer questions about where the money order came from.