Most places won't sell you a money order with a credit card directly

You cannot walk into most money order retailers — post offices, grocery stores, Walmart, Western Union locations — and hand them a credit card to buy a money order. They accept cash, debit cards, and sometimes checks, but not credit cards. This is a hard rule at nearly every major seller, not an exception.

The reason is simple: money orders are meant to be a safer alternative to cash or checks. Retailers treat them as a cash-like product, and they've built their systems around cash-equivalent payment methods. A credit card transaction creates a record that doesn't fit how money orders work in their system.

But there are workarounds if you need a money order and only have a credit card available. None of them are instant, and some cost extra, but they exist.

Key Takeaways

  • Post offices, Walmart, grocery stores, and Western Union will not accept credit cards to buy money orders at the counter.
  • You can withdraw cash from an ATM using your credit card (usually with a fee), then use that cash to buy a money order.
  • Some banks and credit unions let you buy a money order through online banking or by phone, then pick it up or have it mailed to you.
  • Money order fees range from about $1 to $5 depending on the amount and the retailer, and ATM cash advances typically cost $2 to $5 plus interest.
  • If you need a money order urgently, calling your bank first is faster than trying multiple retailers.

Use a credit card cash advance to get cash, then buy the money order

The most common workaround is to get cash from an ATM using your credit card, then use that cash to buy a money order at any retailer that normally sells them. This works, but it costs you money in two ways.

First, your credit card company charges a cash advance fee — usually 3% to 5% of the amount you withdraw, with a minimum of $2 to $10. So if you withdraw $100, you might pay $3 to $5 just for the withdrawal. Second, cash advances start accruing interest immediately — there is no grace period like there is for regular purchases. The interest rate is often higher than your regular purchase APR, sometimes 5 to 10 percentage points higher.

Once you have the cash, you can walk into any post office, Walmart, grocery store, or Western Union and buy a money order for $1 to $5, depending on the amount. The money order itself is cheap; the cost is in getting the cash out.

Example: You need a $500 money order. You use your credit card at an ATM to withdraw $500. Your card charges a $15 cash advance fee (3%) plus interest at 25% APR. If you pay off the $500 within a week, you'll pay roughly $15 in fees plus $2 in interest — total cost around $17 to get the cash. Then you pay $2 for the money order itself. Total: about $19 out of pocket.

Ask your bank or credit union if they sell money orders by phone or online

Some banks and credit unions offer money order services through their online banking portal or over the phone. You don't pay with a credit card directly; instead, the bank deducts the money order amount from your checking or savings account. But if you have a credit card with that bank, you can transfer money from the card to your account first, then order the money order.

This route avoids the cash advance fee, but it requires you to have a bank account at an institution that offers this service. Call your bank's customer service line and ask: "Do you sell money orders online or by phone?" If they say yes, ask what the fee is, how long it takes, and whether they mail it to you or hold it for pickup.

The process usually takes 3 to 7 business days. You won't get a money order in an hour, but you also won't pay a cash advance fee. Some banks charge $5 to $10 for this service; others include it free for account holders.

Transfer credit card funds to a debit card, then buy the money order

If you have a debit card linked to a checking account, you can transfer money from your credit card to that account using a balance transfer or cash-like transfer service, then use the debit card to buy a money order. This is slower than a cash advance and may cost more in fees, but it avoids the high interest rate of a cash advance.

Services like Venmo, PayPal, Square Cash, and some banking apps let you move money between accounts. You would transfer from your credit card to your debit card account (or to a friend's account and back, though that's clunky), then use the debit card at a money order retailer. Each service charges different fees — some charge 1% to 3% for credit card transfers, others charge a flat fee.

This is worth considering only if the amount is large enough that the fee difference matters. For a $100 money order, the fee difference between a cash advance and a transfer service might be $2 to $5. For a $1,000 money order, it could be $20 to $50.

Check whether your money order retailer accepts debit cards

If you have a debit card but no cash, confirm that the specific retailer you plan to visit accepts debit cards. Most do — post offices, Walmart, and grocery stores all take debit cards — but some smaller retailers or Western Union locations may not. Call ahead or check their website before you go.

This is the simplest path if you have a debit card available. You avoid fees and interest entirely. The only catch is that not every location accepts every payment method, so verify first.

Why retailers won't accept credit cards for money orders

Understanding the reason helps you see why workarounds exist but direct payment doesn't. Money orders are designed to be a safer, more traceable alternative to cash. The retailer is essentially acting as an intermediary — you give them cash (or cash-equivalent), they give you a money order, and you send that to someone else.

When a credit card is involved, the retailer has to worry about chargebacks. If you buy a money order with a credit card and then dispute the charge, the retailer is stuck. They've already issued the money order, which may have been cashed by someone else. Credit card companies side with the cardholder in disputes, so the retailer loses money. To avoid this risk, they simply don't accept credit cards.

Debit cards and cash don't have this problem because there's no dispute mechanism. Once the money is gone, it's gone. That's why debit cards are accepted but credit cards are not.

Frequently Asked Questions

Can I buy a money order with a credit card online?

Not from most money order retailers. Western Union and MoneyGram don't accept credit cards on their websites for money orders. Some banks and credit unions do offer online money order services, but you pay from your bank account, not directly with a credit card. Call your bank to ask if they offer this.

What's the cheapest way to buy a money order with a credit card?

If your bank offers phone or online money orders, that's usually cheapest — often free or $5 to $10 flat. If not, a cash advance is the next option: you'll pay 3% to 5% in fees plus interest, but it's faster than transfer services. For small amounts under $100, the fee difference is usually $2 to $5.

Can I use a credit card to buy a money order at Walmart or the post office?

No. Walmart and the post office both accept cash and debit cards, but not credit cards. You'll need to use one of the workarounds — cash advance, bank transfer, or debit card — to get the money in a form they'll accept.

How long does a cash advance take to show up as a charge on my credit card?

It shows up immediately or within one business day, depending on your card issuer. The fee and interest start accruing right away, even though you won't see the full interest charge until your next statement. This is why cash advances are expensive — you're paying interest from day one, not from the statement date like regular purchases.

What if I need a money order today and don't have cash or a debit card?

Your fastest option is to find an ATM and use your credit card for a cash advance. Most ATMs work with credit cards, and you'll have cash within minutes. Then go to any retailer that sells money orders — post office, Walmart, grocery store, or Western Union. The total time is usually under an hour, though the cost will be $15 to $25 in fees and interest for a $500 money order.