Mesh Connect Transfers API

### Supported integrations: ```Robinhood``` ```Coinbase``` ```Kraken``` ```CoinbasePro``` ```CryptoCom``` ```Binance``` ```Gemini``` ```OkCoin``` ```KuCoin``` ```BinanceInternational``` ```Bitstamp``` ```GateIo``` ```Okx``` ```Huobi``` ```Bitfinex``` ```KrakenDirect``` ```BinanceInternationalDirect``` ```Bybit``` ```Paxos``` ```CoinbasePrime``` ```DeFiWallet``` ### Integration-specific notes: #### Robinhood: Cryptocurrency transfers should be enabled in Robinhood settings. Transfers are disabled by default, enabling them for end users requires a review from Robinhood. Please note: * `MfaCode` parameter is required to initiate a transaction in Robinhood. * The user's security settings should be configured to use an authenticator application. * Robinhood doesn't allow initiation of transactions if the authenticator application is not configured. #### Coinbase: `MfaCode` parameter should be used to initiate transactions in Coinbase. * If the end user's Coinbase account is configured to use text messages (SMS) for two factor authentication, the API will return `MfaRequired` status, and a text code will then be sent by Coinbase. The code is expected to be provided in the subsequent call using the `MfaCode` request field * If the account is configured to use an authenticator application, the API is expecting to get the code in the `MfaCode` request field. #### Kraken: Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint. To initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used. #### CoinbasePro: * CoinbasePro does not provide multiple chains per a symbol, so default chains are used for getting Deposit addresses. #### Binance: `Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance Us. Binance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available. #### KuCoin: KuCoin requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. `Fee` parameter should be used to initiate a transaction in KuCoin. Please note: * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * All currencies have their minimum `fee` and `amount` requirements. Please use `symbol/details` endpoint to get this data for a particular symbol. * KuCoin requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one. #### BinanceInternational: `Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance International. Binance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission. * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available. #### GateIo: Gate.io requires adding IP address to the list of trusted IP addresses to be able to initiate a cryptocurrency transfers. Withdrawal address should be already verified or added on the Gate.io UI (in mobile application or on the web site). * Please reach out to Front to get the static IP address for withdrawals. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses. * Only verified withdrawal blockchain addresses are allowed for withdrawal with Gate.io API. * Gate.io requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one. #### Huobi: Warning: Huobi does not refund executed deposits that are below the `Minimum Deposit Amount` * Please check the MinimumDepositAmount in Get Deposit Address response in order to avoid making a deposit below the minimum amount * Huobi does not allow withdrawals to addresses that are not white-listed, please add the address that you would like to withdraw to the white list of addresses through the UI so that a withrawal can be processed #### Bitfinex: * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id. * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts. #### KrakenDirect: Kraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint. To initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.

Operations 5

