Skip to main content
Swap balance between your own wallets — for example, move funds from your USD balance into your USDC balance. Rates and fees are set by Yativo per currency pair; only the pairs listed by GET /wallet/swap/pairs are available, and more may be added over time. All endpoints use the standard authenticated request context (API key + bearer token) and live under /api/v1/wallet/swap. Amounts in requests and responses are in major units (100.50 means 100.50), not cents.

How a swap is priced

The fee is charged in the currency you swap from, and is taken off before conversion:
You are debited amount in total. For example, swapping 100 USD to USDC at a rate of 0.998 with a 0.50 fixed fee and a 1% fee:
  • fee = 0.50 + 1.00 = 1.50 USD
  • received = (100 − 1.50) × 0.998 = 98.30 USDC
Always call quote first to show the exact figures — rates and fees can change.

List available pairs

Pairs are one-directional: USD → USDC and USDC → USD are separate pairs with their own rate and fees. null means no limit.

Get a quote

Prices the swap without moving any money:

Swap

Send an idempotency key so a retried request can’t swap twice: repeating a key returns the original swap instead of creating a new one. The debit and credit happen together — if either fails, neither is applied. If you don’t have a wallet in to_currency yet, it is created for you.
Each swap also appears in your transaction history as two entries of type swap — the debit and the credit.

Swap history

The list is paginated, newest first, and accepts per_page. Each item has the same shape as the swap response above.

Errors

Errors use the standard envelope. Swap and quote validation failures return 422 with a message such as: GET /wallet/swap/{reference} returns 404 for a reference that isn’t yours.

Team members

Team members need the wallets view permission to list pairs, get quotes and see history, and wallets manage to execute a swap. Members with the read-only viewer role can list pairs and history but can’t request quotes or swap, since both are POST requests.