Most places won't sell you a money order with a credit card directly
Money orders are treated as cash equivalents by most sellers, and credit card companies classify them as cash advances. This means you typically cannot walk into a store and hand over your credit card to buy a money order the way you would groceries. The transaction would trigger a cash advance fee (usually 3% to 5% of the amount) plus interest that starts accruing immediately — not after a grace period like regular purchases.
That said, there are a few workarounds that let you use a credit card to fund a money order without paying the cash advance penalty. The key is putting money in your hands first, then using that money to buy the money order.
Key Takeaways
- Buying a money order directly with a credit card triggers a cash advance fee and immediate interest, making it expensive.
- You can withdraw cash from an ATM using your credit card, then use that cash to buy a money order at a post office, bank, or retailer like Walmart or Western Union.
- Some credit cards offer cash advance features through their issuer's app or website, which may have lower fees than ATM withdrawals.
- Using a debit card, checking account, or cash is cheaper than any credit card method for buying money orders.
- Money order fees typically range from $1 to $5 depending on the amount and location, and you'll pay this on top of any credit card fees.
Using an ATM cash withdrawal to fund a money order
The most straightforward path is to withdraw cash from an ATM using your credit card, then use that cash to buy the money order. This avoids the "cash advance" label that triggers the higher fee structure. You'll pay an ATM fee (usually $2 to $5 from an out-of-network machine) plus the money order fee itself, but you won't pay the 3% to 5% cash advance fee or the daily interest that comes with a direct cash advance.
Find an ATM that accepts your card — your credit card issuer's website or mobile app will show you ATM locations. Withdraw the amount you need plus a small buffer for the money order fee. Then go to a post office, bank branch, Walmart, or Western Union location to buy the money order with the cash you just withdrew.
Requesting a cash advance through your card issuer's app or website
Some credit card issuers let you request a cash advance directly through their mobile app or online account portal. This is different from an ATM withdrawal — you're asking the issuer to send you money or deposit it into your bank account. The fee structure is the same as a traditional cash advance (3% to 5% plus interest), but you avoid the ATM fee and the trip to a machine.
Check your card issuer's app or website under "Account Services" or "Cash Advance" to see if this option is available. If it is, you can request the advance, wait for it to hit your bank account (usually one to three business days), then use that money to buy the money order. This method costs more in fees than an ATM withdrawal, so it only makes sense if you don't have access to an ATM or prefer not to leave your house.
Where to actually buy the money order once you have cash
Once you have cash in hand, you have several options for where to buy the money order. The U.S. Postal Service sells money orders at post offices for a flat fee that depends on the amount — typically $1.45 for amounts up to $500 and $1.95 for $500 to $1,000. Banks and credit unions often sell them to customers for $5 to $10, though some waive the fee if you have an account with them.
Walmart, Western Union, and other retailers sell money orders for $0.50 to $3 depending on the amount. Western Union locations are in grocery stores, pharmacies, and dedicated offices nationwide. Check their website or call ahead to confirm the fee for your specific amount and location, since prices vary.
Why using a debit card or bank account is cheaper
If you have a debit card or access to your checking account, use that instead. Debit card transactions at retailers don't trigger cash advance fees, and you can buy a money order directly with a debit card at most locations. You'll pay only the money order fee itself — no ATM fee, no cash advance fee, no interest.
If you don't have a debit card, ask your bank whether you can write a check instead. Many people who need a money order are trying to send money to someone who won't take a personal check, but it's worth asking. A check costs nothing and reaches the recipient in a few days, whereas a money order costs $1 to $5 and takes the same time.
The total cost comparison: credit card versus other methods
Let's say you need a $500 money order. Using a credit card costs you: an ATM fee of $2 to $5, plus a money order fee of $1.45 (at the post office) or up to $3 (at a retailer). Total: $3.45 to $8. Using a direct cash advance through your issuer costs 3% to 5% of $500 ($15 to $25) plus the money order fee ($1.45 to $3), plus daily interest until you pay the balance. Total: $16.45 to $28 or more.
Using a debit card or checking account costs only the money order fee: $1.45 to $3. If you have either option, the credit card method costs you $2 to $25 extra for no benefit.
Frequently Asked Questions
Can I buy a money order with a credit card at Walmart or the post office?
Most locations will not accept a credit card directly for a money order. You must use cash, a debit card, or a check. If you want to use a credit card, withdraw cash first using an ATM, then buy the money order with that cash.
What's the difference between a cash advance and an ATM withdrawal with a credit card?
A cash advance is when you borrow money from your credit card issuer and pay it back like a loan — it triggers a 3% to 5% fee and interest from day one. An ATM withdrawal is when you use your credit card at an ATM machine to pull cash, which charges an ATM fee but avoids the higher cash advance fee. Both cost money, but ATM withdrawals are cheaper.
Will buying a money order with a credit card hurt my credit score?
A cash advance itself doesn't hurt your score, but it increases your credit utilization (the percentage of your available credit you're using), which can lower your score slightly. Paying interest on the cash advance also costs you money. Using a debit card or bank account avoids both problems.
How long does it take to get cash from a credit card cash advance?
An ATM withdrawal is instant. A cash advance requested through your issuer's app or website usually takes one to three business days to reach your bank account. If you need the money order today, use an ATM.
Can I use a credit card to buy a money order online?
No. Online money order services like MoneyGram and Western Union accept credit cards for the transaction itself, but they're selling you a money order code or transfer, not a physical money order. If you need a physical money order to mail or hand to someone, you must buy it in person with cash or a debit card.