Yes, most banks issue money orders, but not all locations do and fees vary widely

Your bank can sell you a money order if it offers them—but this is not may provide. Large national banks like Bank of America, Wells Fargo, and Chase sell money orders at most branches, though some smaller locations may not stock them. Credit unions vary: some issue them freely to members, others charge a fee or do not offer them at all. The fastest way to know is to call your branch directly and ask whether they have money orders in stock that day, because even banks that sell them sometimes run out.

When a bank does issue a money order, you pay the face amount plus a fee. That fee typically ranges from $5 to $10 for a single money order, depending on the bank and the amount. Some banks charge less for smaller amounts (under $500) and more for larger ones. A few banks waive the fee for customers with certain account types—usually checking accounts with direct deposit or minimum balances—so it is worth asking before you pay.

The transaction is immediate. You hand over cash or a debit card, the teller fills out the money order with the payee name and amount, and you walk out with it. No waiting, no approval process. The money order itself becomes your proof of payment once it is cashed or deposited.

Key Takeaways

  • Not every bank branch stocks money orders, so call ahead to confirm your location has them before you go.
  • Bank money order fees usually run $5 to $10 per order, though some account holders may have the fee waived.
  • You can pay with cash or a debit card, and you receive the money order immediately—no waiting period.
  • If your bank does not offer money orders, the post office, Walmart, and Western Union are common alternatives with similar or lower fees.

What happens when you buy a money order at a bank

You arrive at the teller window with the amount you want to send and the name of the person or business receiving it. The teller asks for the payee name (the recipient), the amount, and your identification. You pay the full amount plus the fee—usually in cash or from your debit card. The teller then prints or writes the money order, records it in the bank's system, and gives you the original. You keep a stub or receipt for your records.

The money order itself is a paper document with a serial number, the bank's name, the payee, the amount, and a security feature (usually a watermark or special ink). This makes it harder to forge than a personal check. Once you hand it to the recipient, they can cash it at their bank, deposit it into their account, or take it to a check-cashing service. The recipient does not need an account at your bank.

The bank keeps a record of the transaction, including the serial number and the date. If the money order is lost or stolen before it is cashed, you can contact the bank with the serial number and request a replacement or refund—though this process can take weeks and requires proof you did not receive the funds.

Bank money orders versus post office and retail alternatives

The post office issues money orders for a flat fee of $1.45 (for amounts up to $500) or $1.95 (for amounts $500 to $1,000), which is usually lower than a bank fee. Walmart charges $0.70 to $1.00 per money order, making it the cheapest option for most people. Western Union charges $1 to $5 depending on the amount and location. All three are faster than a bank if you do not have an account or do not want to visit a branch.

The trade-off is security and record-keeping. Banks keep detailed records tied to your account and identification, which can matter if you need proof of payment later. The post office and Walmart keep records too, but they are less integrated with your personal banking history. If you are sending money to pay a bill or settle a debt, a bank money order creates a clearer paper trail.

If speed is your priority and you do not need the bank's record-keeping, the post office or Walmart are usually faster because they have more locations and shorter lines. If you value the security and documentation of a bank transaction, the higher fee may be worth it.

When banks refuse to issue a money order

Some banks decline to sell money orders to customers who do not have an account with them. Others will sell to non-customers but charge a higher fee. A few banks have stopped offering money orders altogether as they shift customers toward digital payments and wire transfers.

If your bank refuses, ask whether they can order one for you—some will special-order a money order from their processing center, though this takes a few business days. If that is not an option, the post office is your most reliable backup because it serves the public regardless of banking status and has consistent pricing nationwide.

Banks may also refuse if the amount exceeds their limit. Most banks cap money orders at $1,000, though some allow up to $5,000. If you need to send more than the limit, you can buy multiple money orders or use a wire transfer instead.

How to replace a lost or stolen money order

If your money order is lost or stolen before the recipient cashes it, contact your bank immediately with the serial number (found on your receipt or stub). The bank will place a stop on that money order, similar to stopping payment on a check. You can then request a replacement or a refund of the amount you paid.

The process typically takes 30 to 90 days because the bank must verify that the original money order was never cashed. During this time, the money order is frozen and cannot be deposited or cashed by anyone. Once the bank confirms it was not used, they issue a replacement money order or refund the funds to your account.

To speed this up, keep your receipt or stub in a safe place. The serial number on that receipt is what the bank needs to track the money order. Without it, the process takes longer because the bank has to search their records by date and amount.

Money order limits and what to do if you need to send more

Most banks limit a single money order to $1,000. If you need to send $2,500, you would buy three money orders: two for $1,000 and one for $500. Each has its own serial number and fee, so the total cost includes three fees instead of one.

If you are sending a large amount and want to avoid multiple fees, a wire transfer is usually cheaper. A domestic wire transfer typically costs $15 to $30 and can move thousands of dollars in one transaction. The downside is that wire transfers are irreversible—if you send money to the wrong account, recovery is difficult. A money order, by contrast, can be stopped if it has not been cashed yet.

For amounts under $1,000, a money order is usually the cheaper and safer choice. For amounts over $1,000, compare the cost of multiple money orders against a wire transfer and choose based on your needs and the recipient's preferences.

Frequently Asked Questions

Can I buy a money order without a bank account?

Yes. Most banks will sell to non-customers, though some charge a higher fee or require identification. The post office, Walmart, and Western Union all sell money orders to anyone with cash and a valid ID, regardless of banking status. The post office is usually the cheapest option for non-account holders.

What if the money order is never cashed?

The money order remains valid indefinitely—there is no expiration date. If the recipient never cashes it, the funds stay in limbo. You cannot reclaim the money unless you report it lost or stolen and go through the replacement process. To avoid this, confirm the recipient received and cashed the money order before you consider the transaction complete.

Can I cancel a money order after I buy it?

Yes, but only if it has not been cashed. Contact your bank with the serial number and request cancellation. The bank will place a stop on it and refund your money after verifying it was not used—a process that typically takes 30 to 90 days. You will lose the fee you paid.

Do I need to show ID to buy a money order at a bank?

Yes. Banks require a valid photo ID (driver's license, passport, or state ID) to issue a money order. This is part of anti-money-laundering regulations. The post office and Walmart also require ID for money orders over certain amounts.

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

A cashier's check is drawn on the bank's own account and is considered more secure than a money order, which is a separate financial instrument. Cashier's checks are typically used for larger amounts and cost more ($10 to $15). Money orders are better for smaller amounts and everyday payments. Both are safer than personal checks because the funds are may provide.