v18

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-013469188.5 KB
Onramp

Mint a signed Swapped Connect URL (CEX funding)

Returns a signed Swapped Connect URL the modal embeds in an iframe so the user can fund from a centralized exchange. Current callers send the exact picker rate as acceptedExchangeFeeBps; omission preserves legacy fee-free delivery, while a stale rate returns 409 before any URL or session state is minted. Requires a configured public webhook callback URL.

post/onramp/swapped/connect-url

Headers

x-api-keystring

API key for authentication (omit when sending Authorization)

Example:your-api-key

API key for authentication (omit when sending Authorization)

authorizationstring

Bearer platform token (e.g. forwarded by user-service). Takes precedence over x-api-key when both are present.

Example:Bearer eyJhbGciOi...

Bearer platform token (e.g. forwarded by user-service). Takes precedence over x-api-key when both are present.

x-user-countrystring

Trusted edge-resolved ISO country. When present it overrides body.baseCountry and x-client-ip, and enables country-specific payment-method validation.

Example:PH

Trusted edge-resolved ISO country. When present it overrides body.baseCountry and x-client-ip, and enables country-specific payment-method validation.

x-client-ipstring

The end user's IP address as observed by the edge, for edges that can name the IP but cannot resolve a country themselves (no local GeoIP database). Used only when x-user-country is absent, and ignored unless it is a publicly-routable address. Prefer x-user-country when your edge already has a country — for example Cloudflare's cf-ipcountry — since it needs no lookup here.

Example:203.0.113.7

The end user's IP address as observed by the edge, for edges that can name the IP but cannot resolve a country themselves (no local GeoIP database). Used only when x-user-country is absent, and ignored unless it is a publicly-routable address. Prefer x-user-country when your edge already has a country — for example Cloudflare's cf-ipcountry — since it needs no lookup here.

Request body

smartAccountstring required

Ethereum address (0x followed by 40 hex characters)

baseCountrystring

ISO-3166-1 alpha-2 country code

baseCurrencyCodestring

ISO fiat currency code

localestring
connectionstring
acceptedExchangeFeeBpsinteger

Example request

{
  "smartAccount": "0x742d35Cc6634C0532925a3b844Bc9e7595f5bE91",
  "baseCountry": "US",
  "baseCurrencyCode": "USD"
}

Response

Signed Connect URL

oktrue required
urlstring required
currencyCodestring required
sandboxboolean required
externalCustomerIdstring required
expiresAtstring required
exchangeFeeBpsinteger