---
title: "Dry Run Order"
method: POST
path: "/dry-run-orders"
tags: ["orders"]
---

# Dry Run Order

`POST /dry-run-orders`

## Request

- Base URL: `https://api.copper.co/platform`
- URL: `https://api.copper.co/platform/dry-run-orders`
- Auth: none declared
- TypeScript: <https://skmtc.dev/copper-co/apis/copper-platform-api/docs/dry-run-orders/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- DryRunOrderRequest
  - `amount` string
  - `baseCurrency` string, required
  - `blockchainTransactionType` 'send' | 'multi-withdraw' | 'account-set' | 'approve-hot-key' | 'approve-builder-fee' | 'allowance' | 'smart-call' | 'multi-smart-call' | 'activate' | 'activate-trading' | 'stake-delegation' | 'stake-nomination' | 'stake-undelegation' | 'complete-withdrawal' | 'stake-complete-deposit' | 'take-reward' | 'claim-builder-rewards' | 'pool-creation' | 'edit-pool' | 'governance-vote' | 'unjail' | 'importance-transfer' | 'transfer-stake' | 'rebond-stake' | 'chill' | 'cross-chain-send' | 'accept-deposit' | 'reject-deposit' | 'allocate' | 'reject-allocation' | 'create-allocation-request' | 'settle-allocations' | 'cancel-allocations' | 'create-referral' | 'set-referral' | 'set-trading'
  - `deliveryType` 'free-of-payment' | 'payment-vs-payment'
  - `feeLevel` 'low' | 'medium' | 'high'
  - `includeFeeInWithdraw` boolean
  - `limitType` 'otc' | 'rfq'
  - `mainCurrency` string
  - `memo` string
  - `orderType` 'sell' | 'buy' | 'deposit' | 'withdraw' | 'multi-withdraw' | 'wallet-message' | 'retrieved-deposit' | 'earn-reward' | 'earn-shared-reward' | 'claim-shared-reward' | 'cross-chain-deposit' | 'cross-chain-withdraw', required
  - `payload` string
  - `payloads` string[]
  - `portfolioId` string, required
  - `priceLimit` string
  - `quoteAmount` string
  - `quoteCurrency` string
  - `quoteMainCurrency` string
  - `requestedNetworkFees` RequestedNetworkFees
    - `feePerByte` string
    - `gasLimit` string
    - `gasPriceGwei` string
    - `maxFeePerGas` string
    - `maxPriorityFeePerGas` string
  - `toCounterpartyId` string
  - `toCryptoAddressId` string
  - `toInvoiceId` string
  - `toLendingInvoiceId` string
  - `toPortfolioId` string

## Response `200`

OK

