Why Most Credit Cards Won't Buy Money Orders (And What Works Instead)
Credit cards usually cannot buy money orders directly, but the workaround depends on where you're buying and which card you have
Most money order sellers — post offices, grocery stores, Walmart, check-cashing shops — do not accept credit cards at all. They want cash or a debit card. A few places like Walmart and some grocery chains will let you use a credit card, but they treat it as a cash advance, which means your card issuer charges you a fee (usually 3 to 5 percent) on top of the money order fee itself. That makes buying a money order with a credit card expensive compared to using cash or a debit card.
The real issue is that money orders exist partly because someone needs proof of payment without using their bank account directly. Using a credit card defeats that purpose for the seller, and the fees make it pointless for you. If you're considering a credit card because you don't have cash or a debit card available, there are better options that cost less.
Key Takeaways
- Post offices, Western Union, and most check-cashing shops do not accept credit cards for money orders at all.
- Walmart and some grocery stores accept credit cards but charge a cash advance fee (3 to 5 percent) on top of the money order fee, making it expensive.
- A debit card costs nothing extra and works at nearly every money order location.
- If you don't have a debit card, using a credit card cash advance at an ATM to get cash is usually cheaper than buying a money order with the card directly.
Where credit cards are rejected for money orders
The U.S. Postal Service does not accept credit cards for money orders. You can pay with cash, a debit card, or a traveler's check. Western Union locations (which sell money orders at many grocery stores and pharmacies) also do not take credit cards — cash or debit only. Check-cashing shops almost never accept credit cards for money orders either.
These businesses avoid credit cards because money orders are a low-margin product. The seller makes only 50 cents to a few dollars per transaction. If they accept credit cards, they pay the card network a fee (usually 2 to 3 percent of the transaction), which eats into or eliminates their profit. For a $500 money order, that's $10 to $15 the seller loses. It's not worth it to them.
The few places that do accept credit cards — and why it costs extra
Walmart accepts credit cards for money orders at its customer service desk. Some grocery chains, including Kroger and Safeway in certain regions, also accept them. When you use a credit card, your card issuer treats it as a cash advance, not a regular purchase. That distinction matters because cash advances come with their own fee.
A cash advance fee is typically 3 to 5 percent of the amount, with a minimum charge (often $2 to $5). On a $500 money order, you'd pay $15 to $25 just in the cash advance fee, plus the money order fee itself (usually $1 to $3). Your credit card also starts charging interest on the cash advance immediately — there's no grace period like there is for regular purchases. Interest accrues daily until you pay it off.
For comparison: using a debit card costs you only the money order fee, nothing more. Using cash costs the same. The credit card route is the most expensive option by far.
When a credit card cash advance at an ATM is cheaper
If you don't have a debit card or cash, and you need a money order, taking a credit card cash advance at an ATM might actually cost less than buying the money order with the card directly. Here's why: an ATM cash advance fee is often a flat $2 to $5, or 3 percent of the amount — whichever is higher. Once you have cash, you can walk into any money order location and pay with cash, which costs only the money order fee.
Let's say you need a $200 money order. At Walmart with a credit card, you'd pay a 3 percent cash advance fee ($6) plus the money order fee ($0.88), totaling $6.88 in fees. Using an ATM cash advance, you'd pay a flat $5 fee, then buy the money order with cash for $0.88, totaling $5.88. You save a dollar, and you avoid the daily interest charge on the full $200.
The math changes with larger amounts. For a $1,000 money order, the Walmart credit card route costs $30 to $50 in fees plus interest. An ATM cash advance costs $5 to $30 depending on your card's terms, then $1.50 for the money order. The ATM route is still cheaper.
Why debit cards are the practical choice
If you have a debit card, use it. It works at every money order location that accepts cards, costs nothing extra, and doesn't trigger interest charges. You're spending money you already have, so there's no debt involved. If you don't have a debit card yet, opening a basic checking account at a bank or credit union takes about 15 minutes online or in person, and most accounts come with a debit card immediately.
Some banks offer accounts with no minimum balance and no monthly fee, specifically designed for people who want a simple way to access their money. Credit unions often have even lower fees. Having a debit card solves this problem permanently and makes buying money orders, paying bills, and withdrawing cash straightforward.
What to do if you only have a credit card
If a credit card is your only payment method right now, your cheapest option is usually a credit card cash advance at an ATM, followed by buying the money order with cash. Yes, you'll pay a cash advance fee, but it's typically lower than the combined cash advance fee plus interest you'd pay by using the card directly at Walmart.
Before you do this, call your credit card issuer and ask what their cash advance fee is — it varies by card. Also ask if there's a daily interest rate on cash advances (there almost always is). Then compare that total cost to buying the money order with the card at Walmart or your local grocery store. Do the math for the specific amount you need, because the break-even point depends on the size of the transaction.
If you're in a situation where you regularly need money orders and only have a credit card, that's a sign to open a checking account. The one-time effort pays off quickly.
Money order alternatives if fees are a problem
If the cost of a money order plus credit card fees is adding up, consider whether you actually need a money order. A money order is useful when someone won't take a personal check, when you need proof of payment, or when you're sending cash through the mail and want a receipt. But for many everyday payments, there are cheaper options.
Bank transfers and peer-to-peer payment apps like Venmo, PayPal, or Cash App are free or nearly free and work instantly. If you're paying a bill, many companies accept online payments directly from a bank account at no cost. If you're sending money to someone who needs it fast, a wire transfer costs $15 to $30 but is faster and more secure than a money order. If you're paying rent or a large bill and need a paper trail, ask if the recipient accepts a personal check — it's free and comes with a built-in receipt.
Money orders make sense in specific situations, but they're not always the cheapest or fastest way to move money. Before you commit to the credit card route, ask yourself whether the money order is actually necessary.
Frequently Asked Questions
Can I use a credit card at the post office to buy a money order?
No. The U.S. Postal Service only accepts cash, debit cards, and traveler's checks for money orders. Credit cards are not an option at any post office location.
What's the difference between a cash advance and a regular credit card purchase?
A cash advance is when you borrow cash against your credit limit. Your card issuer charges a separate fee (usually 3 to 5 percent), and interest starts accruing immediately with no grace period. A regular purchase has a grace period before interest kicks in. When you buy a money order with a credit card at Walmart, the card treats it as a cash advance, not a purchase.
Is it ever worth using a credit card to buy a money order?
Rarely. The fees and interest charges make it the most expensive way to get a money order. A debit card, cash, or a credit card cash advance at an ATM (followed by buying the money order with cash) are all cheaper options.
How much does a money order cost?
Money order fees vary by location and amount. At the post office, they range from about $1.45 to $2.20 depending on the amount. Walmart charges around $0.88 to $1.48. Check-cashing shops may charge $1 to $5. The fee is separate from any credit card fees you might incur.
What should I do if I don't have a debit card or cash?
Take a credit card cash advance at an ATM to get cash, then buy the money order with the cash. This usually costs less than using the credit card directly at a store. If you need money orders regularly, opening a checking account with a debit card is worth the small effort.