Request
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
src | object | Yes | Source account details |
src.currencyCode | string | Yes | Currency code (e.g., USD, USDC_GNO) |
src.details | object | Yes | Account-specific fields from requirements schema |
dest | object | Yes | Destination account details |
dest.currencyCode | string | Yes | Currency code |
dest.details | object | Yes | Account-specific fields |
srcAmount | string | Yes | Amount to transfer (see amount formatting) |
providerId | string | No | Specific provider to use (auto-selected if omitted) |
autoExecute | boolean | No | Auto-execute transaction after compliance (default: false) |
onboardingRedirectUrl | string | No | Redirect URL after compliance iframe completion |
The
type field (e.g., BANK_ACCOUNT, CRYPTO_ADDRESS) is not required in the request — it is auto-computed by the API based on the currency codes. The response will include the resolved type values.Response
Response Fields
| Field | Description |
|---|---|
intent | The created intent object |
intent.id | Unique intent identifier |
intent.status | Current status (see Intent Overview) |
intent.type | ONRAMP or OFFRAMP |
intent.provider | Selected provider |
onboardingUrl | URL for compliance iframe (null if auto-completed) |
transaction | Transaction object if auto-completed, otherwise null |
Auto-Complete
If the customer has already completed all compliance requirements (e.g., returning customer or KYC sharing):transaction is present and onboardingUrl is null, skip the compliance iframe and proceed to monitoring the transaction.
ONRAMP vs OFFRAMP
ONRAMP (Fiat → Crypto)
OFFRAMP (Crypto → Fiat)
For OFFRAMP, the
srcAmount uses crypto decimal precision (6 decimals for USDC).Next Steps
Handle Compliance
Show the onboarding iframe to users.
Execute Transaction
Trigger transaction execution.