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

# Execute Reusable Quote

> Reusable Quote Executions buy or sell assets using a Reusable Quote obtained from the [Reusable Quote Creation](#operations/createReusableQuoteResponse) flow.

The asset, and guaranteed price/rate of the execution are specified by the quote with ID `quote_id`.

The amount to buy or sell must be specified in either fiat or crypto by setting exactly one of:

* `base_amount` to specify the amount of crypto to buy or sell.
* `quote_amount` to specify the amount of fiat to spend or acquire.

An otherwise-valid request to create a quote execution may fail with the following types of errors:

* **Expired** if the reusable quote with ID `reusable_quote_id` has expired.
* **Insufficient Funds** if the end user with ID `end_user_id` has insufficient available balance to fund the execution.
* **Quote with no price** if a Reusable Quote has its prices set to null and status UNA_PRICE (Unavailable Price).
* **Buy Limit Frequency Exceeded** if the end_user reached a Daily/Monthly/Yearly frequency limit for BUY Trades.
* **Sell Limit Frequency Exceeded** if the end_user reached a Daily/Monthly/Yearly frequency limit for SELL Trades.
* **Buy Limit Amount Exceeded** if the end_user reached a Daily/Monthly/Yearly amount limit for BUY Trades.
* **Sell Limit Amount Exceeded** if the end_user reached a Daily/Monthly/Yearly amount limit for SELL Trades.



## OpenAPI

````yaml crypto-as-a-service/openapi.json POST /api/v1/reusable-quotes/{reusable_quote_id}/actions/execute/
openapi: 3.0.2
info:
  title: B2B API
  version: '1.0'
  description: >-
    B2B API allows a third party to access different use cases and services
    inside of Ripio ecosystem. It is organized around RESTful constraints, with
    requests and responses in JSON format, using HTTP in the standard format and
    the answer codes. The API is designed to be compliant with OpenAPI
    Specification v3.0, which is a trusted open source standard for HTTP-Based
    APIs.


    The API offers the ability to test it with a simple, yet powerful sandbox
    that will enhance developer experience and replicate production capabilities
    in a well isolated and safe environment, giving developers full freedom to
    try the integration without compromises.


    # Error Handling


    If a request to B2B REST API fails, the response will contain an five-digit
    error code with a corresponding error message to indicate the details of the
    error.


    The following code snippet is a sample error response that contains an error
    code and message pair:


    ````

    {

    "code": 40001,

    "type": "NotAuthenticated",

    "detail": {

    "message": "Authentication credentials were not provided.",

    "code": "not_authenticated"

    },

    "status": 403

    }

    ````


    ## Error Codes


    | Code | Error Category | Description | Resolution |

    | :------- | :------ | :------ | :----- |

    | 20000   | Validation Error |  Raised when there is a semantic error in the
    payload of the request.  | Check the docs for precise information on how to
    provide correct values for each resource atribute.   |

    | 20001   | Parse Error |  Raised when the API receives a malformed JSON
    document. |  Check for syntax errors in the payload of your request. Also
    look for sample requests in the docs related to the desired operation.  |

    | 20010   | Expired Quote |  Raised when the received quote to execute has
    expired.  |  Generate a new quote and execute it within the 30 seconds time
    window.  |

    | 20011   | Already Executed Quote |  Raised when the received quote to
    execute has been executed before. |  Try Generating a new quote with the
    former pair/amounts to replicate a similar trade.  |

    | 20012  | Not Enough Balance |  Raised when the amount to operate
    (sale/purchase) is larger than the balance amount of the debited currency.
    |  Check end user's balances in order to inform the discrepancy before quote
    execution. Please contact our support team for further assistance.  |

    | 20013  | Buy Limit Frequency Exceeded |  Raised when the "BUY" frequency
    limit for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20014  | Sell Limit Frequency Exceeded |  Raised when the "SELL" frequency
    limit for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20015  | Buy Limit Amount Exceeded |  Raised when the "BUY" amount limit
    for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20016  | Sell Limit Amount Exceeded |  Raised when the "SELL" amount limit
    for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20017  | Buy Transaction Min Limit Exceeded |  Raised when the "BUY"
    amount min limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20018  | Buy Transaction Max Limit Exceeded |  Raised when the "BUY"
    amount max limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20019  | Sell Transaction Min Limit Exceeded |  Raised when the "SELL"
    amount min limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20020  | Sell Transaction Max Limit Exceeded |  Raised when the "SELL"
    amount max limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20021  | Banned EndUser |  Raised when a quote execution request comes
    from a banned user.| Please reach out our support team in order to get full
    detail on why the end user has been banned. |

    | 20022  | Swap Transaction Min Limit Exceeded |  Raised when the "SWAP"
    amount min limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20023  | Swap Transaction Max Limit Exceeded |  Raised when the "SWAP"
    amount max limit on a single transaction is exceeded.|  Check Ripio's min
    and max transaction limits. |

    | 20024  | Swap Limit Frequency Exceeded |  Raised when the "SWAP" frequency
    limit for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20025  | Swap Limit Amount Exceeded |  Raised when the "SWAP" amount limit
    for a given end user has been reached.|  Check end user's limits using
    Limits API in order to inform the discrepancy before performing a quote
    execution. |

    | 20026  | Quote With No Price |  Raised when the received reusable quote to
    execute has no price. |  Try Generating a new reusable quote with the former
    pair to replicate a similar trade.  |

    | 20027  | Expired Withdrawal Fee |  Raised when trying to execute a 
    withdrawal fee that has already expired. |  Request another withdrawal Fee. 
    |

    | 20029  | Invalid address |  Raised when the address provided  is not valid
    on given network. |  Try with a valid addres for that network.  |

    | 20030  | Kyc not approved for end user |  Raised  when the end user
    doesn't have a kyc process approved. |  Check the status of end user's
    verification submission |

    | 20031  | Kyc already approved for end user |  Raised  when the end user
    already has an approved kyc process. |  - |

    | 20032  | Invalid or disabled payment method type |  Raised  when the
    payment_method_type does not exist or is disabled  for the acccount. |
    Please reach out our support team.  |

    | 20033  | Frequency limit exceeded for fiat withdrawals |  Raised  when the
    QTY limit for a given currency in a FIAT_WITHDRAWAL  operation is exceeded.
    | -  |

    | 20034  | Amount limit exceeded for fiat withdrawals |  Raised when the
    amount limit for a given currency in a FIAT_WITHDRAWAL operation is
    exceeded. | -  |

    | 20035  | Fiat account is required |  Raised  when a fiat account is
    required. | Create a Fiat account first.  |

    | 20036  | Withdrawal amount less than network dust limit. |  Raised when
    the amount of withdrawal request is less to the network dust limit. |
    Increase Withrawal amount.  |

    | 20037  | There is no address created for end user and given network. | 
    Raised when there is no address for a given concrete network name. | Create
    an AutoSwap address first.  |

    ||

    | 40000   | Authentication Failed | Raised when an incoming request includes
    incorrect authentication. | Check for invalid credentials in your request
    when trying to authenticate. |

    | 40001   | Not Authenticated |  Raised when an unauthenticated request
    fails the permission checks. | Check if your request contains a valid and
    non-expired `access_token`. |

    | 40003   | Permission Denied | Raised when an authenticated request fails
    the permission checks. | Check if you have OAuth scopes to access requested
    resource. Please contact our support team if you think this is an error. |

    | 40004   | Not Found |  Raised when a resource does not exists at the given
    URL. | Check if the resource you're looking for does exist. |

    | 40005   | Method Not Allowed | Raised when an incoming request has been
    performed with certain HTTP verb that is not valid for the requested
    resource. | Check the resource's docs section to learn the accepted HTTP
    methods. |

    | 40006   | Bad Request | Raised when historical market price API endpoint
    has not been used properly. | Check for syntax errors in the payload of your
    request. Also look for sample requests in the docs related to the desired
    operation. |

    | 40007   | Bad Request | Raised when a currency network is not allowed to
    operate the selected currency. | Check if your request contains a valid
    network for the selected currency. |

    | 40008   | Not Found | Raised when a currency doesn't have its limits
    configured. | Please reach out our support team with the error details and
    detailed execution flow. |

    | 40009   | Bad Request | Raised when an existing Quote with  defined
    external_ref has not been executed, thus it can  not be excuted
    idempotently. | Use another external_ref for the Quote. |

    | 40010   | Service Unavailable | Raised when there are  no addresses
    available for networks compatible with a specific network name. | Please
    reach out our support team with the error details and detailed execution
    flow. |

    | 40015   | Unsupported Media Type | Raised when the content type of the
    request data is not JSON compliant. | Check if your request data is
    compliant with JSON format. |

    | 40029   | Throttled | Raised when an incoming request fails the throttling
    checks. | Check if you are exceding the daily/hourly request quota for your
    account. Please contact our support team if you think you'll need an
    extended quota for your use-case. |

    ||

    | 50003   | Service Unavailable | Raised when the service (or requested
    resource) is not available. | Please reach out our support team with the
    error details and detailed execution flow. |
  contact:
    name: Ripio
    email: b2b@ripio.com
    url: https://ripio.com
  termsOfService: https://www.ripio.com/ar/terms/
servers:
  - url: https://sandbox-b2b.ripio.com
    description: Sandbox environment
  - url: https://b2b-api.ripio.com/
    description: Production environment
security:
  - OAuth2: []
tags:
  - name: Access Token
  - name: Addresses
  - name: Auto Swap Addresses
  - name: Balance
  - name: Beneficiary Fiat Accounts
  - name: Deposit IPN
  - name: Deposits
  - name: End User
  - name: Fiat Accounts
  - name: IPN Webhooks
  - name: Pairs
  - name: Periodic Limits
  - name: Quote Execution
  - name: Quotes
  - name: Rates
  - name: Reusable Quote Execution
  - name: Reusable Quotes
  - name: Service Status
  - name: Swap Reusable Quote Execution
  - name: Swap Reusable Quotes
  - name: Transactions
  - name: TXN Limits
  - name: Withdrawals
  - name: Fiat Withdrawals
  - name: Fiat Deposits
  - name: KYC Requirements
  - name: KYC Submissions
  - name: Simulate Fiat Deposit
  - name: Yields
paths:
  /api/v1/reusable-quotes/{reusable_quote_id}/actions/execute/:
    parameters:
      - schema:
          type: string
        name: reusable_quote_id
        in: path
        required: true
    post:
      tags:
        - Reusable Quote Execution
      summary: Execute Reusable Quote
      description: >-
        Reusable Quote Executions buy or sell assets using a Reusable Quote
        obtained from the [Reusable Quote
        Creation](#operations/createReusableQuoteResponse) flow.


        The asset, and guaranteed price/rate of the execution are specified by
        the quote with ID `quote_id`.


        The amount to buy or sell must be specified in either fiat or crypto by
        setting exactly one of:


        * `base_amount` to specify the amount of crypto to buy or sell.

        * `quote_amount` to specify the amount of fiat to spend or acquire.


        An otherwise-valid request to create a quote execution may fail with the
        following types of errors:


        * **Expired** if the reusable quote with ID `reusable_quote_id` has
        expired.

        * **Insufficient Funds** if the end user with ID `end_user_id` has
        insufficient available balance to fund the execution.

        * **Quote with no price** if a Reusable Quote has its prices set to null
        and status UNA_PRICE (Unavailable Price).

        * **Buy Limit Frequency Exceeded** if the end_user reached a
        Daily/Monthly/Yearly frequency limit for BUY Trades.

        * **Sell Limit Frequency Exceeded** if the end_user reached a
        Daily/Monthly/Yearly frequency limit for SELL Trades.

        * **Buy Limit Amount Exceeded** if the end_user reached a
        Daily/Monthly/Yearly amount limit for BUY Trades.

        * **Sell Limit Amount Exceeded** if the end_user reached a
        Daily/Monthly/Yearly amount limit for SELL Trades.
      operationId: executeReusableQuoteResponse
      parameters:
        - name: reusable_quote_id
          in: path
          required: true
          description: ''
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              x-examples:
                example-1:
                  base_amount: 2
                  end_user_id: customer_1
              properties:
                end_user_id:
                  type: string
                  description: Indicates End User external_ref.
                op_type:
                  type: string
                  enum:
                    - BUY
                    - SELL
                  description: Indicates the operation type.
                external_ref:
                  type: string
                  description: >-
                    Arbitrary identifier issued by the partner. Serves as an
                    external identifier for lookups.
                base_amount:
                  type: number
                  description: Specifies the amount of crypto to buy or sell.
                quote_amount:
                  type: number
                  description: Specifies the amount of fiat to buy or sell.
              required:
                - end_user_id
                - op_type
                - external_ref
            examples:
              Buy 2 BTC:
                value:
                  base_amount: 2
                  end_user_id: customer_1
                  op_type: BUY
                  external_ref: ex_op_1
              Buy BTC for 100 USD:
                value:
                  end_user_id: customer_1
                  op_type: BUY
                  quote_amount: 100
                  external_ref: ex_op_2
              Sell 2 BTC:
                value:
                  end_user_id: customer_1
                  op_type: SELL
                  base_amount: 2
                  external_ref: ex_op_3
              Sell BTC acquiring 100 USD:
                value:
                  end_user_id: customer_1
                  op_type: SELL
                  quote_amount: 100
                  external_ref: ex_op_4
          application/x-www-form-urlencoded:
            schema:
              type: object
              title: QuoteResponse
              description: ''
              properties:
                id:
                  type: string
                  format: uuid
                  description: UUID used as quote identifier.
                pair:
                  type: string
                  description: Indicates pair name involved in the quotation.
                op_type:
                  enum:
                    - BUY
                    - SELL
                  type: string
                  description: Indicates whether the quote is for BUY or SELL.
                base_asset:
                  type: string
                  description: Indicates the base currency involved in the quotation.
                quote_asset:
                  type: string
                  description: Indicates the quote currency involved in the quotation.
                base_amount:
                  type: string
                  format: decimal
                  description: >-
                    Indicates the amount of units or equivalence in the quote
                    for base currency.
                quote_amount:
                  type: string
                  format: decimal
                  description: >-
                    Indicates the amount of units or equivalence in the quote
                    for quote currency.
                rate:
                  type: string
                  format: decimal
                  description: Indicates the exchange rate used for conversion.
                charged_fee:
                  type: string
                  format: decimal
                  description: >-
                    Indicates fee that will be applied when the execution of
                    quote is effective.
                external_ref:
                  type: string
                  maxLength: 128
                  description: >-
                    Arbitrary identifier issued by the partner. Serves as an
                    external identifier for lookups.
                created_at:
                  type: string
                  format: date-time
                  description: ISO DateTime indicating creation date.
                  readOnly: true
                expires_at:
                  type: string
                  format: date-time
                  description: >-
                    ISO DateTime indicating expiration date of the quote. Quote
                    will be invalid after that date.
              required:
                - id
                - pair
                - op_type
                - base_asset
                - quote_asset
                - base_amount
                - quote_amount
                - rate
                - charged_fee
                - external_ref
                - created_at
                - expires_at
              x-examples:
                example-1:
                  id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
                  pair: string
                  op_type: BUY
                  base_asset: string
                  quote_asset: string
                  base_amount: string
                  quote_amount: string
                  rate: string
                  charged_fee: string
                  external_ref: string
                  created_at: '2019-08-24T14:15:22Z'
                  expires_at: '2019-08-24T14:15:22Z'
              x-stoplight:
                id: 1rx0urcfjqrc9
          multipart/form-data:
            schema:
              type: object
              title: QuoteResponse
              description: ''
              properties:
                id:
                  type: string
                  format: uuid
                  description: UUID used as quote identifier.
                pair:
                  type: string
                  description: Indicates pair name involved in the quotation.
                op_type:
                  enum:
                    - BUY
                    - SELL
                  type: string
                  description: Indicates whether the quote is for BUY or SELL.
                base_asset:
                  type: string
                  description: Indicates the base currency involved in the quotation.
                quote_asset:
                  type: string
                  description: Indicates the quote currency involved in the quotation.
                base_amount:
                  type: string
                  format: decimal
                  description: >-
                    Indicates the amount of units or equivalence in the quote
                    for base currency.
                quote_amount:
                  type: string
                  format: decimal
                  description: >-
                    Indicates the amount of units or equivalence in the quote
                    for quote currency.
                rate:
                  type: string
                  format: decimal
                  description: Indicates the exchange rate used for conversion.
                charged_fee:
                  type: string
                  format: decimal
                  description: >-
                    Indicates fee that will be applied when the execution of
                    quote is effective.
                external_ref:
                  type: string
                  maxLength: 128
                  description: >-
                    Arbitrary identifier issued by the partner. Serves as an
                    external identifier for lookups.
                created_at:
                  type: string
                  format: date-time
                  description: ISO DateTime indicating creation date.
                  readOnly: true
                expires_at:
                  type: string
                  format: date-time
                  description: >-
                    ISO DateTime indicating expiration date of the quote. Quote
                    will be invalid after that date.
              required:
                - id
                - pair
                - op_type
                - base_asset
                - quote_asset
                - base_amount
                - quote_amount
                - rate
                - charged_fee
                - external_ref
                - created_at
                - expires_at
              x-examples:
                example-1:
                  id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
                  pair: string
                  op_type: BUY
                  base_asset: string
                  quote_asset: string
                  base_amount: string
                  quote_amount: string
                  rate: string
                  charged_fee: string
                  external_ref: string
                  created_at: '2019-08-24T14:15:22Z'
                  expires_at: '2019-08-24T14:15:22Z'
              x-stoplight:
                id: 1rx0urcfjqrc9
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                description: >-
                  If the transaction represents a BUY, SELL or SWAP operation,
                  this object will detail the trade operation information.
                x-examples:
                  example-1:
                    id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
                    quote_id: 3c071a1d-db86-46a7-9dc8-72ba3fbca992
                    end_user_id: string
                    rate: string
                    chargeed_fee: string
                    base_amount: string
                    quote_amount: string
                    base_asset: string
                    quote_asset: string
                    created_at: '2019-08-24T14:15:22Z'
                properties:
                  id:
                    type: string
                    format: uuid
                    description: UUID used as trade identifier.
                  txn_id:
                    type: string
                    description: >-
                      UUID used as Transaction identifier. Useful to relate this
                      object trade with a transaction object.
                  quote_id:
                    type: string
                    format: uuid
                    description: UUID used as quote identifier.
                  end_user_id:
                    type: string
                    description: Arbitrary string used as end_user identifier.
                  rate:
                    type: string
                    description: Indicates the exchange rate used for conversion.
                  charged_fee:
                    type: string
                    description: Indicates trade's applied fee.
                  base_amount:
                    type: string
                    description: >-
                      Indicates the amount of units or equivalence in the quote
                      for base currency.
                  quote_amount:
                    type: string
                    description: >-
                      Indicates the amount of units or equivalence in the quote
                      for quote currency.
                  base_asset:
                    type: string
                    description: Indicates the base currency involved in the quotation.
                  quote_asset:
                    type: string
                    description: Indicates the quote currency involved in the quotation.
                  created_at:
                    type: string
                    format: date-time
                    description: ISO DateTime indicating creation date of trade.
                    readOnly: true
                required:
                  - id
                  - txn_id
                  - quote_id
                  - end_user_id
                  - rate
                  - charged_fee
                  - base_amount
                  - quote_amount
                  - base_asset
                  - quote_asset
                  - created_at
                readOnly: true
                x-stoplight:
                  id: 0vqlkdmhgi3f7
              examples:
                Execute Reusable Quote:
                  value:
                    id: a61d1778-e0bc-48a1-af92-085b5aeb0691
                    quote_id: 31f68fdb-2271-4f58-99d3-4a0b62c9d489
                    txn_id: 1a9f9703-55ab-486d-9a4d-b0a7bc3ac507
                    end_user_id: customer_1
                    rate: '1.00060000'
                    charged_fee: '0.000'
                    base_amount: '5.000000000000000000'
                    quote_amount: '5.002999999999999670'
                    base_asset: USDT
                    quote_asset: USD
                    created_at: '2021-09-16T15:38:43.115315-03:00'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  code:
                    type: number
                  type:
                    type: string
                    minLength: 1
                  detail:
                    type: object
                    properties:
                      message:
                        type: string
                        minLength: 1
                    required:
                      - message
                  status:
                    type: number
                required:
                  - code
                  - type
                  - detail
                  - status
                x-examples:
                  example-1:
                    code: 20019
                    type: SellTransactionMinLimitExceeded
                    detail:
                      message: >-
                        0.19000000 BRL exceeds the min limit for BRL trades:
                        ''SELL'' Limit currently set to 0.19 BRL.
                    status: 400
              examples:
                Sell Min Transactional Limit:
                  value:
                    code: 20019
                    type: SellTransactionMinLimitExceeded
                    detail:
                      message: >-
                        0.18 BRL exceeds the min limit for BRL trades: ''SELL''
                        Limit currently set to 0.19 BRL.
                    status: 400
                Buy Min Transactional Limit:
                  value:
                    code: 0
                    type: string
                    detail:
                      message: string
                    status: 0
                Balance Is not Enough:
                  value:
                    code: 0
                    type: string
                    detail:
                      message: string
                    status: 0
        '403':
          description: Bad Response
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  code:
                    type: number
                  type:
                    type: string
                    minLength: 1
                  detail:
                    type: object
                    properties:
                      message:
                        type: string
                        minLength: 1
                    required:
                      - message
                  status:
                    type: number
                required:
                  - code
                  - type
                  - detail
                  - status
                x-examples:
                  example-1:
                    code: 20012
                    type: NotEnoughBalance
                    detail:
                      message: Not enough balance on 'USD' to BUY
                    status: 400
              examples:
                Cap Limit Reached:
                  value:
                    code: 20022
                    type: CapLimitReached
                    detail:
                      message: >-
                        Reusable Quote '31f68fdb-2271-4f58-99d3-4a0b62c9d489'
                        has reached its cap limit
                    status: 403
                Expired Reusable Quote:
                  value:
                    code: 20023
                    type: ExpiredQuote
                    detail:
                      message: >-
                        Reusable Quote ''31f68fdb-2271-4f58-99d3-4a0b62c9d489''
                        expired at ''2021-10-12 00:20:29.139790+00:00''
                    status: 403
                Insufficient Funds:
                  value:
                    code: 20012
                    type: NotEnoughBalance
                    detail:
                      message: Not enough balance on 'USD' to BUY
                    status: 400
                Buy Limit Amount Exceeded:
                  value:
                    code: 20014
                    type: BuyLimitAmountExceeded
                    detail:
                      message: >-
                        End User CUST_2 Yearly amount reached for USD trades:
                        ''BUY'' Limit currently set to 10.00 USD.
                    status: 429
                Sell Limit Amount Exceeded:
                  value:
                    code: 20016
                    type: SellLimitAmountExceeded
                    detail:
                      message: >-
                        End User CUST_2 Yearly amount reached for USD trades:
                        ''SELL'' Limit currently set to 10.00 USD.
                    status: 429
                Sell Limit Frequency Exceeded:
                  value:
                    code: 20015
                    type: SellLimitFrequencyExceeded
                    detail:
                      message: >-
                        End User CUST_2 Yearly frequency reached for USD trades:
                        ''SELL'' Limit currently set to 1 operations.
                    status: 429
                Buy Limit Frequency Exceeded:
                  value:
                    code: 20013
                    type: BuyLimitFrequencyExceeded
                    detail:
                      message: >-
                        End User CUST_2 Yearly frequency reached for USD trades:
                        ''BUY'' Limit currently set to 1 operations.
                    status: 429
                Quote With No Price:
                  value:
                    code: 20026
                    type: QuoteWithNoPrice
                    detail:
                      message: >-
                        ReusableQuote '6501914f-3b76-465e-8d95-773296f2d63j' has
                        no price
                    status: 403
      security:
        - OAuth2:
            - read
            - write
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            read: Default scope to read all resources.
            write: Default scope to performe write operations on certain resources.
          tokenUrl: https://sandbox-b2b.ripio.com/oauth2/token/
      description: >
        B2B’s White Label API uses OAuth2. Currently there is only one supported
        authentication flow:


        * **clientCredentials** allows you to access your own B2B account
        (First-Party Integration) and performs transactions against the public
        API. This oauth2 flow is well suited for this API, as it allows
        machine-to-machine communication.


        Every call to the API has to be authenticated with an OAuth2 Token. In
        order to request this token, you will need to have sandbox or production
        API Keys (client id and client secret) that will be needed to generate a
        credential in order to negotiate an ephemeral access token.


        Every request must be accompianed by an `Authorization` header with a
        value that follows the following schema: `Bearer ACCESS_TOKEN`

````