---
title: "Swap Currencies"
method: POST
path: "/business/swap"
tags: ["wallets"]
---

# Swap Currencies

`POST /business/swap`

Swap currencies between accounts

## Request body

- BusinessSwapCurrencyRequest
  - `businessId` string, uuid, required — Unique Id of the business who is sending this transactions
  - `sourceAccountId` string, required — The Id of the account to debit
  - `destinationAccountId` string, required — The Id of the account to credit
  - `amount` string, required — The amount denominated in the smallest divisible unit of the sending currency. For example, cents or satoshis
  - `ip` string, ipv4, required — IP address collected as the IP address from which the End User is making the swap request
  - `memo` string — Optional memo - Alphanumeric string upto 15 characters in length
  - `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
  - `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.

## Response `200`

success

- BusinessSwapCurrencyResponse
  - `id` string, required
  - `sourceAccountId` string, required
  - `destinationAccountId` string, required
  - `memo` string, required
  - `status` string, required
  - `txType` string, required
  - `order` object, required
    - `id` string
    - `price` string
    - `type` string
    - `ticker` string
    - `debit` object
      - `currency` string
      - `amountFloat` string
      - `amount` string
    - `credit` object
      - `currency` string
      - `amountFloat` string
      - `amount` string
  - `datetime` string, date-time, required
  - `balanceBefore` object, required
    - `balance` string
    - `amount` string
    - `currency` string
  - `balanceAfter` object, required
    - `balance` string
    - `amount` string
    - `currency` string
  - `sourceSyncedOwnerId` string, required
  - `destinationSyncedOwnerId` string, required
  - `feeEstimate` object, required
    - `totalFee` string
    - `networkFee` string
    - `ourFee` string
    - `theirFee` string
    - `feeCurrency` string
    - `fixedFeeDetails` object
      - `amount` string
      - `exchangeRate` string
      - `appliedFeeCents` string
    - `percentageFeeDetails` object
      - `amount` string
      - `appliedFeeBps` string

## Other responses

- `400` — Bad Request. The request was unacceptable, often due to missing a required parameter.
- `401` — Invalid authentication header
- `403` — Forbidden
- `500` — Unexpected server error.

---

[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)
