v1

latestOpenAPI 3.1.02026-07-26165182724.7 KB

Swap Currencies

post/wallets/swap

Headers

api-keystring required

api-key is available on the dashboard

Authorizationstring required

Request body

userIdstring required

The Id of the user who is sending this transaction

sourceAccountIdstring required

The Id of the account to debit

destinationAccountIdstring required

The Id of the account to credit

memostring

An optional memo

amountstring required

The amount denominated in the smallest divisible unit of the sending currency. For example: cents or satoshis

simulateFailureboolean

The simulateFailure key is a boolean value that, when set to true, instructs the API to simulate a failed case. This feature is only available in a sandbox environment

ipstring required

IP address collected as the IP address from which the End User is making the swap request. IMPORTANT - This will be a required parameter from the 15th of June 2023 and is optional until then.

fixedFeestring

Optional fixedFee in Euro cents to override the default application fee configuration. This amount can only be <= the default configured amount for this transaction type.

percentFeeBpsstring

Optional percentage fee in bps to override the default application fee configuration. This amount can only be <= the default configured amount for this transaction type.

proposedRatestring

The proposed swap rate must be within 3% above or below the current market rate and can have a maximum of 6 decimal places.

verificationMethod'sms' | 'passkey' | 'totp'

SCA factor one of sms (default), totp, or passkey. EUR and USDC sources only accept sms or passkey (Dynamic Linking required); non-regulated crypto sources accept all three

Response

200

challengeIdstring
dateExpiresstring
verificationMethodstring
availableVerificationMethodsstring[]
fallbackViaResendboolean

Example response

{
  "challengeId": "00fbe696-18f7-43e7-9ed3-71c8ee6e65b2",
  "dateExpires": "2026-05-26T04:13:04.313Z",
  "transaction": {
    "syncedOwnerId": "e1b66f40-9ac6-4bdd-b49d-b74e46bedf12",
    "sourceAccountId": "96c8188ee9a74f8c7ee32ebd99c12c2e",
    "destinationAccountId": "79c628a306f29ab612b8ea27550f7431",
    "amount": "2000",
    "memo": "cultivate cross-platform blockchains",
    "status": "PENDING_2FA_CONFIRMATION",
    "txType": "SWAP_CURRENCY_INITIATED",
    "parentWalletId": "2e8f7d09-0fed-4f2a-959a-bf1f67a5ccdf",
    "currency": "EUR",
    "feeEstimate": {
      "totalFee": "0",
      "networkFee": "0",
      "ourFee": "0",
      "theirFee": "0",
      "feeCurrency": "EUR",
      "fixedFeeDetails": {
        "amount": "0",
        "exchangeRate": "0"
      },
      "percentageFeeDetails": {
        "amount": "0"
      }
    }
  },
  "verificationMethod": "sms",
  "availableVerificationMethods": [
    "sms"
  ]
}