---
title: "Create Settlement"
method: POST
path: "/settlements"
tags: ["Settlements"]
---

# Create Settlement

`POST /settlements`

## Request body

- CreateSettlement
  - `from_pledge_id` string, uuid, required
  - `id` string, uuid, required
  - `inbound_transaction_intent` InboundTransactionIntent
    - `amount` integer, required
    - `to_account_id` integer, required
    - `to_address` string, required
  - `meta` object, required
  - `outbound_transaction_intent` union
    - BitcoinSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` union, required — The fee strategy for a Bitcoin send transaction.
        - BitcoinFeesStrategy
          - `data` BitcoinFeesStrategyData, required
            - `fees_per_byte` string, required — The fees per byte for the transaction, in the smallest currency unit..
          - `type` 'CUSTOM', required — Indicates a custom fee strategy for Bitcoin transactions.
        - GenericFeesStrategy
          - `data` GenericFeesStrategyData, required
            - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
          - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` BitcoinSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `currency` 'bitcoin' | 'bitcoin_testnet', required — Specific currency for Bitcoin transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'BITCOIN_LIKE_SEND', required — Type indicator for Bitcoin-like send transactions.
    - EthereumSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` union, required — The fee strategy for an Ethereum send transaction.
        - EthereumFeesStrategy
          - `data` union, required — Data specific to the Ethereum fee strategy.
            - EthereumFeesStrategyData
              - …
            - EthereumEIP1559FeesStrategyData
              - …
          - `type` 'CUSTOM', required — Indicates a custom fee strategy for Ethereum transactions.
        - GenericFeesStrategy
          - `data` GenericFeesStrategyData, required
            - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
          - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` EthereumSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `contract_address` string, nullable — The contract address of the ERC20 token, in case of a ERC20 send transaction.
        - `currency` 'arbitrum' | 'arbitrum_goerli' | 'avalanche_c_chain' | 'avalanche_c_chain_fuji' | 'base_goerli' | 'bsc' | 'celo' | 'celo_alfajores' | 'cronos' | 'cronos_testnet' | 'ethereum' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_pow' | 'ethereum_ropsten' | 'ethereum_sepolia' | 'fantom' | 'fantom_testnet' | 'filecoin' | 'filecoin_calibration' | 'flare' | 'flare_coston' | 'kava_evm' | 'kava_evm_testnet' | 'klaytn' | 'klaytn_baobab' | 'komodo' | 'optimism' | 'optimism_goerli' | 'polygon' | 'polygon_mumbai' | 'tomo' | 'tomo_testnet' | 'tron', required — Specific currency for Ethereum transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'ETHEREUM_LIKE_SEND', required — Type indicator for Ethereum-like send transactions.
    - EthereumExecuteContractTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` union, required — The fee strategy for an Ethereum execute contract transaction.
        - EthereumFeesStrategy
          - `data` union, required — Data specific to the Ethereum fee strategy.
            - EthereumFeesStrategyData
              - …
            - EthereumEIP1559FeesStrategyData
              - …
          - `type` 'CUSTOM', required — Indicates a custom fee strategy for Ethereum transactions.
        - GenericFeesStrategy
          - `data` GenericFeesStrategyData, required
            - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
          - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` EthereumSCITransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `contract_data` union
          - SCIData
            - `abi` object[], nullable — The array of function, event, and error descriptions in JSON format, representing the contract’s interface according to the ABI Specification.
              - …
            - `function_arguments` object, nullable — The JSON object with the arguments for the smart contract function execution, according to the provided contract_abi.
            - `function_name` string, nullable — Name of the contract method to call
          - string
        - `currency` 'arbitrum' | 'arbitrum_goerli' | 'avalanche_c_chain' | 'avalanche_c_chain_fuji' | 'base_goerli' | 'bsc' | 'celo' | 'celo_alfajores' | 'cronos' | 'cronos_testnet' | 'ethereum' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_pow' | 'ethereum_ropsten' | 'ethereum_sepolia' | 'fantom' | 'fantom_testnet' | 'filecoin' | 'filecoin_calibration' | 'flare' | 'flare_coston' | 'kava_evm' | 'kava_evm_testnet' | 'klaytn' | 'klaytn_baobab' | 'komodo' | 'optimism' | 'optimism_goerli' | 'polygon' | 'polygon_mumbai' | 'tomo' | 'tomo_testnet' | 'tron', required — Specific currency for Ethereum Smart Contract transactions.
        - `encoded_contract_data` string, nullable — (DEPRECATED) Encoded data for the smart contract interaction. This field is deprecated and will be removed in the future. Use contract_data instead.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'ETHEREUM_LIKE_EXECUTE_CONTRACT', required — Type indicator for Ethereum-like execute contract transactions.
    - EthereumDeployContractTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` union, required — The fee strategy for an Ethereum deploy contract transaction.
        - EthereumFeesStrategy
          - `data` union, required — Data specific to the Ethereum fee strategy.
            - EthereumFeesStrategyData
              - …
            - EthereumEIP1559FeesStrategyData
              - …
          - `type` 'CUSTOM', required — Indicates a custom fee strategy for Ethereum transactions.
        - GenericFeesStrategy
          - `data` GenericFeesStrategyData, required
            - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
          - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` EthereumSCDTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, nullable — The amount to be transferred, in the smallest currency unit.
        - `currency` 'arbitrum' | 'arbitrum_goerli' | 'avalanche_c_chain' | 'avalanche_c_chain_fuji' | 'base_goerli' | 'bsc' | 'celo' | 'celo_alfajores' | 'cronos' | 'cronos_testnet' | 'ethereum' | 'ethereum_goerli' | 'ethereum_holesky' | 'ethereum_pow' | 'ethereum_ropsten' | 'ethereum_sepolia' | 'fantom' | 'fantom_testnet' | 'filecoin' | 'filecoin_calibration' | 'flare' | 'flare_coston' | 'kava_evm' | 'kava_evm_testnet' | 'klaytn' | 'klaytn_baobab' | 'komodo' | 'optimism' | 'optimism_goerli' | 'polygon' | 'polygon_mumbai' | 'tomo' | 'tomo_testnet' | 'tron', required — Specific currency for Ethereum Smart Contract deployment.
        - `encoded_contract_bytecode` string, required — Encoded bytecode for the smart contract deployment.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
      - `transaction_type` 'ETHEREUM_LIKE_DEPLOY_CONTRACT', required — Type indicator for Ethereum-like deploy contract transactions.
    - RippleSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` GenericFeesStrategy, required
        - `data` GenericFeesStrategyData, required
          - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
        - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` RippleSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `currency` 'ripple', required — Specific currency for Ripple transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
        - `tag` integer, nullable — Destination tag for identifying Ripple transactions.
      - `transaction_type` 'RIPPLE_LIKE_SEND', required — Type indicator for Ripple-like send transactions.
    - StellarSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` GenericFeesStrategy, required
        - `data` GenericFeesStrategyData, required
          - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
        - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` StellarSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `currency` 'stellar', required — Specific currency for Stellar transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `memo` union — A valid memo for the Stellar transaction. See https://developers.stellar.org/docs/glossary/transactions/#memo.
          - StellarMemoHash1
            - `MEMO_HASH` string, required — Transaction Hash Memo (64 bytes hexadecimal string)
          - StellarMemoId1
            - `MEMO_ID` integer, required — Id Memo (unsigned 64 bits integer)
          - StellarMemoReturn1
            - `MEMO_RETURN` string, required — A 64 bytes hexadecimal string intended to be interpreted as the hash of the transaction the sender is refunding.
          - StellarMemoText1
            - `MEMO_TEXT` string, required — Text Memo (at most a 28 bytes string)
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'STELLAR_LIKE_SEND', required — Type indicator for Stellar-like send transactions.
    - TezosSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` GenericFeesStrategy, required
        - `data` GenericFeesStrategyData, required
          - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
        - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` TezosSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `currency` 'tezos', required — Specific currency for Tezos transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'TEZOS_LIKE_SEND', required — Type indicator for Tezos-like send transactions.
    - CardanoSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `fees_strategy` GenericFeesStrategy, required
        - `data` GenericFeesStrategyData, required
          - `speed` 'FAST' | 'NORMAL' | 'SLOW', required — The desired speed of the transaction.
        - `type` 'SPEED', required — The type of fee strategy based on transaction speed.
      - `transaction_data` CardanoSendTransactionData, required
        - `account_name` string, required — The name of the account initiating the transaction.
        - `amount` string, required — The amount to be transferred, in the smallest currency unit.
        - `currency` 'cardano', required — Specific currency for Cardano transactions.
        - `max_fees` string, required — The maximum fees the user is willing to pay for the transaction, in the smallest currency unit. Set to '0' when estimating transaction fees.
        - `recipient` string, required — The recipient's address for the transaction.
      - `transaction_type` 'CARDANO_LIKE_SEND', required — Type indicator for Cardano-like send transactions.
    - SolanaCreateAssociatedTokenAccountCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` SolanaCreateAssociatedTokenAccountTransactionData, required
        - `account_name` string, required — Sender account name for Solana transaction.
        - `currency` 'solana' | 'solana_devnet' | 'solana_testnet', required — Account currency for Solana transactions.
        - `max_priority_fee` string, nullable — Max priority fee to use for the transaction. Please refer to the `recommended_max_priority_fees` field from fee estimation or choose your own value. Once the feature is enabled, this field will become mandatory.
        - `token_mint` string, required — The token mint address of the token to create an account for
      - `transaction_type` 'SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT', required — Type indicator for Solana-like token account creation transactions.
    - SolanaSendSplTokenTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` SolanaSendSplTokenTransactionData, required
        - `account_name` string, required — Sender account name for Solana transaction.
        - `amount` string, required — Transaction amount for Solana, in the smallest currency unit.
        - `currency` 'solana' | 'solana_devnet' | 'solana_testnet', required — Account currency for Solana transactions.
        - `max_priority_fee` string, nullable — Max priority fee to use for the transaction. Please refer to the `recommended_max_priority_fees` field from fee estimation or choose your own value. Once the feature is enabled, this field will become mandatory.
        - `recipient` string, required — Transaction recipient address for Solana.
        - `token_mint` string, required — The token mint address of the token to interact with
      - `transaction_type` 'SOLANA_LIKE_SEND_SPL_TOKEN_CHECKED', required — Type indicator for Solana-like light token send transactions.
    - SolanaSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` SolanaSendTransactionData, required
        - `account_name` string, required — Sender account name for Solana transaction.
        - `amount` string, required — Transaction amount for Solana, in the smallest currency unit.
        - `currency` 'solana' | 'solana_devnet' | 'solana_testnet', required — Account currency for Solana transactions.
        - `max_priority_fee` string, nullable — Max priority fee to use for the transaction. Please refer to the `recommended_max_priority_fees` field from fee estimation or choose your own value. Once the feature is enabled, this field will become mandatory.
        - `recipient` string, required — Transaction recipient address for Solana.
      - `transaction_type` 'SOLANA_LIKE_SEND', required — Type indicator for Solana-like send transactions.
    - PolkadotSendTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotSendTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `amount` string, required — Transaction amount for Polkadot, in the smallest currency unit.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
        - `recipient` string, required — Transaction recipient address for Polkadot.
      - `transaction_type` 'POLKADOT_LIKE_SEND', required — Type indicator for Polkadot-like send transactions.
    - PolkadotBondExtraTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotBondExtraStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `amount` string, required — Amount for Polkadot bond extra transaction, in the smallest currency unit.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
      - `transaction_type` 'POLKADOT_LIKE_BONDEXTRA', required — Type indicator for Polkadot-like bond extra staking transactions.
    - PolkadotUnbondTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotUnbondStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `amount` string, required — Amount for Polkadot unbond transaction, in the smallest currency unit.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
      - `transaction_type` 'POLKADOT_LIKE_UNBOND', required — Type indicator for Polkadot-like unbond staking transactions.
    - PolkadotRebondTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotRebondStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `amount` string, required — Amount for Polkadot rebond transaction, in the smallest currency unit.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
      - `transaction_type` 'POLKADOT_LIKE_REBOND', required — Type indicator for Polkadot-like rebond staking transactions.
    - PolkadotSetPayeeTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotSetPayeeStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
        - `payee` 'Staked' | 'Stash', required — The new payee for the staking rewards.
      - `transaction_type` 'POLKADOT_LIKE_SETPAYEE', required — Type indicator for Polkadot-like set payee staking transactions.
    - PolkadotWithdrawTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotWithdrawStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
      - `transaction_type` 'POLKADOT_LIKE_WITHDRAWUNBONDED', required — Type indicator for Polkadot-like withdraw staking transactions.
    - PolkadotChillTransactionCreationData
      - `account_id` integer, required — Unique identifier of the sender's account.
      - `transaction_data` PolkadotChillStakingTransactionData, required
        - `account_name` string, required — Account name to execute transaction.
        - `currency` 'polkadot' | 'westend', required — Account currency for Polkadot transactions.
      - `transaction_type` 'POLKADOT_LIKE_CHILL', required — Type indicator for Polkadot-like chill staking transactions.
  - `repledge_intent` RepledgeIntent
    - `account_name` string, required
    - `amount` string, required
    - `contract_address` string, nullable
    - `currency` string, required
    - `exchange_name` string, required
    - `pledge_subaccount_id` integer, required
    - `to_address` string, nullable
    - `transaction_hash` string, nullable

## Response `200`

Settlement result

- Settlement
  - `from_pledge_id` string, uuid, required
  - `id` string, uuid, required
  - `inbound_transaction_intent` InboundTransactionIntent
    - `amount` integer, required
    - `to_account_id` integer, required
    - `to_address` string, required
  - `meta` object, required
  - `outbound_transaction` OutboundTransaction
    - `request_id` integer, required
    - `transaction_hash` string, nullable
    - `transaction_id` integer, required
  - `repledge` RepledgeRequest
    - `repledge_id` integer, required
    - `request_id` integer, required
  - `repledge_intent` RepledgeIntent
    - `account_name` string, required
    - `amount` string, required
    - `contract_address` string, nullable
    - `currency` string, required
    - `exchange_name` string, required
    - `pledge_subaccount_id` integer, required
    - `to_address` string, nullable
    - `transaction_hash` string, nullable
  - `state` string, required

## Other responses

- `400` — Invalid request data

---

[API](https://skmtc.net/ledgerhq/apis/vault-api.md) · [All operations](https://skmtc.net/ledgerhq/apis/vault-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ledgerhq/vault-api/revisions/c88faa17bc25/schema)
