> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meshconnect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get quote

> Get a quote for transferring a fiat amount from a brokerage account in a given cryptocurrency over a specified network.
Returns min and max fees and amounts to account for different funding sources (existing crypto balance, cash balance or
ACH/debit deposit). Currently only supported for Coinbase.



## OpenAPI

````yaml post /api/v1/transfers/managed/quote
openapi: 3.0.1
info:
  title: Mesh Connect Integration API
  description: >-

    Mesh allows users to connect accounts of financial institutions,

    crypto exchanges, and self-custody wallets. Mesh handles credential

    validation, MFA, and error handling for each integration. After

    an account is connected, Mesh allows client applications to read holdings,

    transaction history and balances and execute crypto transfers (with user
    approval).
  version: '1.0'
servers:
  - url: https://integration-api.meshconnect.com
  - url: https://sandbox-integration-api.meshconnect.com
security:
  - Client-Secret: []
    Client-Id: []
tags:
  - name: BlockchainQuery
  - name: Integrations account information
  - name: Managed Account Authentication
    description: >-
      The recommended approach for account authentication. Front manages
      multiple authentication flows and handles all authentication steps such as
      MFA codes and OAuth redirect through our web and mobile SDKs.
  - name: Portfolio
    description: |


      ### Supported integrations:
      ```Robinhood```
      ```Coinbase```
      ```Kraken```
      ```CryptoCom```
      ```OpenSea```
      ```Binance```
      ```Gemini```
      ```OkCoin```
      ```KuCoin```
      ```CexIo```
      ```BinanceInternational```
      ```Bitstamp```
      ```GateIo```
      ```Okx```
      ```BitFlyer```
      ```Coinlist```
      ```Huobi```
      ```Bitfinex```
      ```KrakenDirect```
      ```BinanceInternationalDirect```
      ```BitfinexDirect```
      ```Bybit```
      ```Paxos```
      ```CoinbasePrime```
      ```BtcTurkDirect```
      ```KuCoinDirect```
      ```OkxOAuth```
      ```ParibuDirect```
      ```RobinhoodConnect```
      ```BlockchainCom```
      ```BitsoDirect```
      ```BinanceOAuth```
      ```BybitDirect```
      ```ParibuOAuth```
      ```BinanceTrDirect```
      ```BybitDirectMobile```
      ```Sandbox```
      ```Uphold```
      ```SandboxCoinbase```
      ```BluvoKrakenOAuth```
      ```DeFiWallet```
  - name: Balance
    description: |


      ### Supported integrations:
      ```Robinhood```
      ```Coinbase```
      ```Kraken```
      ```CryptoCom```
      ```Binance```
      ```Gemini```
      ```OkCoin```
      ```KuCoin```
      ```CexIo```
      ```BinanceInternational```
      ```Bitstamp```
      ```GateIo```
      ```Okx```
      ```BitFlyer```
      ```Coinlist```
      ```Huobi```
      ```Bitfinex```
      ```KrakenDirect```
      ```BinanceInternationalDirect```
      ```BitfinexDirect```
      ```Bybit```
      ```Paxos```
      ```CoinbasePrime```
      ```BtcTurkDirect```
      ```KuCoinDirect```
      ```OkxOAuth```
      ```ParibuDirect```
      ```RobinhoodConnect```
      ```BlockchainCom```
      ```BitsoDirect```
      ```BybitDirect```
      ```ParibuOAuth```
      ```BinanceTrDirect```
      ```BybitDirectMobile```
      ```Sandbox```
      ```Uphold```
      ```SandboxCoinbase```
      ```BluvoKrakenOAuth```
  - name: Transfers
    description: >


      ### Supported integrations:

      ```Robinhood```

      ```Coinbase```

      ```Kraken```

      ```CryptoCom```

      ```Binance```

      ```Gemini```

      ```OkCoin```

      ```KuCoin```

      ```BinanceInternational```

      ```Bitstamp```

      ```GateIo```

      ```Okx```

      ```Huobi```

      ```Bitfinex```

      ```KrakenDirect```

      ```BinanceInternationalDirect```

      ```BitfinexDirect```

      ```Bybit```

      ```Paxos```

      ```CoinbasePrime```

      ```BtcTurkDirect```

      ```ParibuDirect```

      ```RobinhoodConnect```

      ```BlockchainCom```

      ```BinanceConnect```

      ```RevolutConnect```

      ```BinancePay```

      ```BybitDirect```

      ```ParibuOAuth```

      ```PayPalConnect```

      ```CoinbaseRamp```

      ```BybitDirectMobile```

      ```Sandbox```

      ```CryptoComPay```

      ```Uphold```

      ```BinancePayOnchain```

      ```SandboxCoinbase```

      ```BybitPay```

      ```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.



      #### 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.



      #### BitfinexDirect:
       * 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.
  - name: Assets
  - name: Managed Transfers
  - name: Wallets
paths:
  /api/v1/transfers/managed/quote:
    post:
      tags:
        - Managed Transfers
      summary: Get quote
      description: "Get a quote for transferring a fiat amount from a brokerage account in a given cryptocurrency over a specified network.\r\nReturns min and max fees and amounts to account for different funding sources (existing crypto balance, cash balance or\r\nACH/debit deposit). Currently only supported for Coinbase."
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/QuoteTransferRequest'
            examples:
              Quote transfer with no partner fee:
                value:
                  amountInFiat: 10
                  fiatCurrency: USD
                  symbol: ETH
                  networkId: e3c7fdd8-b1fc-4e51-85ae-bb276e075611
                  toAddress: '0xc096a91fDFB100ECED14e4810FA06061C0b3058B'
                  brokerType: coinbase
              Quote transfer with flat partner fee:
                value:
                  amountInFiat: 10
                  fiatCurrency: USD
                  symbol: ETH
                  networkId: e3c7fdd8-b1fc-4e51-85ae-bb276e075611
                  toAddress: '0xc096a91fDFB100ECED14e4810FA06061C0b3058B'
                  brokerType: coinbase
                  feeFlat: 0.0004
              Quote transfer with percentage partner fee:
                value:
                  amountInFiat: 10
                  fiatCurrency: USD
                  symbol: ETH
                  networkId: e3c7fdd8-b1fc-4e51-85ae-bb276e075611
                  toAddress: '0xc096a91fDFB100ECED14e4810FA06061C0b3058B'
                  brokerType: coinbase
                  feePercentage: 1
      responses:
        '200':
          description: Quote obtained.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteTransferResponseApiResult'
              examples:
                Successful transfer quote:
                  value:
                    content:
                      amountInFiat: 100
                      fiatCurrency: USD
                      symbol: ETH
                      networkId: e3c7fdd8-b1fc-4e51-85ae-bb276e075611
                      toAddress: '0xc096a91fDFB100ECED14e4810FA06061C0b3058B'
                      brokerType: coinbase
                      isEligible: true
                      minEligibleAmount: 0.0001
                      minEligibleAmountFiat: 0
                      brokerPrice: 2247.5
                      price: 2246.9
                      minAmountFiat: 97.08
                      maxAmountFiat: 97.88
                      minAmount: 0.04320807702278007
                      maxAmount: 0.04356412313075105
                      fees:
                        inFiat:
                          paymentMethodFeeMaxFiat: 0
                          tradingFeeMaxFiat: 0.8
                          withdrawalFeeFiat: 0
                          partnerFeeFiat: 1
                          networkFeeFiat: 1.12
                          minFeesFiat: 2.12
                          maxFeesFiat: 2.92
                        inCrypto:
                          paymentMethodFeeMax: 0
                          tradingFeeMax: 0.00035604610797098225
                          withdrawalFee: 0
                          partnerFee: 0.0004450576349637278
                          networkFee: 0.000496582730658
                          minFees: 0.0009416403656217278
                          maxFees: 0.0012976864735927101
                      fundingOptions:
                        - fundingOption: existingCryptocurrencyBalance
                          paymentMethodFeeFiat: 0
                          tradingFeeFiat: 0
                        - fundingOption: buyingPowerPurchase
                          paymentMethodFeeFiat: 0
                          tradingFeeFiat: 0.8
                        - fundingOption: paymentMethodDepositUsage
                          paymentMethodType: bankAccount
                          paymentMethodFeeFiat: 0
                          tradingFeeFiat: 0.8
                    status: ok
                    message: ''
                    errorHash: 6aa95595
                    teamCode: P4
                    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
                errorHash: 7dcbb73d
                teamCode: P4
                errorType: missingField
        '401':
          description: 'Unauthorized: Client Id or Client Secret are not correct or missing.'
          content:
            application/json:
              schema: {}
components:
  schemas:
    QuoteTransferRequest:
      required:
        - amountInFiat
        - brokerType
        - fiatCurrency
        - networkId
        - symbol
        - toAddress
      type: object
      properties:
        amountInFiat:
          type: number
          description: Base amount of fiat currency being transferred
          format: double
        fiatCurrency:
          maxLength: 3
          minLength: 0
          type: string
          description: 3 character currency code, e.g. USD
        symbol:
          maxLength: 10
          minLength: 0
          type: string
          description: Symbol of destination cryptocurrency, e.g. ETH
        networkId:
          type: string
          description: Unique id of destination network
          format: uuid
        toAddress:
          maxLength: 1024
          minLength: 0
          type: string
          description: The designated destination for sending the asset.
        brokerType:
          enum:
            - robinhood
            - eTrade
            - alpaca
            - tdAmeritrade
            - weBull
            - stash
            - interactiveBrokers
            - public
            - coinbase
            - kraken
            - coinbasePro
            - cryptoCom
            - openSea
            - binanceUs
            - gemini
            - cryptocurrencyAddress
            - cryptocurrencyWallet
            - okCoin
            - bittrex
            - kuCoin
            - etoro
            - cexIo
            - binanceInternational
            - bitstamp
            - gateIo
            - acorns
            - okx
            - bitFlyer
            - coinlist
            - huobi
            - bitfinex
            - deFiWallet
            - krakenDirect
            - vanguard
            - binanceInternationalDirect
            - bitfinexDirect
            - bybit
            - paxos
            - coinbasePrime
            - btcTurkDirect
            - kuCoinDirect
            - okxOAuth
            - paribuDirect
            - robinhoodConnect
            - blockchainCom
            - bitsoDirect
            - binanceConnect
            - binanceOAuth
            - revolutConnect
            - binancePay
            - bybitDirect
            - paribuOAuth
            - payPalConnect
            - binanceTrDirect
            - coinbaseRamp
            - bybitDirectMobile
            - sandbox
            - cryptoComPay
            - bybitEuDirect
            - uphold
            - binancePayOnchain
            - sandboxCoinbase
            - bybitPay
            - bluvoKrakenOAuth
            - cashApp
          allOf:
            - $ref: '#/components/schemas/BrokerType'
          description: The type of the integration to send the asset from
        feeFlat:
          type: number
          description: Flat fee in crypto to be charged as a partner fee
          format: double
          nullable: true
        feePercentage:
          type: number
          description: >-
            Percentage of transfer amount to be charged as a partner fee,
            expressed as decimal (ie 0.1 = 10%)
          format: double
          nullable: true
      additionalProperties: false
    QuoteTransferResponseApiResult:
      type: object
      properties:
        status:
          enum:
            - ok
            - serverFailure
            - permissionDenied
            - badRequest
            - notFound
            - conflict
            - tooManyRequest
            - locked
            - unavailableForLegalReasons
          allOf:
            - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type: string
          description: A message generated by the API
          nullable: true
        displayMessage:
          type: string
          description: User-friendly display message that can be presented to the end user
          nullable: true
        errorHash:
          type: string
          description: >-
            An error grouping hash from string components and caller
            information. Used by bugsnag on FE for correct error grouping
          nullable: true
          readOnly: true
        teamCode:
          type: string
          description: "Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display."
          nullable: true
          readOnly: true
        errorType:
          type: string
          description: "Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation."
          nullable: true
        errorData:
          nullable: true
          readOnly: true
        content:
          allOf:
            - $ref: '#/components/schemas/QuoteTransferResponse'
          nullable: true
      additionalProperties: false
    ApiResult:
      type: object
      properties:
        status:
          enum:
            - ok
            - serverFailure
            - permissionDenied
            - badRequest
            - notFound
            - conflict
            - tooManyRequest
            - locked
            - unavailableForLegalReasons
          allOf:
            - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type: string
          description: A message generated by the API
          nullable: true
        displayMessage:
          type: string
          description: User-friendly display message that can be presented to the end user
          nullable: true
        errorHash:
          type: string
          description: >-
            An error grouping hash from string components and caller
            information. Used by bugsnag on FE for correct error grouping
          nullable: true
          readOnly: true
        teamCode:
          type: string
          description: "Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.\r\nFormat: 2-character code (e.g., \"7K\", \"M2\"). Use for alerting/routing, not display."
          nullable: true
          readOnly: true
        errorType:
          type: string
          description: "Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.\r\nAll possible error types are available in the documentation."
          nullable: true
        errorData:
          nullable: true
          readOnly: true
      additionalProperties: false
    BrokerType:
      enum:
        - robinhood
        - eTrade
        - alpaca
        - tdAmeritrade
        - weBull
        - stash
        - interactiveBrokers
        - public
        - coinbase
        - kraken
        - coinbasePro
        - cryptoCom
        - openSea
        - binanceUs
        - gemini
        - cryptocurrencyAddress
        - cryptocurrencyWallet
        - okCoin
        - bittrex
        - kuCoin
        - etoro
        - cexIo
        - binanceInternational
        - bitstamp
        - gateIo
        - acorns
        - okx
        - bitFlyer
        - coinlist
        - huobi
        - bitfinex
        - deFiWallet
        - krakenDirect
        - vanguard
        - binanceInternationalDirect
        - bitfinexDirect
        - bybit
        - paxos
        - coinbasePrime
        - btcTurkDirect
        - kuCoinDirect
        - okxOAuth
        - paribuDirect
        - robinhoodConnect
        - blockchainCom
        - bitsoDirect
        - binanceConnect
        - binanceOAuth
        - revolutConnect
        - binancePay
        - bybitDirect
        - paribuOAuth
        - payPalConnect
        - binanceTrDirect
        - coinbaseRamp
        - bybitDirectMobile
        - sandbox
        - cryptoComPay
        - bybitEuDirect
        - uphold
        - binancePayOnchain
        - sandboxCoinbase
        - bybitPay
        - bluvoKrakenOAuth
        - cashApp
      type: string
    ApiResultStatus:
      enum:
        - ok
        - serverFailure
        - permissionDenied
        - badRequest
        - notFound
        - conflict
        - tooManyRequest
        - locked
        - unavailableForLegalReasons
      type: string
    QuoteTransferResponse:
      type: object
      properties:
        amountInFiat:
          type: number
          description: Base amount of fiat currency being transferred (provided in request)
          format: double
        fiatCurrency:
          type: string
          description: 3 character currency code (provided in request)
          nullable: true
        symbol:
          type: string
          description: Symbol of destination cryptocurrency (provided in request)
          nullable: true
        networkId:
          type: string
          description: Unique id of destination network (provided in request)
          format: uuid
        toAddress:
          type: string
          description: The designated destination for sending the asset.
          nullable: true
        brokerType:
          enum:
            - robinhood
            - eTrade
            - alpaca
            - tdAmeritrade
            - weBull
            - stash
            - interactiveBrokers
            - public
            - coinbase
            - kraken
            - coinbasePro
            - cryptoCom
            - openSea
            - binanceUs
            - gemini
            - cryptocurrencyAddress
            - cryptocurrencyWallet
            - okCoin
            - bittrex
            - kuCoin
            - etoro
            - cexIo
            - binanceInternational
            - bitstamp
            - gateIo
            - acorns
            - okx
            - bitFlyer
            - coinlist
            - huobi
            - bitfinex
            - deFiWallet
            - krakenDirect
            - vanguard
            - binanceInternationalDirect
            - bitfinexDirect
            - bybit
            - paxos
            - coinbasePrime
            - btcTurkDirect
            - kuCoinDirect
            - okxOAuth
            - paribuDirect
            - robinhoodConnect
            - blockchainCom
            - bitsoDirect
            - binanceConnect
            - binanceOAuth
            - revolutConnect
            - binancePay
            - bybitDirect
            - paribuOAuth
            - payPalConnect
            - binanceTrDirect
            - coinbaseRamp
            - bybitDirectMobile
            - sandbox
            - cryptoComPay
            - bybitEuDirect
            - uphold
            - binancePayOnchain
            - sandboxCoinbase
            - bybitPay
            - bluvoKrakenOAuth
            - cashApp
          allOf:
            - $ref: '#/components/schemas/BrokerType'
          description: >-
            The type of the integration to send the asset from (provided in
            request)
        isEligible:
          type: boolean
          description: >-
            Is the transaction is possible based on the minimum transfer amount
            of the selected exchange
        minEligibleAmount:
          type: number
          description: >-
            Minimum amount eligible to transfer with selected asset, exchange,
            and network
          format: double
        minEligibleAmountFiat:
          type: number
          description: >-
            Minimum amount in fiat eligible to transfer with selected asset,
            exchange, and network
          format: double
        maxEligibleAmount:
          type: number
          description: >-
            Maximum amount eligible to transfer with selected asset, exchange,
            and network
          format: double
          nullable: true
        maxEligibleAmountFiat:
          type: number
          description: >-
            Maximum amount eligible in fiat to transfer with selected asset,
            exchange, and network
          format: double
          nullable: true
        ineligibilityReason:
          allOf:
            - $ref: '#/components/schemas/NetworkTransferIneligibilityReason'
          description: The reason a transaction is ineligible, returns none if eligible
          nullable: true
        brokerPrice:
          type: number
          description: Price quote from the broker, falls back to reference price
          format: double
        price:
          type: number
          description: Reference price
          format: double
        minAmountFiat:
          type: number
          description: Min amount transferred in fiat
          format: double
        maxAmountFiat:
          type: number
          description: Max amount transferred in fiat
          format: double
        minAmount:
          type: number
          description: Min amount of crypto transferred
          format: double
        maxAmount:
          type: number
          description: Max amount of crypto transferred
          format: double
        fees:
          allOf:
            - $ref: '#/components/schemas/QuoteFees'
          description: Summary of all possible transfer fees
          nullable: true
        fundingOptions:
          type: array
          items:
            $ref: '#/components/schemas/QuoteFundingOption'
          description: Summary of all possible funding options
          nullable: true
      additionalProperties: false
    NetworkTransferIneligibilityReason:
      enum:
        - amountNotSufficient
        - gasFeeAssetBalanceNotEnough
        - noTargetNetworkFound
        - refusedByInstitution
        - eligibleWithFunding
        - balanceBelowRequestedAmount
        - requestedAmountBelowMinimum
        - balanceBelowMinimum
        - requestedAmountBelowFees
        - requestedAmountBelowClientMinimum
        - requestedAmountAboveClientMaximum
        - noPrice
        - nyCoinbaseUserRestrictions
        - gasFeeAssetAndBalanceNotEnough
        - exceedsTopNHoldingsCap
      type: string
    QuoteFees:
      type: object
      properties:
        inFiat:
          allOf:
            - $ref: '#/components/schemas/QuoteFeesInFiat'
          description: Summary of all possible transfer fees in fiat
          nullable: true
        inCrypto:
          allOf:
            - $ref: '#/components/schemas/QuoteFeesInCrypto'
          description: Summary of all possible transfer fees in crypto
          nullable: true
      additionalProperties: false
    QuoteFundingOption:
      type: object
      properties:
        fundingOption:
          enum:
            - existingCryptocurrencyBalance
            - buyingPowerPurchase
            - paymentMethodDepositUsage
            - cryptocurrencyConversion
            - stableCoinNoFeeConversion
            - cryptocurrencyBuyingPowerConversion
            - cryptocurrencyMultiStepConversion
          allOf:
            - $ref: '#/components/schemas/CryptocurrencyFundingOptionType'
          description: Funding option being quoted
        paymentMethodType:
          allOf:
            - $ref: '#/components/schemas/BrokerPaymentMethodType'
          description: >-
            Payment method being quoted for PaymentMethodDepositUsage funding
            option
          nullable: true
        paymentMethodFeeFiat:
          type: number
          description: Fee charged for this payment method
          format: double
        tradingFeeFiat:
          type: number
          description: Fee charged to buy crypto if necessary for this funding option
          format: double
      additionalProperties: false
    QuoteFeesInFiat:
      type: object
      properties:
        paymentMethodFeeMaxFiat:
          type: number
          description: Max fee charged if funded by payment method
          format: double
        tradingFeeMaxFiat:
          type: number
          description: Max fee charged to buy crypto
          format: double
        withdrawalFeeFiat:
          type: number
          description: Fee charged to withdraw crypto
          format: double
        partnerFeeFiat:
          type: number
          description: Fee charged by partner
          format: double
        networkFeeFiat:
          type: number
          description: Fee charged for network transaction
          format: double
        minFeesFiat:
          type: number
          description: Min of total fees charged in fiat
          format: double
        maxFeesFiat:
          type: number
          description: Max of total fees charged in fiat
          format: double
      additionalProperties: false
    QuoteFeesInCrypto:
      type: object
      properties:
        paymentMethodFeeMax:
          type: number
          description: Max fee charged if funded by payment method
          format: double
        tradingFeeMax:
          type: number
          description: Max fee charged to buy crypto
          format: double
        withdrawalFee:
          type: number
          description: Fee charged to withdraw crypto
          format: double
        partnerFee:
          type: number
          description: Fee charged by partner
          format: double
        networkFee:
          type: number
          description: Fee charged for network transaction
          format: double
        minFees:
          type: number
          description: Min of total fees charged in crypto
          format: double
        maxFees:
          type: number
          description: Max of total fees charged in crypto
          format: double
      additionalProperties: false
    CryptocurrencyFundingOptionType:
      enum:
        - existingCryptocurrencyBalance
        - buyingPowerPurchase
        - paymentMethodDepositUsage
        - cryptocurrencyConversion
        - stableCoinNoFeeConversion
        - cryptocurrencyBuyingPowerConversion
        - cryptocurrencyMultiStepConversion
      type: string
    BrokerPaymentMethodType:
      enum:
        - card
        - bankAccount
        - digitalWallet
        - unknown
      type: string
  securitySchemes:
    Client-Secret:
      type: apiKey
      description: Contact Mesh to get client Secret
      name: X-Client-Secret
      in: header
    Client-Id:
      type: apiKey
      description: Contact Mesh to get client Id
      name: X-Client-Id
      in: header

````