You can buy a money order with a personal check only at a bank or credit union where you already hold an account. The U.S. Postal Service, Walmart, and virtually every other retail seller refuse checks and will take only cash or a debit card. If you don’t have a bank account and you’re holding a check, you’ll need to cash it first and use the proceeds to buy the money order.
Why Most Sellers Won’t Take a Check
A money order is a prepaid instrument. The issuer guarantees the funds the moment it’s printed, so the issuer needs your payment to clear before handing the document over. Cash and debit transactions settle immediately, and the seller carries no risk. A personal check is different. It can bounce days later, when it finally processes through the banking system. If the seller has already handed you a guaranteed money order backed by a check that fails, the business absorbs the loss. That is the reason retailers refuse checks outright, and the policy is enforced strictly at the register.
Buying a Money Order at Your Bank
Your bank or credit union is the practical exception. Because the institution can see your balance in real time, it can place a hold on the funds and issue the money order on the spot. You can pay by writing a personal check against your account or by authorizing a direct withdrawal from checking. The bank treats the payment as an internal transfer rather than an external check transaction, which removes the clearing delay that makes checks risky elsewhere.
If you don’t hold an account at that institution, this option generally isn’t available. The bank has no way to verify your check immediately and faces the same bounced-check risk retailers avoid, so it will decline.
Bank money order fees tend to run between $5 and $10 per order, though some premium checking accounts waive the charge. If you already bank somewhere and need a money order, this is the simplest route and the only one that lets you pay by check.
Where Checks Are Refused Outright
The Postal Service explicitly bans checks for money order purchases. Accepted payment is U.S. currency and debit cards where a PIN is entered on the terminal. Credit cards and traveler’s checks are also rejected.1USPS. What Forms of Payment are Accepted The maximum amount for a single USPS domestic money order is $1,000.2USPS. Money Orders – The Basics
Walmart follows the same rule, accepting only cash or debit at its Money Center or customer service desk.3Walmart. Money Orders Grocery stores, convenience stores, and check-cashing outlets that sell MoneyGram or Western Union money orders almost universally enforce the same cash-or-debit rule. Don’t count on finding a retail exception; you won’t.
The Two-Step Workaround: Cash the Check First
If a retailer or check-cashing outlet won’t take your check to fund a money order, you can often cash the check at that same location and then use the cash to buy the money order. It’s a two-step transaction, and each step carries its own fee.
Check-cashing fees vary widely by check type and outlet. Payroll and government checks typically cost 1% to 6% to cash. Personal checks run significantly higher because the outlet is taking on the bounce risk itself. On top of that, you pay the money order issuance fee.
This works, but the combined cost adds up fast. If you have a bank account, it is almost always cheaper to deposit the check at your bank and buy the money order there, or to withdraw cash and take it to a lower-fee seller like USPS or Walmart.
What It Costs, So You Can Choose
Fees vary considerably depending on where you buy and how you pay:
- USPS charges $2.55 for money orders up to $500 and $3.60 for $500.01 to $1,000, effective January 2026. Payment must be cash or debit.4USPS. Notice 123 – Price List
- Walmart charges a maximum of $1 per money order, regardless of amount. Cash or debit only.3Walmart. Money Orders
- Banks and credit unions typically charge $5 to $10 per money order, and some waive the fee at certain account tiers. This is the only category where a personal check is accepted as payment.
- Check-cashing stores usually charge $1 to $3 per money order, but if you’re also cashing a check to fund the purchase, the combined cost will be higher.
If price is the priority and you have cash on hand, Walmart is the cheapest option and USPS is competitive and widely available. If paying by check is the priority, your bank is the only place that will actually do it, and the higher fee is the cost of that convenience.
Reporting Thresholds to Know Before You Buy
Two federal thresholds apply once purchase amounts climb, and they matter whether you pay by check at a bank or by cash at a retailer.
At USPS, a single money order caps at $1,000. You can buy multiple in one visit, but when your daily total reaches $3,000 or more across all postal facilities combined, you must complete PS Form 8105-A and show a valid government-issued photo ID.2USPS. Money Orders – The Basics The $3,000 threshold comes from federal Bank Secrecy Act rules that require any financial institution selling money orders to record the buyer’s name, address, date of birth, Social Security number, and ID details for cash purchases of $3,000 or more.5eCFR. 31 CFR 1010.415 – Purchases of Bank Checks and Drafts, Cashiers Checks, Money Orders and Travelers Checks Account holders buying by check at their own bank often clear this through existing account records rather than a fresh ID check.
A separate threshold applies at $10,000. Businesses that receive more than $10,000 in cash or cash equivalents in a single transaction, or in related transactions, must file IRS Form 8300 within 15 days.6Internal Revenue Service. Form 8300 and Reporting Cash Payments of Over $10,000
Don’t try to split purchases to stay under the $3,000 line. Deliberately breaking up transactions to dodge the reporting requirement is called structuring, and it is a federal offense on its own, regardless of whether the underlying money is legal. The penalty runs up to five years in prison, a fine, or both, and doubles to ten years if the structuring is tied to other illegal activity or involves more than $100,000 over a 12-month period.7Office of the Law Revision Counsel. 31 USC 5324 – Structuring Transactions to Evade Reporting Requirement Prohibited If you legitimately need multiple money orders totaling more than $3,000, just buy them normally and show your ID when asked.
The Short Version
Paying for a money order with a check is a bank service, not a retail service. If you have a checking account, walk into your bank or credit union, ask for a money order, and pay by check or account withdrawal. If you don’t have an account, plan on cash or a debit card at USPS or Walmart, and if all you have is a check, cash it first and accept that you’ll pay two fees instead of one.