You can buy a money order at banks, credit unions, the post office, and many grocery stores and pharmacies

The easiest place depends on where you already do business and what hours work for you. Banks and credit unions usually charge $1 to $10 per money order. The post office charges between $1.45 and $2.00 depending on the amount. Grocery stores, pharmacies, and check-cashing services often charge $1 to $3. Walmart and similar retailers typically charge around $0.70 to $1.50, making them the cheapest option if you have one nearby.

You'll need cash or a debit card, a valid ID, and to know the exact amount and the recipient's name. The process takes about five minutes. Most places issue money orders on the spot, though some post offices may take longer during busy hours.

Key Takeaways

  • Banks, credit unions, the post office, and retail stores all sell money orders, with costs ranging from under $1 to $10 depending on the location.
  • You need cash or a debit card, a valid ID, and the recipient's name and exact amount before you go.
  • Walmart and other discount retailers are usually the cheapest; banks are usually the most expensive.
  • Most money orders are issued immediately, though post offices can have longer waits during peak times.
  • Call ahead if you need a money order for an unusually large amount, since some places have limits.

Banks and credit unions

Your own bank or credit union is often the most convenient option if you already have an account there. Most banks issue money orders during regular business hours, and tellers can process them quickly. Fees vary widely — some banks charge as little as $1 per money order, while others charge $5 to $10, especially if you don't maintain a minimum balance.

Call your branch before you go to confirm they stock money orders and to ask about their fee. Some smaller branches or credit unions may need to order them in advance, which can take a day or two. If you're not a customer, many banks will still sell you a money order but may charge a higher fee or require you to open an account.

The post office

The United States Postal Service sells money orders at every post office location. The fee is $1.45 for amounts up to $500 and $2.00 for amounts from $500.01 to $1,000. You can buy up to $1,000 per money order, and there's no limit on how many you can purchase in a single visit.

Post offices are open six days a week (closed Sundays and federal holidays), and many locations have extended hours. During lunch hours and after work, lines can be long. If you're in a hurry, go early in the morning or mid-afternoon on a weekday. You can also check the USPS website to find your nearest location and confirm hours.

Grocery stores and pharmacies

Most major grocery chains — including Kroger, Safeway, Albertsons, and Publix — sell money orders at the customer service desk. Walgreens and CVS pharmacies also offer them. Fees typically run $1 to $3, and they're usually faster than the post office because lines are shorter. Many of these locations are open seven days a week and have evening hours.

The limit per money order is usually $500 to $1,000, depending on the store. Call ahead if you need a large amount or if you're buying multiple money orders. Some locations may refuse to sell you a money order if you don't have a valid ID or if you're paying with a check.

Walmart and discount retailers

Walmart, Target, and similar stores sell money orders at the customer service counter for around $0.70 to $1.50 per order. This makes them the cheapest option in most cases. They're also widely available — Walmart has locations in nearly every town — and many are open late or 24 hours.

Limits are usually $500 to $1,000 per money order. You can pay with cash or a debit card. If you're buying a money order for the first time or haven't been to that location before, bring your ID. Some stores may ask for your phone number or address for their records.

Check-cashing services and payday lenders

Check-cashing stores and payday lenders almost always sell money orders, and many are open on weekends and evenings. Fees are typically $2 to $5 per order. These places are useful if you need a money order outside normal business hours or if you don't have a bank account.

Be aware that fees at these locations are often higher than at banks or retailers. Limits vary by location, so ask before you go. If you use these services regularly, the cost adds up — buying money orders at Walmart or the post office will save you money over time.

What to bring and what to expect

Bring a valid government-issued ID (driver's license, passport, or state ID card). Have cash or a debit card ready — most places don't accept credit cards for money orders. Know the exact amount you need and the recipient's full name as it appears on their account or mail.

The teller or cashier will fill in the recipient's name and the amount. You'll sign the money order, and they'll give you a receipt. Keep the receipt until the money order is cashed — it's your proof of purchase and shows the serial number. The whole process usually takes three to five minutes.

Limits and restrictions

Most money orders have a maximum of $500 to $1,000 per order. If you need to send more than that, you can buy multiple money orders. The post office allows up to $1,000 per order with no limit on how many you can buy at once. Banks and retailers may have daily limits on the total amount you can purchase.

Some places restrict how you can pay — for example, you may not be able to use a credit card or a personal check. If you're sending a large amount or buying many money orders at once, call ahead to confirm the location can handle it and to ask about any reporting requirements.

Frequently Asked Questions

Can I buy a money order with a credit card?

Most places do not accept credit cards for money orders because they're considered cash equivalents. You can usually pay with cash or a debit card. Some banks may allow credit card purchases if you have an account with them, so ask your bank directly.

What if I need a money order after hours?

Walmart, Target, and other 24-hour retailers sell money orders around the clock. Check-cashing services and payday lenders are also often open evenings and weekends. Call ahead to confirm the location near you has extended hours.

Can I buy a money order for someone else?

Yes. You provide the recipient's name, and the money order is made out to them. You sign as the purchaser. The recipient then signs the back when they cash it. Make sure you have the recipient's name spelled correctly.

What happens if I lose a money order?

Contact the place where you bought it with your receipt and the serial number. They can put a stop on it and issue a replacement, though this usually takes 30 to 60 days. Keep your receipt in a safe place until the money order is cashed.

Is there a limit to how many money orders I can buy?

There's no federal limit, but individual locations may have daily purchase limits. The post office has no stated limit. Banks, retailers, and other sellers may restrict the total amount you can buy in one day. Call ahead if you need to buy several money orders at once.