Skip to main content
POST
Swap wallet balances
Supported pairs are USD to/from USDC and USD to/from USDT. Conversion is 1:1 with 3% deducted from proceeds. This converts wallet balances; it does not send funds on a blockchain. Direct USDC-to-USDT swaps are not supported.
Quote response:
Execute with "quote": false. A successful swap returns HTTP 200 with a completed transaction and its quote. Both wallets must be active and the source wallet must have sufficient balance.

Authorizations

Authorization
string
header
required

Use the full key from the merchant dashboard API section. Keep it on your server.

Body

application/json

Only USD to/from USDC or USDT. The currencies must differ. Conversion is 1:1, with 3% deducted from proceeds.

from_currency
enum<string>
required
Available options:
USD
to_currency
enum<string>
required
Available options:
USDC,
USDT
amount
string
required

Positive decimal string, not a JSON number. Zero is invalid. Currency-specific precision and payment limits also apply.

Pattern: ^[0-9]+([.][0-9]{1,18})?$
Example:

"100.00"

reference
string
required

Your idempotency reference, unique across charge, transfer, swap, and checkout creation within your organization. Reuse it with unchanged details for execution retries.

Required string length: 1 - 128
callback_url
string<uri>
required

HTTPS URL without embedded credentials. Required even for quotes. Receives signed payment callbacks.

Pattern: ^https://
Example:

"https://merchant.example/payments"

quote
boolean
default:true

True returns a quote without moving funds or creating a transaction. Set false to execute.

Response

Quote, or resolved execution. Only transaction.status = completed confirms payment.

status
enum<string>
required
Available options:
success
quote
object
required