Skip to main content
When the hosted page and the component do not fit, build the screens yourself. Useroutr still does the hard part: it prices the route, creates the deposit account, detects the payment and settles it. You decide how each step looks.

The flow

1

Create the funding intent

2

Let your user pick an asset

Offer the assets Useroutr can take. network and symbol are for display; the id is what you send back.
If your user holds the asset you asked for, skip to step 4: no quote is needed.
3

Quote and lock the route

A quote says how much of your user’s asset covers your requirement. Selecting it locks the price and switches the intent’s instructions to that asset.
See Quotes and routes for exact-input quotes, slippage and routes across networks.
4

Show the funding instructions

Read the intent again and show exactly what funding_instructions says.
No memo is needed: the deposit address alone identifies the intent.
5

Follow the payment

Listen for webhooks on your server, or poll the intent. Show progress from its status: PARTIALLY_FUNDED means send the rest, PAYMENT_CONFIRMED onward means received, CREDITED means done.

Building it in the browser

Your browser code can read an intent’s state without an API key through the public checkout endpoints, addressed by the funding token. @useroutr/checkout-core wraps them together with the checkout’s state machine, so you get the same states the embedded checkout uses and render them your way.
The controller also takes your user’s choices: selectMethod, selectNetwork and selectAsset, plus back and retry. Call stop when the screen goes away. Creating the intent, quoting for amounts you decide and reading your ledger stay on your server, with your API key.