Skip to main content
The on-ramp turns the user’s local currency into crypto delivered to a wallet address. The first half of the flow is the same everywhere; the second half depends on how they pay.

The shared path

1

Choose an amount and a cryptocurrency

The widget quotes the operation and refreshes that quote on a timer, so the rate the user confirms is the rate they get. Minimums and maximums come from the transaction limits that apply to your account.Amount entry showing the quote and the countdown to the next refresh
2

Choose a network

Limited to the networks enabled for your account.
3

Confirm the destination address

Prefilled when you passed _addr, or when the user has an address on file. Otherwise they enter it.
4

Choose how to pay and confirm

Only the payment methods enabled for your account and country are offered. The confirmation screen breaks the cost down before the user commits.Confirmation screen with the full cost breakdown

Where the flow goes from there

Only the transfer-instruction screens append transaction parameters to your redirect URL. For Brazil, Nequi and every gateway flow, build your post-purchase experience on On-Ramp Events keyed by external_ref. See Returning to your app.
In Brazil the user’s deposit account has to be provisioned before a PIX key can be issued. When it is not ready yet the widget keeps polling and shows a waiting state rather than failing the order.

What your backend observes

The operation produces the ordinary on-ramp event chain, whichever way the user paid: ON-RAMP.DEPOSIT.RECEIVEDON-RAMP.TRADE.COMPLETEDON-RAMP.WITHDRAWAL.PROCESSINGON-RAMP.WITHDRAWAL.COMPLETED If it fails instead, you get ON-RAMP.ORDER.CANCELLED with a failureReason, and the money is returned to the user — see History and refunds. Full payloads are in On-Ramp Webhook Events.