Post Office Money Order Fees and Limits

A money order from the United States Postal Service (USPS) costs between $1.45 and $6.45, depending on the amount. The fee is separate from the face value — if you want to send $500, you pay the $500 plus the fee. USPS charges different rates based on whether the money order is $1 to $500 or $500.01 to $1,000.

As of 2024, a money order up to $500 costs $1.45. A money order from $500.01 to $1,000 costs $6.45. These are the rates at most Post Offices nationwide, though a small number of locations in remote areas may charge slightly more. You cannot buy a single USPS money order for more than $1,000.

The fee you pay covers the money order itself, the receipt you get, and the ability to track it if it goes missing. Unlike a personal check, the Post Office guarantees the funds — the recipient knows the money is real because USPS has already taken it from you.

Key Takeaways

  • USPS money orders cost $1.45 for amounts up to $500 and $6.45 for amounts from $500.01 to $1,000.
  • The fee is charged on top of the amount you are sending, so a $100 money order costs you $101.45 total.
  • You can buy multiple money orders in one transaction if you need to send more than $1,000.
  • The Post Office will not refund the fee if you change your mind, though you can get your money back if you return the undelivered money order.

What You Pay at the Counter

When you walk up to the Post Office counter with cash or a debit card, you tell the clerk the amount of the money order you want. The clerk calculates the fee and tells you the total. You hand over the money, and the clerk fills out the money order with the amount, your name as sender, and the recipient's name.

You receive a receipt that shows the money order number, the amount, the fee paid, and the date. Keep this receipt. If the money order never arrives or gets lost in the mail, you will need the number to file a claim and get your money back. The receipt is also proof you sent it, which matters if there is ever a dispute about whether payment was made.

Some Post Offices charge a small fee to replace a lost receipt, usually $1 to $2, but you can still track the money order without it if you remember the number. Write down or photograph the money order number before you leave the counter.

Limits on How Much You Can Send

A single USPS money order has a maximum of $1,000. If you need to send $2,500, you buy two money orders: one for $1,000 and one for $1,500. You pay the fee for each one separately. This is common for large payments like security deposits or down payments on vehicles.

There is no daily or monthly limit on how many money orders you can buy. A Post Office will not refuse to sell you ten money orders in one day if that is what you need. However, if you are sending money to pay a bill or settle a debt, the recipient may have their own rules about how many separate payments they will accept.

When the Fee Matters More Than You Think

If you are sending a small amount, the fee becomes a larger percentage of what you are sending. A $5 money order costs $1.45 in fees — that is 29% of the amount. A $500 money order costs $1.45 in fees — that is 0.3% of the amount. For small payments, a money order is expensive compared to other methods.

For amounts under $50, consider whether the recipient will take a check, a bank transfer, or a payment app instead. Those options are often free or much cheaper. A money order makes sense when the recipient specifically asks for one, when you do not have a bank account, or when you need the may provide that the money is real and cannot bounce.

Refunds and What Happens If You Change Your Mind

The Post Office does not refund the fee if you decide not to send the money order. If you buy a $100 money order for $101.45 and then change your mind before you hand it to anyone, you can return it and get the $100 back — but the $1.45 fee is gone. Some Post Offices will refund the full amount if the money order was never filled out, but policy varies by location.

If the money order was already filled out with a recipient's name and you want to cancel it, you will need to go back to the Post Office with the receipt and the undelivered money order. The clerk can void it and refund the face value, but again, the fee stays with the Post Office. This is why it is worth double-checking the recipient's name and address before you hand over cash.

If a money order is lost or stolen after you send it, you can file a claim with USPS using your receipt number. The Post Office will investigate and refund your money if the money order was never cashed. This process can take several weeks, which is why keeping your receipt is critical.

How USPS Money Orders Compare to Other Options

A cashier's check from a bank usually costs $5 to $15 per check and has no upper limit on the amount. A money order is cheaper for small to medium amounts but maxes out at $1,000. A wire transfer through a bank costs $15 to $50 but moves the money in hours instead of days. A payment app like Venmo or PayPal is free for most transfers but may not be accepted by landlords, utilities, or government agencies.

If you are paying a bill to a large company or government office, ask them what payment methods they accept before you buy a money order. Many will take online payments, checks, or automatic bank transfers at no cost. A money order is most useful when you need to send cash to someone who will not accept a check and does not have a bank account to receive a transfer.

Where to Buy a Money Order and What to Bring

You can buy a USPS money order at any Post Office during business hours. You need cash, a debit card, or a credit card — most Post Offices accept all three. You do not need an ID to buy a money order, though the clerk may ask for one. Bring the recipient's name and address if you have it, or you can fill those in later if you are not sure yet.

Some grocery stores, check-cashing services, and convenience stores also sell money orders, often for lower fees than the Post Office. Western Union and MoneyGram are the most common brands at non-Post Office locations. These are usually $1 to $3 cheaper than USPS, but they may not be accepted by all recipients — government agencies and some utilities specifically require USPS money orders.

Frequently Asked Questions

Can I buy a money order online and pick it up at the Post Office?

No. USPS does not sell money orders online or allow you to pre-order them. You must go to a Post Office counter in person, tell the clerk the amount, and pay on the spot. This is by design — it prevents fraud and ensures the money is actually available.

What if I make a mistake filling out the money order?

If you or the clerk makes a mistake before the money order leaves the counter, ask for a replacement. The Post Office will void the incorrect one and issue a new one at no extra charge. Once you leave the building with it, corrections become harder — you may need to return it and buy a new one, losing the original fee.

Do I have to pay taxes on a money order?

No. A money order is not taxable income to the recipient — it is just a transfer of money you already have. The fee you pay is a service charge, not a tax, and it is not deductible on your personal taxes unless you are using it for a business expense.

How long does it take for a money order to arrive?

A USPS money order travels through the mail like any other piece of mail. It typically arrives within 3 to 7 business days, depending on distance. If it is going across the country, it may take longer. The recipient should cash it or deposit it as soon as it arrives — money orders do not expire, but holding onto one for months increases the risk it gets lost or damaged.

Can I get my money back if the recipient says they never got it?

Yes, if you have your receipt with the money order number. Contact USPS and file a claim. The Post Office will track whether the money order was cashed and by whom. If it was never cashed, you get a refund. If it was cashed, the recipient received it — they may be lying or may have genuinely forgotten. Either way, the money order did its job.