Skip to main content

Base URL

Authentication

Endpoints use Bearer token authentication with your API key:
Some endpoints accept a client secret instead, passed in the request body or query string. Each session has its own client secret, returned when you create or retrieve the session. Client secrets are safe for client-side use since they only grant access to their specific session.

Error format

All errors return a JSON body:

Error types

HTTP status codes

Session object

The full session object (returned with API key authentication):
Without an API key, metadata and clientSecret are omitted. The destination above shows the EVM shape. For a Solana destination (USDC only), destination is instead:
A Solana destination uses the token mint as tokenAddress, omits chainId, chainName, and calldata, and its delivery.txHash is a Solana transaction signature.

SessionStatus

PaymentMethod

Three variants based on the source chain: EVM:
Tron:
Solana:
The source field is populated once the user’s deposit transaction is detected. Before that, only type, receiverAddress (for EVM/Tron), and createdAt are present. EVM and Tron are receiver-address flows. Solana is a sign-and-send flow: instead of a receiverAddress, the response returns a transaction payload for the wallet to execute in one click.

Create payment method response

When creating a payment method, chain-specific fields are returned alongside the session:
  • Tron: tron.receiverAddress (the Tron USDT address to send to), tron.expiresAt, and optionally tron.deeplinks.trustWallet for opening Trust Wallet’s USDT on Tron send flow
  • Solana: solana.serializedTx (hex-encoded serialized transaction for the wallet to sign and submit)
  • EVM: no additional fields; the deposit address is the session’s EVM deposit address