---
title: "Swap Currencies"
method: POST
path: "/wallets/swap"
---

# Swap Currencies

`POST /wallets/swap`

## Headers

- `api-key` string, required
- `Authorization` string, required

## Request body

- object
  - `userId` string, required — The Id of the user who is sending this transaction
  - `sourceAccountId` string, required — The Id of the account to debit
  - `destinationAccountId` string, required — The Id of the account to credit
  - `memo` string — An optional memo
  - `amount` string, required — The amount denominated in the smallest divisible unit of the sending currency. For example: cents or satoshis
  - `simulateFailure` boolean — 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
  - `ip` string, 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.
  - `fixedFee` string — 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.
  - `percentFeeBps` string — 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.
  - `proposedRate` string — 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`

200

- object
  - `challengeId` string
  - `dateExpires` string
  - `transaction` object
    - `syncedOwnerId` string
    - `sourceAccountId` string
    - `destinationAccountId` string
    - `amount` string
    - `memo` string
    - `status` string
    - `txType` string
    - `parentWalletId` string
    - `currency` string
    - `feeEstimate` object
      - `totalFee` string
      - `networkFee` string
      - `ourFee` string
      - `theirFee` string
      - `feeCurrency` string
      - `fixedFeeDetails` object
        - `amount` string
        - `exchangeRate` string
      - `percentageFeeDetails` object
        - `amount` string
  - `verificationMethod` string
  - `availableVerificationMethods` string[]
  - `fallbackViaResend` boolean

---

[API](https://skmtc.net/striga/apis/striga-v1.md) · [All operations](https://skmtc.net/striga/apis/striga-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/striga/striga-v1/versions/63e57aa7df45/schema)
