Yes, most banks sell money orders, but not all branches carry them and some charge more than alternatives
You can buy a money order at a bank, but you need to check with your specific bank first—not every branch stocks them, and some banks have stopped offering them altogether. If your bank does sell money orders, you'll go to a teller, provide the amount and recipient information, and pay a fee that typically ranges from $5 to $10 depending on the bank and the order size. The teller will print the money order on the spot, and you walk out with a document you can mail or deliver to pay someone without sending cash or a personal check.
The catch is that banks are often the most expensive place to buy a money order. Credit unions, the U.S. Postal Service, and grocery stores or pharmacies with money order services usually charge $1 to $3 per order. If you need a money order regularly or want to save money on a single purchase, comparing your options before you go to the bank makes sense.
Key Takeaways
- Call your bank ahead of time to confirm they sell money orders and what their fee is, because many branches no longer offer them.
- Bank money order fees typically run $5 to $10, making them more expensive than the post office ($1.45 to $2.00) or grocery stores ($1 to $3).
- You'll need cash or a debit card to pay for a money order; most places do not accept credit cards for this transaction.
- Money orders take effect immediately once purchased, so you can mail or hand-deliver them the same day.
- If your bank does not offer money orders, the post office and major grocery chains like Walmart and Kroger are your fastest alternatives.
What you need to bring to a bank to buy a money order
Bring cash or a debit card and the recipient's name and address. You do not need to be a customer of the bank—many banks will sell a money order to anyone who walks in with payment. The teller will ask you to write down or tell them the payee name (the person or business receiving the money), the amount, and sometimes your name and address as the sender, though this last part varies by bank.
You do not need an ID to buy a money order at most banks, though some may ask for one. If you're buying a large money order—typically over $1,000—the bank may require ID and may ask questions about the purpose of the transaction, as banks are required to report large cash transactions to the federal government.
How bank money order fees compare to other sources
| Source | Typical Fee | Speed | Hours |
|---|---|---|---|
| Bank | $5–$10 | Same day | Banking hours only |
| U.S. Postal Service | $1.45–$2.00 | Same day | Post office hours |
| Walmart or Kroger | $1–$3 | Same day | Store hours (often 24/7) |
| Credit union | $1–$5 | Same day | Credit union hours |
If you need a money order outside of banking hours, a grocery store or pharmacy is your only option. Walmart, Target, Kroger, and CVS all sell money orders at customer service desks, and many locations are open early and close late. The post office is cheaper than a bank but only operates during standard business hours, typically 9 a.m. to 5 p.m. on weekdays and limited Saturday hours.
The choice between a bank and another source often comes down to convenience and cost. If your bank is open when you need the money order and you don't mind paying more, the bank is straightforward. If you want to save money or need a money order outside business hours, the post office or a grocery store is the better choice.
Why some banks no longer sell money orders
Larger banks have been phasing out money orders for years because they are low-margin products—the bank makes very little profit on them—and they require staff time at the teller window. Banks would rather you use a wire transfer, ACH transfer, or bill pay service, all of which move money electronically and cost the bank less to process. Regional and community banks are more likely to still offer money orders than national chains.
If your bank has stopped selling money orders, you'll need to go elsewhere. Call ahead to confirm availability before you make a trip, because even banks that still offer them may run out of stock or have a teller who is unfamiliar with the process. Some banks may require you to order a money order in advance rather than buying one on the spot.
Money order limits and when you'll need more than one
Most banks cap money orders at $1,000 per order, though some allow up to $2,500. If you need to send more than that, you'll have to buy multiple money orders. The post office caps orders at $1,000. Grocery stores and pharmacies often have lower limits—$500 to $1,000 is common—so check before you go if you need a large amount.
If you're sending a large payment, a wire transfer or ACH transfer through your bank account is usually faster and cheaper than buying multiple money orders. Wire transfers cost $15 to $30 but move money in hours. ACH transfers are often free and take one to three business days. Money orders, by contrast, have to be physically mailed or delivered and can take a week or more to clear once the recipient deposits them.
How to fill out a money order at the bank
The bank teller will usually fill out most of the money order for you. You'll need to provide the payee name (the person or business getting the money) and the amount. Some banks will ask you to sign the money order in front of the teller; others will leave the signature line blank for you to sign later. Do not sign a blank money order—if it is lost or stolen, anyone can cash it.
Write the payee name clearly and spell it correctly. If the name is wrong, the recipient may not be able to cash it, and you'll have to contact the bank to cancel and reissue. Keep your receipt, which shows the money order number. If the money order is lost in the mail, you'll need that number to file a claim with the bank and request a replacement.
What to do if your bank does not sell money orders
Call the post office first—it is usually the cheapest option and most post offices are within a few miles of where you live. The USPS website has a post office locator tool. If the post office is not convenient, check Walmart, Target, Kroger, or your local grocery store's customer service desk. CVS and Walgreens also sell money orders at many locations, though not all.
If you have a credit union account, call and ask whether they sell money orders. Credit unions often charge less than banks and may waive the fee for members. If none of these options work, a wire transfer or ACH transfer from your bank account is the next best choice, even if it costs a bit more than a money order.
Frequently Asked Questions
Can I buy a money order with a credit card at a bank?
Most banks do not accept credit cards for money orders. You'll need to pay with cash or a debit card. Some grocery stores that sell money orders also do not accept credit cards, so bring cash or a debit card to be safe.
How long does it take for a money order to clear once someone deposits it?
Money orders typically clear within one to three business days after the recipient deposits them, depending on the bank. This is slower than a wire transfer (which clears in hours) but faster than a personal check (which can take five to seven business days).
What happens if I lose a money order I bought at the bank?
Contact the bank immediately with your receipt and the money order number. The bank can cancel the original and issue a replacement, though there may be a fee ($10 to $25). This is why keeping your receipt is important.
Can I get a refund if I change my mind about a money order?
Yes, most banks will refund a money order if you have not mailed it or given it to anyone. Bring the original money order and your receipt to the bank. There may be a small cancellation fee, typically $1 to $5.
Is a money order safer than sending cash in the mail?
Yes. A money order is traceable and can be replaced if lost. Cash cannot. The recipient also cannot cash a money order without the correct name, so there is less risk of theft. However, money orders are slower than electronic transfers and cost more than ACH payments.