Skip to main content
POST
cURL
Creates a cross-ramp transaction on behalf of a verified user. This converts one fiat currency to another (e.g., MXN to USD) and initiates the transfer to the target bank account.
For staging transaction testing, use the Mock Testing Guide.

Idempotency

Retry safely without creating duplicate transactions: pass an optional Idempotency-Key header (UUIDv4). A retry with the same key and body replays the original response. See the Idempotency Guide for the full contract.

Field Relationships

  • Provide either sourceAmount or targetAmount, not both.
  • Provide either targetBankAccount (inline bank details) or targetBankAccountId (reference to a saved bank account).
  • sourceCurrency and targetCurrency must differ.
  • targetCurrency must match the currency of the target bank account’s country.
  • receiverId is optional — when provided, the transaction is processed for that receiver.

Bank Account Requirements by Country


China & Hong Kong Destinations

USD can be delivered to bank accounts in China (CN) and Hong Kong (HK) as destination-only corridors:
  • USD only — CNY is not yet supported. Since source and target currencies must differ, the source currency must be MXN, DOP, or EUR.
  • targetCountry — set to "CN" or "HK" to route USD there (USD otherwise defaults to the US); resolved from the target bank account country when omitted.
  • targetRailLOCAL (default) or SWIFT.
  • invoiceFile — Base64-encoded PDF invoice, required when the target country is CN.
  • reference — optional memo (max 140 chars) forwarded to the payment provider. Supported across all currencies.
See the Cross-Ramp guide for the full flow.

Integration Flow

1

Create a user and complete KYC

2

Get a cross-ramp quote (optional)

POST /api/partner/v2/cross-ramp/quotes — locks the exchange rate
3

Create cross-ramp transaction

POST /api/partner/v2/cross-ramp (this endpoint)
4

User deposits source currency

The user deposits fiat in the source currency to the bank account in sourceBankAccount.

Important Notes

  • User must be KYC-verified before creating transactions.
  • Supported corridors: MX, DO, US, and SEPA countries. USD can also be delivered to CN (China) and HK (Hong Kong) as destination-only corridors.
  • Amount limits: Fiat amounts must fall within the min/max thresholds defined in your partner agreement.

Use Cases

  • International Remittances: Convert MXN to USD and send funds to a US bank account.
  • Multi-Currency Payouts: Deliver funds in a different fiat currency from the source deposit.
  • Cross-Border B2B Payments: Facilitate business payments across currencies.

Error Codes

Common Errors

Verified User Errors

Endpoint-Specific Errors

Authorizations

partner-api-key
string
header
required

API key for the affiliated partner performing the request.

Headers

Idempotency-Key
string

Optional. Unique key (UUIDv4 recommended) to safely retry this request without creating a duplicate transaction. A retry with the same key and body replays the original response. See /docs/idempotency.

Required string length: 16 - 128
Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

application/json
userId
string
required

User's identifier

Example:

"12a121ad-cbea-4ec4-9e0a-5c861e528bba"

sourceCurrency
enum<string>
required

Source currency symbol

Available options:
MXN,
DOP,
USD,
EUR
Example:

"MXN"

targetCurrency
enum<string>
required

Target currency symbol

Available options:
MXN,
DOP,
USD,
EUR
Example:

"USD"

targetBankAccount
object

User bank info to be saved

targetBankAccountId
string

ID of an existing bank account to use as the target. Either targetBankAccount or targetBankAccountId must be provided.

sourceAmount
number

Amount of currency from source

targetAmount
number

Amount of currency that will be delivered

quoteId
string

Identifier for the quote to be used for the transaction.

premiumSpread
number

Premium spread percentage

targetCountry
enum<string>

Target country. Required to route USD to China (CN) or Hong Kong (HK), since USD otherwise defaults to the US. Resolved from the target bank account country when omitted.

Available options:
MX,
DO,
US,
AT,
BE,
BG,
HR,
CY,
CZ,
DK,
EE,
FI,
FR,
DE,
GR,
HU,
IE,
IT,
LV,
LT,
LU,
MT,
NL,
PL,
PT,
RO,
SK,
SI,
ES,
SE,
IS,
LI,
NO,
CH,
GB,
MC,
SM,
AD,
VA,
CN,
HK
targetRail
enum<string>

Target payment rail for CN/HK destinations. Defaults to LOCAL; use SWIFT for an international wire.

Available options:
LOCAL,
SWIFT
invoiceFile
string

Base64-encoded PDF invoice. Required when the target bank account country is CN (China).

reference
string

Free-text remittance reference / memo (max 140 chars) forwarded to the payment provider. Supported across all currencies.

Maximum string length: 140

Response

Cross-ramp transaction created successfully. Returns the transaction details, including its id and current status.

success
boolean
Example:

true

data
object