Guides

How to fund a stablecoin on-ramp: Pix, SPEI, PSE, ACH or wire

How to fund a stablecoin on-ramp: which rail pays in by currency, who starts the payment, cut-offs, limits, and when to use standing account details.

Caio Barbosa

Founder & CO-CEO

Forbes Under 30. One of the leading voices in Fintech & Crypto in Brazil. Writes weekly about stablecoins, payments, and the future of financial infrastructure in Latin America.

Cover image for Lumx blog article: How to fund a stablecoin on-ramp: Pix, SPEI, PSE, ACH or wire
Cover image for Lumx blog article: How to fund a stablecoin on-ramp: Pix, SPEI, PSE, ACH or wire

Funding a stablecoin on-ramp means paying fiat into the account the on-ramp converts from, over a rail the payer's bank offers. The rail sets the speed and the risk. Local real-time rails clear in seconds, ACH takes one to two business days, and wires follow bank hours and cut-offs. Choose the rail first, then the account type.

The on-ramp itself is covered in what a stablecoin on-ramp is. This guide covers the payment that starts it and assumes the customer is already verified.

How does a payer fund an on-ramp, rail by rail?

Each currency has its own rails, and each rail asks the payer for different details. The table follows the Lumx docs read on November 2, 2026.

Rails that pay into an on-ramp account on Lumx, with what the payer needs and when the money lands

Currency

Rail

What the payer uses

Settlement

Cut-off

BRL

Pix

A static QR code (brCode) that carries the reference

Instant, 24/7/365

None

MXN

SPEI

A CLABE plus a memo reference

Instant, 24/7/365

None

COP

Bre-B

A transfer to the Bre-B key of the account

Instant, 24/7/365

None

COP

PSE

A payment the payer authorizes from their own bank

Depends on the payer's bank, which also sets its own limits

Depends on the payer's bank

USD

ACH

Account number and routing number

1 to 2 business days

2:00 PM ET

USD

FEDWIRE

Account number and routing number

Same business day, typically within hours

3:00 PM ET

USD

SWIFT

Account number and BIC

1 to 5 business days

3:00 PM ET

EUR

SEPA

IBAN and BIC

Instant, or same or next business day on SEPA Credit Transfer

None

GBP

Faster Payments

Sort code and account number

Instant, up to £1M per payment

None

Pix (Brazil's instant payment system) and SPEI (Mexico's interbank transfer system) never close. The Mexican payer uses a CLABE (the 18-digit Mexican bank account number), and the memo ties the deposit to the customer. PSE (Colombia's online bank-transfer network) and Bre-B (Colombia's instant payment system) behave differently, as the next section explains. BRL is Pix only: boleto (a Brazilian bank slip payable at any bank or app) and TED (Brazil's same-day bank transfer, business hours only) are not funding rails. Faster Payments (the UK's real-time bank transfer network) and SEPA are open around the clock, except that SEPA routes a payment of €100k or more sent between 4:30 PM and 2:30 AM UK time to SEPA Credit Transfer, which settles the same or next business day.

On Lumx, one account per currency receives all of these rails: a USD account takes ACH, FEDWIRE and SWIFT on the same account details, and a customer can hold several currencies at once. Rails by country sit on the coverage page, and the pairs have their own pages, such as BRL to USDC and MXN to USDC.

Push and pull: who starts the payment

A push is a credit the payer sends from their own bank. A pull is a debit the receiver starts after the payer has authorized it. Pix, SPEI, Bre-B, SEPA, Faster Payments, wires and an ACH credit are pushes. An ACH debit is a pull, and so is PSE, where the payer approves a debit from their own bank.

The difference matters because a pull can come back. Nacha, the body that sets the ACH rules, changed this in 2020 and 2021: its rule on differentiating unauthorized return reasons re-purposed return code R11, used when a consumer says a debit did not match the terms they authorized, and moved its return timeframe from two days to 60 days (Nacha). So a business that credits a customer on a debit it started carries a window of up to two months in which the money can be reclaimed, and a push does not carry that window because the payer sent the money themselves.

The cost of a push is that the payer decides when to send, how much, and whether to include the reference, and a missing reference leaves a deposit someone has to match by hand.

On Lumx, a USD account is funded by the payer sending an ACH credit, a wire or SWIFT to the account details, so the payer starts the payment. Lumx supports ACH credit (push) only, with no ACH debit. In Colombia, PSE is the pull rail: the payer authorizes the debit from their own bank, and PSE only brings money in.

Which rail should a payer use for USD?

For USD the choice is between ACH, FEDWIRE and SWIFT, and it comes down to how much time and how much cost the payer will accept. The cut-offs and settlement come from the Lumx cut-off page.

USD rails compared on the same Lumx account


ACH

FEDWIRE

SWIFT

Cut-off

2:00 PM ET

3:00 PM ET

3:00 PM ET

Settlement

1 to 2 business days

Same business day, typically within hours

1 to 5 business days

Operating days

US business days

US business days

Subject to intermediary bank hours