POST /api/v1/transfers/list Get transfer history
POST /api/v1/transfers/details Get transfer details
POST /api/v1/transfers Initiate a transfer
POST /api/v1/transfers/address/get Get deposit address
POST /api/v1/transfers/symbol/details Get details of asset

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mesh-connect-transfers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mesh-connect-transfers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Admin Assets Transfers API
  version: v1
  description: "\n\n### Supported integrations:\n```Robinhood```\n```Coinbase```\n```Kraken```\n```CoinbasePro```\n```CryptoCom```\n```Binance```\n```Gemini```\n```OkCoin```\n```KuCoin```\n```BinanceInternational```\n```Bitstamp```\n```GateIo```\n```Okx```\n```Huobi```\n```Bitfinex```\n```KrakenDirect```\n```BinanceInternationalDirect```\n```Bybit```\n```Paxos```\n```CoinbasePrime```\n```DeFiWallet```\n\n\n### Integration-specific notes:\n\n\n#### Robinhood:\n\n\nCryptocurrency transfers should be enabled in Robinhood settings. Transfers are disabled by default, enabling them for end users requires a review from Robinhood.\n\nPlease note:\n * `MfaCode` parameter is required to initiate a transaction in Robinhood.\n * The user's security settings should be configured to use an authenticator application.\n * Robinhood doesn't allow initiation of transactions if the authenticator application is not configured.\n\n\n#### Coinbase:\n\n\n`MfaCode` parameter should be used to initiate transactions in Coinbase.\n * If the end user's Coinbase account is configured to use text messages (SMS) for two factor authentication, the API will return `MfaRequired` status, and a text code will then be sent by Coinbase. The code is expected to be provided in the subsequent call using the `MfaCode` request field\n * If the account is configured to use an authenticator application, the API is expecting to get the code in the `MfaCode` request field.\n\n\n#### Kraken:\n\n\nKraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint.\n\nTo initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.\n\n\n#### CoinbasePro:\n * CoinbasePro does not provide multiple chains per a symbol, so default chains are used for getting Deposit addresses.\n\n\n#### Binance:\n\n\n`Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance Us.\n\nBinance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.\n\n\n#### KuCoin:\n\n\nKuCoin requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n\n`Fee` parameter should be used to initiate a transaction in KuCoin.\n\nPlease note:\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * All currencies have their minimum `fee` and `amount` requirements. Please use `symbol/details` endpoint to get this data for a particular symbol.\n * KuCoin requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.\n\n\n#### BinanceInternational:\n\n\n`Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance International.\n\nBinance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.\n\n\n#### GateIo:\n\n\nGate.io requires adding IP address to the list of trusted IP addresses to be able to initiate a cryptocurrency transfers.\n\nWithdrawal address should be already verified or added on the Gate.io UI (in mobile application or on the web site).\n * Please reach out to Front to get the static IP address for withdrawals. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * Only verified withdrawal blockchain addresses are allowed for withdrawal with Gate.io API.\n * Gate.io requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.\n\n\n#### Huobi:\n\n\nWarning: Huobi does not refund executed deposits that are below the `Minimum Deposit Amount`\n * Please check the MinimumDepositAmount in Get Deposit Address response in order to avoid making a deposit below the minimum amount\n * Huobi does not allow withdrawals to addresses that are not white-listed, please add the address that you would like to withdraw to the white list of addresses through the UI so that a withrawal can be processed\n\n\n#### Bitfinex:\n * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id.\n * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts.\n\n\n#### KrakenDirect:\n\n\nKraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint.\n\nTo initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.\n"
