Universal On-Ramp API
Convert your users’ fiat into XRP or RLUSD on the XRPL. One POST request.
How it works
- 1Send a checkout request
POST to
/api/v1/checkoutwithsettlementCurrencyanddestinationAddress. - 2Customer pays
XRPay returns a hosted checkout URL. The customer pays via card or bank transfer.
- 3Funds settle on XRPL
Settlement lands in the customer’s XRPL wallet as XRP or RLUSD.
Authentication
Pass your publishable key in the apiKey body field. Test keys start with pk_test_, live keys with pk_live_.
Get your keys from Dashboard → API Keys.
Request
/api/v1/checkoutParameters
Example
Trustline requirements
Important
400.If your app pre-validates trustlines, pass
skipTrustlineCheck: true to bypass this check. XRP settlements don’t require trustlines.Error codes
Settlement notifications
Two ways to know when funds land in the destination wallet.
1. Webhooks (recommended)
Register an HTTPS endpoint to receive real-time events. Uses your secret key (sk_test_ / sk_live_), not your publishable key.
When the XRPL transaction is validated, XRPay sends a payment.confirmed POST to your URL:
The tx_hash is the on-ledger XRPL transaction hash. Verify it independently on any XRPL explorer or via the tx RPC command.
Available events for on-ramp flows:
HMAC verification
Every webhook carries an X-XRPay-Signature header. Verify it with the whsec_ secret returned at registration:
2. Status polling (fallback)
If you can’t receive webhooks, poll the status endpoint:
/api/v1/status?paymentId=txn_abc123Returns the current payment status. Poll every 5–10 seconds until status is confirmed or failed.
Next Steps
Try the live API in the interactive playground.