What can add time or cost

Weekends and US federal holidays

Weekends and US federal holidays

Correspondent banks can add hours or days and deduct fees

Fits

Routine amounts that can wait

Larger amounts that must land today

A payer outside the US

FEDWIRE (the Federal Reserve's same-day wire system) is the rail for money that has to arrive today, and the cut-off decides whether today is possible: a request after it, on a weekend or on a bank holiday is processed the next business day. SWIFT is the rail for a payer outside the US with no US account, and it runs through correspondent banks the receiving platform does not control.

On Lumx, SWIFT is a USD rail, so a payer in another currency sends USD. The docs give the timezone trap: a transfer triggered at 4:00 PM in São Paulo misses the 3:00 PM ET FEDWIRE cut-off.

Standing account details or a payment per top-up

A payer can pay the same account details every time, or pay a new instruction created for each deposit. The first suits a payer who tops up often, the second a payer who wants the price before paying.

Standing details work like a named virtual account (a local account number issued in the customer's own name, explained in what a named virtual account is): the payer saves them once, and each deposit converts at the market rate when it arrives. A payment per top-up fixes the amount and the rate first and expires if the payer is slow. Named accounts vs pooled accounts covers why one shared account for many payers breaks matching.

On Lumx, an autoconversion rule is the standing option: creating it returns the deposit details, a Pix brCode for BRL or a CLABE and memo for MXN, and every matching deposit converts to USDC or USDT. Each deposit must be worth at least 50 USD in the account's currency or it is not converted. The per-top-up option is an on-ramp transaction, which waits in AWAITING_FUNDS and expires after 1 day for Pix and SPEI or 7 days on other rails when the rate is floating. A deposit that lands after expiry is refunded to the sender on the same rail. For USD, EUR and GBP a customer can hold one active rule per account, because those deposits are matched to the account and not to a reference.

How long funding takes, and what delays it

The rail sets the floor, and the cut-off, the calendar, account activation and compliance review set the rest. Pix, SPEI, Bre-B and Faster Payments land the same minute on any day. ACH lands one to two business days later, and only if the request beat the 2:00 PM ET cut-off on a business day.

Calendars differ: ACH, FEDWIRE and SWIFT stop on US federal holidays, SEPA Credit Transfer on TARGET closing days, and SPEI on Banxico non-business days. A deposit under review is held until the review ends, and a large transfer can add up to two business hours.

The first deposit also waits on the account. A new customer goes through KYC (know your customer, the verification of an individual) or KYB (know your business, the verification of a company) before any account can receive money. BRL, MXN, EUR and GBP accounts activate right after approval, and a USD account takes up to one business day because the banking partner reviews it first. Limits and cut-offs by rail has the full calendar.

I recommend that a platform shows each payer one rail per currency by default and offers a second only when the first cannot work, such as a wire for a payer who must land funds today. A payer handed six rails picks by habit and not by cut-off, and the ticket arrives on Friday after the 2:00 PM ET ACH cut-off. I would also credit the payer in the app only when the success webhook arrives, never when the deposit instruction is shown, because an instruction is a promise to pay and not a payment.

On Lumx, the app learns of each stage by webhook: account.active when an account can receive funds, and the onramp.* events as a deposit moves through TRANSFERRING_FIAT, TRADING and TRANSFERRING_STABLECOIN to onramp.success.

Minimums and limits that cap a deposit

Three caps apply to a deposit: a minimum, the customer's verification level, and the rail's own ceiling.

Default Lumx limits by verification level, in USD, from the Lumx docs read on November 1, 2026

Limit

KYC Standard

KYC Enhanced

KYB Standard

KYB Enhanced

Per transaction

7,500

25,000 and up

50,000

50,000 and up

Daily

15,000

50,000 and up

100,000

100,000 and up

Monthly

15,000

50,000 and up

100,000

100,000 and up

The rail ceiling matters for Colombia. Bre-B carries a regulatory cap of 1,000 UVB per transaction, set by the Banco de la República in Circular Reglamentaria Externa DSP-465, which is COP 12,110,000 for 2026 and about USD 2,870. The 2026 figure comes from the Banco de la República "Conozca Bre-B" page as read on November 1, 2026.

On Lumx, an on-ramp counts only against its own limit, so a deposit never uses up off-ramp or transfer headroom. Pass includeTransactionLimits=true when reading the customer to see the used and remaining amounts. A deposit that would pass a limit is rejected with a 422 and the code TRANSACTION_LIMIT_EXCEEDED, and a higher limit comes from an Enhanced KYC or KYB review, which the docs target at one business day.

Fees and failed deposits, in one place each

Fees come from three places: the rail's own charges, the conversion rate, and any fee the platform adds. A deposit that does not show up is almost always a missing reference, a wrong amount, a cut-off or a compliance hold, and the order to check is reference first, then amount, then the cut-off, then whether a review is open.

On Lumx, a platform adds its own fee by sending a partnerFeeId with the request. That fee sits on top of what the payer funds, so a BRL payer sends more reais for the same USDC credited.

When funding an on-ramp this way is the wrong tool

Funding from a bank account is the wrong tool when the payer already holds a stablecoin: USDC on a supported network should go straight to the wallet, with no conversion and no delay. It is also wrong for a payer who needs the money in minutes and only has ACH, because the answer there is a wire. And it is the wrong tool when one account collects for many payers who have not been onboarded, because that is a pooled account and the money cannot be tied to a person.

What funding an on-ramp looks like on 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.

Funding follows a short path: create the customer with the currencies it needs, wait for account.active, then give the payer the deposit details. The details carry the reference that matches a payment to the customer, so nobody matches by hand. Funds are delivered as USDC on Ethereum, Polygon or Base, or as USDT on Ethereum, Polygon or Tron, and BRL on-ramps can also deliver USDC on Stellar. A foreign company can hold a named account in BRL and MXN without a local entity in Brazil or Mexico, as set out in named virtual accounts, and the countries where Lumx onboards are on the supported countries page. For USD, the USD to USDC page covers the pair. Funding a payout comes next.

Methodology and sources

We read the Lumx docs on November 2, 2026 and the Nacha rules page on November 1, 2026.

Verified on November 1, 2026. Operational context, not legal, tax, or investment advice.

Cover photo: Miha Meglic on Unsplash.

  • How do you fund a stablecoin on-ramp?

    You pay fiat into the account the on-ramp converts from, over a rail the payer's bank offers, and the on-ramp converts it to USDC or USDT. The rail depends on the currency: Pix for BRL, SPEI for MXN, Bre-B or PSE for COP, ACH, FEDWIRE or SWIFT for USD, SEPA for EUR and Faster Payments for GBP. On Lumx, each customer has an account per currency, and the payer uses the deposit details the account returns, with a reference that matches the payment to the customer.

  • Can you fund a stablecoin on-ramp with ACH or a wire?

    Yes, for USD. The payer sends an ACH credit or a wire to the account's routing and account numbers, and the funds convert once they arrive. ACH takes 1 to 2 business days and has a 2:00 PM ET cut-off, and FEDWIRE settles the same business day with a 3:00 PM ET cut-off. On Lumx, one USD account takes ACH, FEDWIRE and SWIFT on the same details, and the payer starts the payment.

  • How long does it take to fund an on-ramp?

    It depends on the rail. Pix, SPEI, Bre-B and Faster Payments clear in seconds on any day, ACH takes 1 to 2 business days, FEDWIRE the same business day and SWIFT 1 to 5. A request after a cut-off, on a weekend or on a bank holiday waits for the next business day. On Lumx, a new account adds activation: BRL, MXN, EUR and GBP are immediate after approval and USD takes up to one business day.

  • What is the minimum and the limit for an on-ramp deposit?

    A standing conversion rule needs each deposit to be worth at least 50 USD in the account's currency. The cap is set by the customer's verification level: for a standard KYC individual, 7,500 USD per transaction and 15,000 USD per day. A business on standard KYB gets 50,000 per transaction and 100,000 per day. On Lumx, the limits are tracked per transaction type, so an on-ramp never uses up off-ramp headroom, and Bre-B in Colombia has its own 1,000 UVB cap per transaction.

  • Should a payer use standing account details or a payment per top-up?

    Standing details suit a payer who deposits often, because the same Pix code or CLABE works every time. A payment per top-up suits a payer who wants a fixed amount and rate before paying, and it expires if the payer is slow. On Lumx, an autoconversion rule returns standing deposit details, and an on-ramp transaction creates one payment with its own expiry of 1 day for Pix and SPEI or 7 days for other rails.

Stay up to date with what Lumx is developing.

Sign up to receive them by email.

Share on socials:

how-to-fund-a-stablecoin-on-ramp

A

how-to-fund-a-stablecoin-on-ramp

How to fund a stablecoin on-ramp: Pix, SPEI, PSE, ACH or wire

Copy link

Copied!

how-to-fund-a-stablecoin-on-ramp

TALK TO OUR TEAM

Ready to transform your business with stablecoins?

Discover how our infrastructure can seamlessly integrate stablecoins into your financial operations quickly, securely, and efficiently.

Guides

In this page

©2026. All rights reserved.

Lumx US OP LLC ("Lumx") is a financial technology and payments infrastructure company. Lumx US OP LLC is a Money Service Business (MSB) registered with the Financial Crimes Enforcement Network (FinCEN) (MSB #31000316459619). Lumx is not a state-licensed money transmitter and does not, in its own capacity, engage in the provision of regulated money transmission services. All such regulated activities are conducted exclusively through, and under the licenses of, duly authorized financial-institution partners.


Lumx is not a bank, financial institution, payment institution, or custodian of client funds. Certain services made available through the Platform may be provided by duly authorized and regulated third-party partners, in accordance with applicable laws and regulations.

Please refer to Lumx’s Terms of Use and Privacy Notice for further information regarding the conditions governing the use of the Platform and the processing of your personal data.