To off-ramp USDC to a US bank account means selling USDC for US dollars and paying them into a US checking or savings account over ACH or FEDWIRE (the Federal Reserve's same-day wire system). ACH settles in one to two business days, FEDWIRE on the same business day, if you request before the cut-off.
The day's rate sits on the USDC to USD page. This guide covers the payout itself and assumes you know what USDC is; the conversion leg is in the off-ramp explainer.
ACH or FEDWIRE: choosing the rail
Pick by deadline, not by habit. ACH is the default for a payment that can take a day or two, and FEDWIRE is for one that has to land today. Both are domestic dollar transfers, so the recipient never handles a stablecoin.
ACH and FEDWIRE payouts to a US bank account, from the Lumx cut-off times page read on November 1, 2026
ACH | FEDWIRE | |
Cut-off | 2:00 PM ET | 3:00 PM ET |
Settlement | 1 to 2 business days | Same business day, typically within hours |
Fits | Supplier invoices, contractor fees, anything with a few days of slack | An invoice due today, a time-sensitive transfer |
Neither rail runs on a weekend or a US federal holiday, so a request sent then waits for the next business day.
On Lumx, ACH and FEDWIRE are both live for USD payouts, ACH as credit (push) only, with no ACH debit, and the rail is set on the recipient's destination, so a supplier that needs wires and one that takes ACH can sit in the same customer. A payout request carries no rail field of its own.
What do you need to pay a US bank account from USDC?
You need a verified sender, USDC in a wallet and the recipient's US bank details. The sender is either a company that has passed KYB (know your business, the verification of a company and its owners) or an individual that has passed KYC (know your customer, the verification of an individual). The recipient is registered once as a destination, and each payout points at it.
Fields of a US dollar destination, the same for ACH and FEDWIRE, from the Lumx destination reference read on November 1, 2026
Field | What goes in it | Note |
Account type | Checking or savings | Match it to the recipient's account |
Account number | The recipient's account number | Copy it from the recipient's own written instructions |
Routing number | The nine-digit ABA routing number | Ask the recipient for the routing number for the rail you choose |
Bank | Name and full address: line, city, state, postal code, country | The full address is required for these two rails |
Holder | Business or individual, legal name, tax ID, full address | Use the legal name the bank holds, which for a company can differ from the brand on its website |
Relationship | Self, supplier, employee, business partner and the other values on the destination | Tells the compliance team why the money moves |
On Lumx, the destination is created through the API with rail set to ACH or FEDWIRE and currency set to USD, and it goes through verification before it can receive a payout. Webhooks tell you where it stands: destinations.under_verification means in progress, destinations.approved means go, and destinations.final_rejection means permanent.
The steps from a USDC balance to dollars in the account
1. Register the recipient as a destination. Use the fields above, test in the sandbox, and wait for approval.
2. Fund the wallet. The off-ramp debits the sender's own wallet. Send USDC to the wallet address on a network the pair accepts, or convert local currency into USDC first. The inbound side is in USD payments for Brazilian companies, the full flow in the US supplier guide.
3. Quote and submit. Check the customer's remaining off-ramp allowance, then ask for a locked rate if the payer needs a number before committing. Submit the off-ramp with the destination, the quote, a purpose code and a unique idempotency key, so a retry cannot pay twice.
4. Follow the status. The payout moves from the stablecoin transfer to the trade to the fiat transfer and then to success. Each change fires a webhook, and a separate event fires if it fails.
Off-ramp webhooks and what to do on each, from the Lumx webhooks page read on November 1, 2026
Webhook | What it means | What to do |
| USDC is leaving the wallet | Wait |
| The USDC is being traded for dollars | Wait |
| Dollars are on their way to the bank | Keep the transaction id |
| The payment left the banking partner | Mark as sent; the recipient's bank may still take time to post it |
| The payout did not complete | Read the error code, fix the data, resubmit |
On Lumx, an idempotency key expires after 24 hours, and reusing a key with a different body returns a 409. An off-ramp counts as complete once the funds leave Lumx's banking partner, so give the Lumx team the transaction id if a recipient says the money is missing.
Purpose codes for a US payout
Every off-ramp carries a purpose code that says why the funds move. Compliance checks it against the holder relationship on the destination, so choose by what the payment is for.
Purpose codes most used on a US dollar payout, from the Lumx purpose codes page read on November 1, 2026
Payment | Holder relationship | Purpose code |
Your own US account | Self |
|
A supplier invoice for goods or services | Supplier |
|
A consultant, lawyer or accountant | Supplier or business partner |
|
Reimbursing an employee or contractor | Employee |
|
PERSONAL_ACCOUNT works only on a destination whose relationship is self; anywhere else it returns a validation error. A code that does not match the underlying activity can hold the transaction or trigger an RFI (request for information, a compliance hold that asks for a document before a transaction clears).
On Lumx, the accepted values are the nine on the purpose codes page, and picking the code before you submit is cheaper than answering a hold afterwards.
What time is the cut-off where you are?
Lumx's cut-offs are stated in Eastern Time. The offset between Eastern Time and your office changes twice a year when the US clocks change, so the same cut-off lands at a different local hour. At 4:00 PM in São Paulo you are before the FEDWIRE cut-off in US standard time (November to March), on it in daylight time (March to November), and past the ACH cut-off in both.
Cut-offs converted to local time, computed from the ET cut-offs on the Lumx cut-off times page. First figure in US standard time, second in US daylight time
Rail | ET cut-off | São Paulo | Mexico City |
ACH | 2:00 PM | 4:00 PM / 3:00 PM | 1:00 PM / 12:00 PM |
FEDWIRE | 3:00 PM | 5:00 PM / 4:00 PM | 2:00 PM / 1:00 PM |
Four requests, read against the table, in US standard time:
Where each request ends up
Request sent | Rail | What happens |
Tuesday 1:30 PM ET | ACH | Before 2:00 PM, processed Tuesday, arrives Wednesday or Thursday |
Tuesday 2:30 PM ET | ACH | Misses the cut-off, processed Wednesday, arrives Thursday or Friday |
Tuesday 2:30 PM ET | FEDWIRE | Before 3:00 PM, usually lands Tuesday |
Saturday 10:00 AM ET | Either | Waits for Monday, then follows the same timeline |
These are processing targets, not commitments. More rails are in limits and cut-offs by rail.
On Lumx, a request after the cut-off or on a US holiday is queued for the next business day, and the off-ramp webhooks tell you where it stands.
Limits, and what else lowers the amount
What a US payout costs is the provider's fees plus the spread on the trade. The customer's own limit, stated in US dollars against the verification tier, caps the size of a payout.
Default off-ramp limits by verification tier, in USD, from the Lumx transaction limits page read on November 1, 2026
Limit | KYC standard | KYC enhanced | KYB standard | KYB enhanced |
Per transaction | 7,500 | 25,000 and above | 50,000 | 50,000 and above |
Daily | 15,000 | 50,000 and above | 100,000 | 100,000 and above |
Monthly | 15,000 | 50,000 and above | 100,000 | 100,000 and above |
Off-ramp limits are tracked apart from on-ramp and transfer limits. A payment above its limit is rejected with TRANSACTION_LIMIT_EXCEEDED. A higher limit needs enhanced verification and a documented request. A balance smaller than the payout fails with INSUFFICIENT_BALANCE, and an amount under the per-currency minimum with MINIMUM_AMOUNT_NOT_MET.
Three things can make the recipient's credit smaller than the USDC you sent: the spread on the trade, the provider's platform and per-transaction fees, and what the recipient's own bank deducts. Ask for an itemized quote per rail. Proof that the money moved is the per-rail reference on every transfer plus the webhooks. The mechanics are in how stablecoin payout fees work.
Lumx prices this as a monthly platform fee plus usage-based per-transaction fees, transparent FX on locked quotes, no pre-funding; no published plans, so this guide quotes no figure per rail. A locked rate lasts 30 seconds, 1 minute or 5 minutes, and only the 30-second lock has no fee. The limits above apply to every customer, in any country, and includeTransactionLimits=true on the customer read returns the used and remaining amounts.
Why a US payout stops, comes back or is held
The account details are wrong. A transposed digit in the account number, a routing number for the wrong rail or the wrong account type points the payment at a different account or at none. No sending-side check knows the supplier mistyped it.
The holder does not match. A destination marked as the customer's own is refused if the holder's tax ID or type differs from the customer's (HOLDER_TAX_ID_MISMATCH, HOLDER_TYPE_MISMATCH). A tax ID that bank validation rejects comes back as INVALID_TAX_ID, and a destination the bank cannot accept as INVALID_PAYMENT_DESTINATION. All of these are fixed on the destination.
The quote lapsed. A locked rate that has expired or was already used is rejected (EXCHANGE_RATE_EXPIRED, EXCHANGE_RATE_ALREADY_USED). Request the rate at confirmation, then submit.
I recommend defaulting to ACH and treating FEDWIRE as the exception you reach for when an invoice is due that day. I also recommend sending the first payment to any new US recipient as a small test and releasing the full amount only after the recipient confirms it arrived. It costs one extra payment and covers what no validation can: whether the account is the right person's.
A compliance hold. A transaction flagged by monitoring is held while the compliance team asks for context, usually the relationship between sender and receiver, the purpose and the expected outcome. It is a pause, not a rejection, and an unanswered hold may be refunded to the sender after 24 hours. Screening is covered in wallet screening for stablecoin payouts, and the paperwork a hold can ask for in source of funds for crypto off-ramps. More is in why payouts get rejected.
On Lumx, blockchain activity is monitored with Chainalysis, fiat movements are monitored by Lumx and its banking partners, and customers are verified with Sumsub. When a transaction is flagged, the compliance team reaches out on your usual channel, email or Slack, with the transaction details. Compliance reviews your reply and decides whether to release the payment; with no reply in 24 hours, the transaction may be refunded.
When an off-ramp to a US bank account is the wrong tool
When the money has to arrive on a weekend. ACH and FEDWIRE settle on US business days, so a Saturday deadline means paying on Friday.
When the payer already holds dollars in a US bank account. A domestic transfer needs no stablecoin, and a round trip through USDC adds a spread twice.
When the recipient banks outside the US. A routing number reaches US accounts only; pounds, for one, have their own rail in Faster Payments.
What this looks like on a US dollar payout with Lumx
Lumx is stablecoin payments infrastructure for businesses that move money between Latin America and the rest of the world: one API to collect, hold, convert, and pay out in BRL, MXN, COP, USD, EUR, and GBP or in USDC and USDT, over local rails such as PIX, SPEI, PSE, Bre-B, ACH, FEDWIRE, SEPA, and Faster Payments, with SWIFT and on-behalf-of payments and collections (POBO and COBO) in USD, EUR, and GBP, plus named virtual accounts, custodial wallets, and KYB/KYC built in.
For a dollar payout, the sender is a customer approved through KYB (business) or KYC (individual); Lumx targets two business days for KYB Standard and three for Enhanced. After approval the customer has a custodial wallet on each supported blockchain, and a USDC payout to a US bank account works from the wallet on Ethereum, Polygon and Base.
The path is the sequence above. The destination carries the account type, account number and ABA routing number, plus the bank and the holder, with the rail set to ACH or FEDWIRE. The off-ramp debits the wallet, trades USDC for dollars and reports each stage by webhook until offramp.success. A customer that also collects local currency can convert those deposits into USDC and pay out from the same wallet. See global payments and the coverage page, and compare other routes in our ranking of stablecoin off-ramp APIs. The same payout toward Brazil is in USDC to a Brazilian bank.
Methodology and sources
We read the Lumx documentation on November 1, 2026: Coverage, cut-off times, Destinations, the create a destination reference, Purpose codes, Transaction limits, Exchange rates, Request for information, Webhooks, Idempotency, the off-ramp reference and Errors. The local-time cut-offs are our own arithmetic on the Eastern Time cut-offs in that table. The one outside source is the Federal Reserve's Fedwire Funds Service page, for the definition of FEDWIRE. Every figure, cut-off and limit comes from the Lumx pages above, and no Nacha rule is used.
Verified on November 1, 2026. Operational context, not legal, tax, or investment advice.
Cover photo: Oxana Melis on Unsplash.
How do you off-ramp USDC to a US bank account?
You register the recipient's US bank account with its account type, account number and ABA routing number, plus the bank and the holder, ask for a rate, and submit a payout from a USDC balance with a purpose code. The USDC is traded for dollars and paid over ACH or FEDWIRE. On Lumx, the destination is verified first, the rail is set on it, and webhooks report each stage until success.
Should I use ACH or FEDWIRE for a USDC payout?
Use ACH when the payment can take one to two business days, and FEDWIRE when it must land the same business day. Neither runs on weekends or US federal holidays. On Lumx, ACH has a 2:00 PM ET cut-off and FEDWIRE a 3:00 PM ET cut-off, and both are set on the destination.
How long does a USDC to US bank account payout take?
ACH takes one to two business days and FEDWIRE usually lands within hours, counted from a request made before the cut-off. A request after the cut-off or on a holiday waits for the next business day. On Lumx, the off-ramp is complete once the funds leave the banking partner, and a compliance review or a large payment can add time.
Which purpose code should I send for a payout to a US supplier?
Send the code that describes the underlying activity, which for a supplier invoice is trade transactions. A code for your own account works only on a destination you own. On Lumx, the supplier destination carries the relationship SUPPLIER, the off-ramp request carries the purpose TRADE_TRANSACTIONS, and a mismatch between the two can hold the payment for an RFI.
What is the largest USDC payout to a US bank account?
It is the sender's limit, not the rail's. On Lumx, a standard business customer can send 50,000 US dollars per transaction and 100,000 per day or month, and enhanced verification raises it. A payment above its limit is rejected with TRANSACTION_LIMIT_EXCEEDED.