servers:
- url: https://admin-api.meshconnect.com
security:
- Bearer: []
tags:
- name: Transfers
  description: "\n\n### Supported integrations:\n```Robinhood```\n```Coinbase```\n```Kraken```\n```CoinbasePro```\n```CryptoCom```\n```Binance```\n```Gemini```\n```OkCoin```\n```KuCoin```\n```BinanceInternational```\n```Bitstamp```\n```GateIo```\n```Okx```\n```Huobi```\n```Bitfinex```\n```KrakenDirect```\n```BinanceInternationalDirect```\n```Bybit```\n```Paxos```\n```CoinbasePrime```\n```DeFiWallet```\n\n\n### Integration-specific notes:\n\n\n#### Robinhood:\n\n\nCryptocurrency transfers should be enabled in Robinhood settings. Transfers are disabled by default, enabling them for end users requires a review from Robinhood.\n\nPlease note:\n * `MfaCode` parameter is required to initiate a transaction in Robinhood.\n * The user's security settings should be configured to use an authenticator application.\n * Robinhood doesn't allow initiation of transactions if the authenticator application is not configured.\n\n\n#### Coinbase:\n\n\n`MfaCode` parameter should be used to initiate transactions in Coinbase.\n * If the end user's Coinbase account is configured to use text messages (SMS) for two factor authentication, the API will return `MfaRequired` status, and a text code will then be sent by Coinbase. The code is expected to be provided in the subsequent call using the `MfaCode` request field\n * If the account is configured to use an authenticator application, the API is expecting to get the code in the `MfaCode` request field.\n\n\n#### Kraken:\n\n\nKraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint.\n\nTo initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.\n\n\n#### CoinbasePro:\n * CoinbasePro does not provide multiple chains per a symbol, so default chains are used for getting Deposit addresses.\n\n\n#### Binance:\n\n\n`Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance Us.\n\nBinance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.\n\n\n#### KuCoin:\n\n\nKuCoin requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n\n`Fee` parameter should be used to initiate a transaction in KuCoin.\n\nPlease note:\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * All currencies have their minimum `fee` and `amount` requirements. Please use `symbol/details` endpoint to get this data for a particular symbol.\n * KuCoin requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.\n\n\n#### BinanceInternational:\n\n\n`Enable Withdrawals` permission should be given to the user's API key to initiate transfers with Binance International.\n\nBinance requires adding the IP address to the list of trusted IPs to be able to create API keys with transfer permission.\n * Please reach out to Front to get the static IP address. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * By default, the permission to enable withdrawals is turned off. If the end user's API key does not have the permission, asset transfers will not be available.\n\n\n#### GateIo:\n\n\nGate.io requires adding IP address to the list of trusted IP addresses to be able to initiate a cryptocurrency transfers.\n\nWithdrawal address should be already verified or added on the Gate.io UI (in mobile application or on the web site).\n * Please reach out to Front to get the static IP address for withdrawals. This address should be provided to the end user, and the user should be instructed to add it to the list of trusted IP addresses.\n * Only verified withdrawal blockchain addresses are allowed for withdrawal with Gate.io API.\n * Gate.io requires chain name to be provided for getting deposit address or initiating a cryptocurrency transfer. Some cryptocurrencies are supported over multiple chains. It's recommended to use `symbol/details` endpoint to get the list of supported chains and show it to the end user to select a target one.\n\n\n#### Huobi:\n\n\nWarning: Huobi does not refund executed deposits that are below the `Minimum Deposit Amount`\n * Please check the MinimumDepositAmount in Get Deposit Address response in order to avoid making a deposit below the minimum amount\n * Huobi does not allow withdrawals to addresses that are not white-listed, please add the address that you would like to withdraw to the white list of addresses through the UI so that a withrawal can be processed\n\n\n#### Bitfinex:\n * The hash of transfer is not available when making a transfer in Bitfinex. To get the hash please re-query the transfer using the transaction id.\n * Bitfinex does not separate sub-accounts when returning the list of transfers.Therefore the same list of transfers is returned for all Bitfinex sub-accounts.\n\n\n#### KrakenDirect:\n\n\nKraken requires the explicit chain name to be provided (e.g. `Dogecoin` or `Ethereum (ERC20)`). The list of possible chains can be obtained by calling `symbol/details` endpoint.\n\nTo initiate a transaction, a Kraken Address Key name should be provided in `TargetAddress` field. Target address should be added using Kraken UI, then its name should be used.\n"
