Submit on-ramp
Partner Auth: EIP-191 signature by the partner's registered backend key, with X-Api-Deadline and optional X-Api-PublicKey headers. See the Signature and verify guide.
0x-prefixed 65-byte hex EIP-191 signature over the Partner Auth message. See the Signature and verify guide.
Unix seconds. UR rejects the request when the current time is past the deadline. Keep the validity window at or under 5 minutes.
0x-prefixed partner signer address registered with UR.
Send at least one of X-Ur-Id or X-External-User-Id. When both are present, UR resolves the user by X-Ur-Id first.
Send at least one of X-Ur-Id or X-External-User-Id. When both are present, UR resolves the user by X-Ur-Id first.
Partner-supplied idempotency key. Keep it stable across retries of the same logical operation.
quoteId from the On-ramp quote. Must match UR's cached quote and not be expired.
Source fiat currency symbol.
Source chain ID in CAIP-2 format.
Input amount as a human-readable decimal string. Must match the amount used for the cached quote.
Destination chain ID in CAIP-2 format.
External wallet that receives the crypto. Required for every On-ramp; the UR-managed account holds fiat only and never receives crypto.
best.to from the quote.
Destination token address.
best.swapCalldata from the quote.
best.minAmountOut from the quote.
Standard envelope. Business errors return HTTP 200 with a non-zero code.
Standard UR OpenAPI response envelope. code 0 means success; a non-zero code is a business error described by message.
0 on success; non-zero business error code.
Human-readable explanation. May be empty on success.
POST /api/fma/v1/onramp HTTP/1.1
Host: openapi.ur.app
X-Api-Signature: text
X-Api-Deadline: text
X-Api-PublicKey: text
Content-Type: application/json
Accept: */*
Content-Length: 365
{
"reqId": "onramp-2026-04-24-0001",
"quoteId": "onramp_direct_1703123000000_12345",
"fromCurrency": "EUR",
"chainId": "<src-chain-CAIP2>",
"amountIn": "100",
"dstChainId": "<dst-chain-CAIP2>",
"withdrawAddress": "0x_EXTERNAL_WALLET_ADDRESS",
"dstAggregator": "0xAggregatorAddress",
"dstTokenOut": "0x_DESTINATION_TOKEN_ADDRESS",
"dstSwapCalldata": "0x...",
"dstMinAmountOut": "1228327"
}Standard envelope. Business errors return HTTP 200 with a non-zero code.
{
"code": 0,
"message": "",
"data": {
"txHash": "0xabc123..."
}
}Last updated