- DryRunOrder
  - `amount` string
  - `baseCurrency` string, required
  - `extra` OrderExtra
    - `availableCoSigners` string[]: The ids of user who can approve an order. If not set, anybody with Approver permission can approve
    - `availableSnapshot` string: Snapshot of a wallet available balance at the moment of order termination
    - `balanceSnapshot` string: Snapshot of a wallet balance at the moment of order termination
    - `blockchainTransactionType` 'send' | 'multi-withdraw' | 'account-set' | 'approve-hot-key' | 'approve-builder-fee' | 'allowance' | 'smart-call' | 'multi-smart-call' | 'activate' | 'activate-trading' | 'stake-delegation' | 'stake-nomination' | 'stake-undelegation' | 'complete-withdrawal' | 'stake-complete-deposit' | 'take-reward' | 'claim-builder-rewards' | 'pool-creation' | 'edit-pool' | 'governance-vote' | 'unjail' | 'importance-transfer' | 'transfer-stake' | 'rebond-stake' | 'chill' | 'cross-chain-send' | 'accept-deposit' | 'reject-deposit' | 'allocate' | 'reject-allocation' | 'create-allocation-request' | 'settle-allocations' | 'cancel-allocations' | 'create-referral' | 'set-referral' | 'set-trading'
    - `clearLoop` boolean: Indicates whether the order is a part of ClearLoop
    - `clearLoopExtra` ClearLoopExtra
      - `clearLoopExternalNetted` boolean: Whether the order is linked to the ClearLoop multi-custody model that works by netting settlement amounts
      - `clearLoopSettlementId` string: Id uniquely identifying the ClearLoop settlement the order is part of
    - `clientAccountId` string: Unique client exchange's account identifier used for ClearLoop
    - `coSigners` string[]: The ids of user who has approved an order
    - `coSignersNumber` string: The number of required approves for an order
    - `confirmations` string: Number of confirmations for a blockchain transaction
    - `counterpartyPortfolioId` string
    - `deliveryType` 'free-of-payment' | 'payment-vs-payment'
    - `depositOrderId` string: The ID of a deposit order where a withdraw was made to
    - `depositOrigin` string
    - `depositTargetId` string: The ID of a deposit target where an order was made to
    - `description` string: The description of the order
    - `estimatedFees` FeeEstimation
      - `baseFeePerGas` string: The base fee for the block in Gwei
      - `estimatedTime` string: The estimated time in milliseconds for the transaction to be confirmed
      - `fee` string, required: The amount of the fee
      - `feeCurrency` string, required: The currency in which the fee is denominated
      - `feePerByte` MinimalUnit
      - `feeType` string
      - `gasLimit` MinimalUnit
      - `gasPriceGwei` string: The gas price in Gwei
      - `maxFeePerGas` string: The max gas fee wiling to pay in Gwei
      - `maxPriorityFeePerGas` string: The max priority fee wiling to pay in Gwei
      - `reportingCurrencyRate` string: The fee amount in the reporting currency
      - `transactionBytes` string: The number of bytes in the transaction
    - `externalBroadcast` boolean: Withdraw is requested to be processed by external system. In that case we don't broadcast it to blockchain
    - `feeLevel` 'low' | 'medium' | 'high'
    - `fees` FeeEstimation[]: The fees for an order
      - `baseFeePerGas` string: The base fee for the block in Gwei
      - `estimatedTime` string: The estimated time in milliseconds for the transaction to be confirmed
      - `fee` string, required: The amount of the fee
      - `feeCurrency` string, required: The currency in which the fee is denominated
      - `feePerByte` MinimalUnit
      - `feeType` string
      - `gasLimit` MinimalUnit
      - `gasPriceGwei` string: The gas price in Gwei
      - `maxFeePerGas` string: The max gas fee wiling to pay in Gwei
      - `maxPriorityFeePerGas` string: The max priority fee wiling to pay in Gwei
      - `reportingCurrencyRate` string: The fee amount in the reporting currency
      - `transactionBytes` string: The number of bytes in the transaction
    - `fromAddresses` string[]: List of addresses from which the deposit was made. This is an array because, on some blockchains like Bitcoin (BTC), the sending address can include multiple input UTXO addresses
    - `fromCounterpartyId` string: The ID of a counterparty where an order was made from
    - `fromCryptoAddress` CryptoAddress
      - `_embedded` CryptoAddressEmbedded
        - `currencyConfigurations` CurrencyConfiguration[]: Crypto address currency configuration
          - `createdAt` string, required: Created at timestamp
          - `createdBy` string, required: Created by user id
          - `cryptoAddressId` string, required: Crypto address id
          - `currency` string, required: Currency of an address
          - `currencyConfigurationId` string, required: Currency configuration id
          - `extra` CurrencyConfigurationExtra
          - `isWhitelist` boolean, required: Indicates, if an address is whitelisted
          - `lastUsedAt` string: Last used at
          - `portfolioIds` string[]: Portfolio ids, if address set for particular portfolios
          - `updatedAt` string: Last updated Updated at timestamp
          - `updatedBy` string: Updated by user id
      - `acceptTokens` boolean: Indicates an address can be used for tokens on the same blockchain network
      - `address` string, required: Address
      - `addressTags` AddressTag[]: Address tags
      - `addressType` 'externally-owned-account' | 'internal-account' | 'smart-contract' | 'payable-smart-contract', required
      - `category` 'smart-contract' | 'payable-smart-contract' | 'mining' | 'unknown' | 'self-hosted' | 'vasp'
      - `createdAt` string, required: Created at timestamp
      - `createdBy` string, required: Created by user id
      - `cryptoAddressId` string, required: Crypto address id
      - `currency` string, required: Currency of an address
      - `extra` CryptoAddressExtra
      - `isWhitelist` boolean, required: Indicates, if an address is whitelisted
      - `lastUsedAt` string: Last used at
      - `mainCurrency` string: Main currency of an address
      - `memo` string: Address memo (destination tag for XRP)
      - `name` string, required: Name of an address
      - `organizationId` string: Organization id
      - `portfolioIds` string[]: Portfolio ids, if address set for particular portfolios
      - `updatedAt` string: Last updated Updated at timestamp
      - `updatedBy` string: Updated by user id
    - `fromCryptoAddressId` string: The ID of a crypto address where an order was made from
    - `fromPortfolioId` string: The ID of a portfolio where an order was made from
    - `includeFeeInWithdraw` boolean: Indicates whether the fee should be included in the withdrawal amount or added on top of it
    - `invoiceId` string: The ID of an invoice where an order was made to
    - `marketPrice` string
    - `memo` string: Withdraw memo (destination tag for XRP)
    - `nextTransferTo` WithdrawTarget[]: The remain list of next transfer targets
      - `cryptoAddressId` string
      - `portfolioId` string
      - `targetType` 'external' | 'portfolio', required
    - `originalDepositAmount` string: Amount of the original deposit transaction
    - `partSigned` UploadPartSignedTx
    - `payload` string: Serialized [data](https://ethereum.org/en/developers/docs/transactions/#the-data-field) payload for a smart contract
    - `payloads` string[]: Serialized list of unsigned transactions. For Ethereum only type 0 (legacy) transactions are supported
    - `reportingCurrencyRate` string: The snapshot of a base currency rate at the moment of order creation
    - `reportingQuoteCurrencyRate` string: The snapshot of a quote currency rate at the moment of order creation
    - `signed` UploadFullSignedTx
    - `spenderAddress` string: For ETH Approve transaction store spender address
    - `terminatedReportingCurrencyRate` string: The snapshot of a base currency rate at the moment of order termination
    - `toAddress` string: The address where the funds should be transferred
    - `toCounterpartyId` string: The ID of a counterparty where an order was made to
    - `toCryptoAddressId` string: The ID of a crypto address where an order was made to
    - `toInvoiceId` string: The ID of an invoice where an order was made to
    - `toLendingInvoiceId` string: The ID of an lending invoice where an order was made to
    - `toPortfolioId` string: The ID of a portfolio where an order was made to
    - `totalQuoteAmount` string: The amount of a quote currency in an order
    - `transactionId` string: The blockchain transaction ID on an order
    - `transactionRequest` object: Data which needs to be passed to Copper Unlimited to sign the transaction
    - `transferAmount` string: Amount transferred from proxy to destination
    - `transferChainId` string: The ID to identify orders, created as a part of the same order chain
    - `transferDepositTargetId` string: The deposit target ID of the proxy address for the transfer
    - `transferFees` string: Network fees required for transferring from proxy to destination
    - `transferFeesCurrency` string: Currency of fees paid for transferring from proxy to destination
    - `transferTransactionId` string: The hash of the transaction transferring funds from proxy to destination
    - `withdrawFee` string: The amount of fees for the order
    - `withdrawOrderId` string: The ID of a withdraw order where a deposit was made from
  - `mainCurrency` string
  - `orderType` 'sell' | 'buy' | 'deposit' | 'withdraw' | 'multi-withdraw' | 'wallet-message' | 'retrieved-deposit' | 'earn-reward' | 'earn-shared-reward' | 'claim-shared-reward' | 'cross-chain-deposit' | 'cross-chain-withdraw', required
  - `portfolioId` string, required
  - `warning` Warning
    - `code` string
    - `message` string, required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `409`: Conflict

---

[API](https://skmtc.dev/copper-co/apis/copper-platform-api.md) - [All operations](https://skmtc.dev/copper-co/apis/copper-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/copper-co/apis/copper-platform-api/revisions/44296120fc7d?raw)
