The fastest places to buy a money order near you

You can buy a money order at a bank, credit union, grocery store, pharmacy, or post office — most are within a few miles of your home. Banks and credit unions usually charge $1 to $10 per money order. Grocery stores and pharmacies (Walmart, Target, CVS, Walgreens) typically charge $0.50 to $3. The post office charges around $1.45 to $2.45 depending on the amount. Speed varies: banks and post offices may take 10 to 15 minutes if you have an account or ID; grocery stores and pharmacies can issue one in 5 minutes.

The trade-off is convenience versus cost. A bank or credit union near your home may be slower but familiar. A Walmart or grocery store you pass anyway is cheaper and faster. A post office works if you need to mail something else at the same time. The key is knowing what you need before you go: the exact amount, the recipient's name spelled correctly, and a valid ID.

Key Takeaways

  • Banks, credit unions, grocery stores, pharmacies, and post offices all sell money orders, with post offices and grocery stores usually the cheapest.
  • You will need a valid ID and the exact amount you want to send; most places will not issue a money order for more than $1,000.
  • Grocery stores and pharmacies are typically the fastest option, taking 5 to 10 minutes; banks and post offices may take longer during busy hours.
  • If you do not have an ID or the recipient's name, you cannot buy a money order — you will need to use a different payment method.

Banks and credit unions

If you have a checking or savings account, your bank or credit union is often the most straightforward place to buy a money order. You can walk in during business hours, show your ID and debit card, tell the teller the amount and the recipient's name, and walk out with a money order in 10 to 15 minutes. Some banks let you order one online or by phone if you are an existing customer, though you will still need to pick it up in person or have it mailed to you.

The cost is usually $1 to $10 per money order, depending on your bank and the amount. Some banks waive the fee for customers who maintain a minimum balance or have direct deposit. Call your bank's customer service line or visit a branch to ask about their fee and whether you may have access to for a waiver. If you do not have an account at a bank or credit union, most will still sell you a money order, but you may pay a higher fee or need to provide additional ID.

Grocery stores and pharmacies

Walmart, Target, Kroger, Safeway, CVS, and Walgreens all sell money orders at their customer service desk or pharmacy counter. These are usually the cheapest option, costing $0.50 to $3 per money order. You do not need an account with the store — just a valid ID and cash or a debit card. The process takes 5 to 10 minutes: you tell the clerk the amount and recipient name, pay the fee plus the amount of the money order, and receive it on the spot.

The main limit is the maximum amount: most grocery stores and pharmacies cap money orders at $500 to $1,000. If you need to send more than that, you will need to buy multiple money orders or use a different method. Check the store's website or call ahead if you are unsure about their limit or hours, especially on weekends or holidays when customer service desks may have shorter hours.

The post office

The United States Postal Service sells money orders at every post office location. The cost is around $1.45 for amounts up to $500 and $2.45 for amounts from $500.01 to $1,000. You need a valid ID and cash or a debit card. The process is similar to a grocery store: you fill out a short form with the recipient's name and address, pay the fee and the amount, and receive the money order. Most transactions take 10 to 15 minutes, though wait times can be longer during peak hours (lunch, after work, Saturdays).

The post office is useful if you are already mailing something or if you live in a rural area where other options are limited. You can also buy a money order online through USPS.com and pick it up at your local post office, though this requires you to have a USPS account. If you do not have a post office nearby, the USPS locator tool on their website will show you the nearest location and hours.

Online options and alternatives

Some banks and credit unions let you order a money order online and pick it up at a branch or have it mailed to you. Western Union and MoneyGram also sell money orders at thousands of locations, including grocery stores, pharmacies, and check-cashing services. These third-party services usually charge $1 to $5 per money order and work similarly to in-person purchases: you provide the recipient's name and amount, pay the fee, and receive the money order.

If you cannot leave your home or need a money order outside normal business hours, some banks and credit unions offer mobile deposit or digital payment options that may work instead. However, these are not money orders — they are transfers or checks. If the recipient specifically needs a money order (for a security deposit, court filing, or other formal purpose), you will need to buy a physical money order in person.

What you need to bring

A valid ID is required everywhere. This can be a driver's license, state ID, passport, or military ID. Some places accept a tribal ID or consular ID if you do not have a U.S. ID. You will also need the exact amount in cash or on a debit card — most places do not accept credit cards for money orders. Finally, you need the recipient's full name spelled correctly. If you do not know how to spell it, ask the person before you go to buy the money order; the name on the money order must match the name the recipient uses to cash it.

If you do not have an ID, you cannot buy a money order. Some places may accept a combination of documents (like a utility bill plus a credit card), but this is rare and varies by location. Call ahead if you are unsure. If you do not have the recipient's name, you cannot issue the money order — you will need to use a different payment method or get the name first.

Limits and restrictions

Most money order issuers cap the amount at $1,000 per money order. If you need to send more, you will need to buy multiple money orders. Some banks allow you to buy several at once; others limit you to one per day or per visit. The post office does not have a daily limit, but you may need to fill out separate forms for each one.

Money orders are not refundable once issued, so double-check the amount and recipient name before you pay. If you make a mistake, you will need to buy a new money order and try to get a refund from the issuer — this can take weeks or may not be possible at all. Some issuers charge a fee to cancel or replace a money order. Keep your receipt until the money order is cashed, in case you need to trace it or file a claim if it is lost or stolen.

Frequently Asked Questions

Can I buy a money order without an ID?

No. A valid ID is required at every place that sells money orders. This is a federal requirement to prevent fraud and money laundering. If you do not have an ID, you cannot buy a money order. You will need to use a different payment method, such as a check, bank transfer, or cash payment in person.

What if I make a mistake on the money order?

Money orders cannot be changed once you have paid for them. If you write the wrong amount or recipient name, you will need to buy a new money order. Some issuers will refund the original if you return it unused within a certain time frame, but this varies by location and issuer. Keep your receipt and ask about their refund policy before you leave.

How long does it take for a money order to be cashed?

Once the recipient cashes or deposits the money order, it usually clears within one to three business days. The time depends on the recipient's bank and how they deposit it. If you need to know when it was cashed, keep your receipt — you can use the tracking number to check the status at the issuer's website or by calling their customer service line.

Can I buy a money order with a credit card?

Most places do not accept credit cards for money orders. You will need cash or a debit card. Some banks may allow you to use a credit card if you have an account with them, but this is uncommon. Call ahead if you only have a credit card and need to know whether a specific location will accept it.

What is the difference between a money order and a cashier's check?

A money order is issued by the post office, banks, or third-party services and is good for amounts up to $1,000. A cashier's check is issued only by banks and can be for any amount. Cashier's checks are more formal and may be required for large purchases or legal matters. Both are may provide funds, meaning the issuer backs the payment. A cashier's check usually costs $5 to $15 and takes longer to obtain.