paths:
  /api/v1/transfers/list:
    post:
      tags:
      - Transfers
      summary: Get transfer history
      description: 'Get entire history of cryptocurrency transfers (withdrawals or deposits) executed from an exchange.

        Only supports Exchange integrations.'
      requestBody:
        description: Authentication token and integration type to obtain the list of transfers.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/TransfersBrokerTransactionsListRequest'
      responses:
        '200':
          description: Transfers obtained.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerTransactionsListModelApiResult'
              example:
                content:
                  transfers:
                  - id: 8E25ACB5-A9E2-4D00-8772-A255F010A2A9
                    status: succeeded
                    type: deposit
                    fromAddress: D5PumQwt...
                    targetAddress: D641Fmzx...
                    symbol: DOGE
                    hash: 3310c6202aaeb44754a118ce11f255382d012060ade0d6d9f...
                    amount: 15
                    transactionAmount: 10
                    createdTimestamp: 1653215600
                    updatedTimestamp: 1653215600
                    networkTransactionFee:
                      amount: 5
                      symbol: DOGE
                    confirmations: 17
                    blockchainMethod: transfer
                  - id: 70E6E3CF-5ACF-49C5-A4E1-5FB85A567F26
                    status: succeeded
                    type: withdrawal
                    fromAddress: 0x7BDE8361Fe587daD0e35448E754...
                    targetAddress: 0x83C8F28c26bF6aaca652Df1DbBE...
                    symbol: ETH
                    hash: 0x77f3a280aa5cfe956a5759c24cf774325504070b32b4159...
                    amount: 0.1
                    transactionAmount: 0.099
                    createdTimestamp: 1653211113
                    updatedTimestamp: 1653211113
                    networkTransactionFee:
                      amount: 0.001
                      symbol: ETH
                    confirmations: 18
                    blockchainMethod: transfer
                  total: 2
                  cursor: N2VkZDI0MDMtNmRhYy01NThhLTk5NDUDYzI12M3GQ3ZmQ2
                  earliestTimestamp: 1653211113
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
        '403':
          description: The API key used does not have read permission to call this Mesh endpoint.
          content:
            application/json:
              schema: {}
  /api/v1/transfers/details:
    post:
      tags:
      - Transfers
      summary: Get transfer details
      description: 'Get details of a specific transfer (withdrawals or deposits) executed from an exchange.

        Only supports Exchange integrations.'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/TransfersBrokerCryptocurrencyTransactionDetailsRequest'
            example:
              transactionId: 63F1A6B6-BF45-4E51-A624-EC52B5680D48
              authToken: Secret authentication token
              type: robinhood
      responses:
        '200':
          description: Transfer details obtained.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerCryptocurrencyTransactionApiResult'
              example:
                content:
                  id: 8E25ACB5-A9E2-4D00-8772-A255F010A2A9
                  status: succeeded
                  type: deposit
                  fromAddress: D5PumQwt...
                  targetAddress: D641Fmzx...
                  symbol: DOGE
                  hash: 3310c6202aaeb44754a118ce11f255382d012060ade0d6d9f...
                  amount: 15
                  transactionAmount: 10
                  createdTimestamp: 1653215600
                  updatedTimestamp: 1653215600
                  networkTransactionFee:
                    amount: 5
                    symbol: DOGE
                  confirmations: 17
                  blockchainMethod: transfer
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Transfer details are not correct.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
        '403':
          description: The API key used does not have read permission to call this Mesh endpoint.
          content:
            application/json:
              schema: {}
        '404':
          description: Transfer with provided id was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: notFound
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
  /api/v1/transfers:
    post:
      tags:
      - Transfers
      summary: Initiate a transfer
      description: 'Initiate a new cryptocurrency transfer on a blockchain, cryptocurrency broker or cryptocurrency exchange.

        Obsolete endpoint, please use POST /transfers/managed/execute endpoint instead.'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/TransfersBrokerCreateCryptocurrencyTransactionRequest'
            examples:
              Transfer using AddressType (DOGE over DOGE chain):
                value:
                  data: Some memo
                  targetAddress: D641Fmzx...
                  amount: 100
                  fee: 5
                  addressType: dogeAddress
                  mfaCode: '000000'
                  password: $sb7u26
                  authToken: Secret authentication token
                  type: coinbase
              Transfer using symbol and chain (USDT as ERC-20 over Ethereum chain):
                value:
                  data: Some memo
                  targetAddress: 0x4Df61A3CcfB...
                  amount: 100
                  fee: 0
                  mfaCode: '000000'
                  chain: ETH
                  symbol: USDT
                  authToken: Secret authentication token
                  type: coinbase
      responses:
        '200':
          description: Transfer successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerCreateCryptocurrencyTransactionResponseApiResult'
              example:
                content:
                  failed: false
                  status: pending
                  statusDetails: Accepted
                  transaction:
                    id: 8E25ACB5-A9E2-4D00-8772-A255F010A2A9
                    status: pending
                    type: withdrawal
                    fromAddress: D5PumQwt...
                    targetAddress: D641Fmzx...
                    symbol: DOGE
                    hash: 3310c6202aaeb44754a118ce11f255382d012060ade0d6d9f...
                    amount: 105
                    transactionAmount: 100
                    createdTimestamp: 1653215600
                    updatedTimestamp: 1653215600
                    networkTransactionFee:
                      amount: 5
                      symbol: DOGE
                    confirmations: 3
                    blockchainMethod: transfer
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Transfer details are not correct.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
        '403':
          description: The API key used does not have write permission to call this Mesh endpoint.
          content:
            application/json:
              schema: {}
      deprecated: true
  /api/v1/transfers/address/get:
    post:
      tags:
      - Transfers
      summary: Get deposit address
      description: Get or generate a cryptocurrency deposit address that can be used to transfer assets to the financial institution
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/TransfersBrokerCryptocurrencyDepositAddressRequest'
            example:
              symbol: DOGE
              chain: DOGE
              authToken: Secret authentication token
              type: robinhood
      responses:
        '200':
          description: Address successfully obtained or generation initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerCryptocurrencyDepositAddressResponseApiResult'
              example:
                content:
                  symbol: DOGE
                  address: D641Fmzx...
                  chain: DOGE
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Request details are not correct.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '404':
          description: Address for the required symbol is not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: notFound
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
  /api/v1/transfers/symbol/details:
    post:
      tags:
      - Transfers
      summary: Get details of asset
      description: 'Get details of the asset for deposit or withdrawal. For example, several exchanges support same tokens over multiple

        blockchains, and thus require the name of chain to be supplied for transfers. This endpoint allows getting such details.'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/TransfersBrokerCryptocurrencyDepositAddressRequest'
            example:
              symbol: DOGE
              chain: DOGE
              authToken: Secret authentication token
              type: robinhood
      responses:
        '200':
          description: Address successfully obtained or generation initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerCryptocurrencySymbolDetailsResponseApiResult'
              example:
                content:
                  symbol: ETH
                  addressTypes:
                  - ethAddress
                  chains:
                  - chain: Ethereum
                    fee: 1.0e-05
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Request details are not correct.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '404':
          description: Asset details for provided symbol are not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: notFound
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
components:
  schemas:
    B2BBrokerTransactionsListModelApiResult:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BBrokerTransactionsListModel'
      additionalProperties: false
    B2BBrokerCryptocurrencyDepositAddressResponseApiResult:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BBrokerCryptocurrencyDepositAddressResponse'
      additionalProperties: false
    B2BBrokerCreateCryptocurrencyTransactionResponse:
      type: object
      properties:
        transactionId:
          type:
          - string
          - 'null'
          description: Transaction Id by the financial institution
        failed:
          type: boolean
        mfaType:
          allOf:
          - $ref: '#/components/schemas/MfaType'
        verificationSteps:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MfaType'
        qrCode:
          type:
          - string
          - 'null'
        qrCodeLink:
          type:
          - string
          - 'null'
        status:
          enum:
          - unknown
          - failed
          - frozen
          - succeeded
          - mfaRequired
          - pending
          - expired
          - canceled
          - waitingForSignature
          - waitingForClearing
          - awaitingApproval
          - awaitingConfirmation
          - awaitingVerification
          - rejected
          - pendingCancel
          - emailVerification
          - deviceConfirmationRequired
          - mfaFailed
          - addressWhitelistRequired
          - secondMfaRequired
          allOf:
          - $ref: '#/components/schemas/BrokerCryptocurrencyTransactionStatus'
          description: Status of the operation
        statusDetails:
          type:
          - string
          - 'null'
          description: Details of the current status of the transfer, as provided by the financial institution
        transaction:
          allOf:
          - $ref: '#/components/schemas/B2BBrokerCryptocurrencyTransaction'
          description: Details of the created transaction
      additionalProperties: false
    B2BBrokerCryptocurrencyTransaction:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
          description: Identifier of the transfer, if provided by the financial institution
        status:
          enum:
          - unknown
          - failed
          - frozen
          - succeeded
          - mfaRequired
          - pending
          - expired
          - canceled
          - waitingForSignature
          - waitingForClearing
          - awaitingApproval
          - awaitingConfirmation
          - awaitingVerification
          - rejected
          - pendingCancel
          - emailVerification
          - deviceConfirmationRequired
          - mfaFailed
          - addressWhitelistRequired
          - secondMfaRequired
          allOf:
          - $ref: '#/components/schemas/BrokerCryptocurrencyTransactionStatus'
          description: Current status of the transaction
        statusDetails:
          type:
          - string
          - 'null'
          description: Details of the current status of the transfer, as provided by the financial institution
        type:
          enum:
          - unknown
          - deposit
          - withdrawal
          allOf:
          - $ref: '#/components/schemas/BrokerCryptocurrencyTransactionType'
          description: The direction of the transaction
        fromAddress:
          type:
          - string
          - 'null'
          description: Address where the transaction was sent from
        targetAddress:
          type:
          - string
          - 'null'
          description: Address where the transaction was sent to
        symbol:
          type:
          - string
          - 'null'
          description: Ticker of the transaction
        chain:
          type:
          - string
          - 'null'
          description: Crypto Chain the transaction belongs to
        memo:
          type:
          - string
          - 'null'
          description: Memo of the transaction (also called "Tag")
        hash:
          type:
          - string
          - 'null'
          description: Hash of the transaction
        amount:
          type: number
          descr

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mesh-connect/refs/heads/main/openapi/mesh-connect-transfers-api-openapi.yml