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

# OTC Quote

> Get a fiat-to-crypto quote for the OTC on-ramp flow.

## Overview

This page documents the shared OTC quote API used by both on-ramp and off-ramp flows. The full schema, parameters, and examples are rendered from the linked OpenAPI definition above.

## Notes

* Authentication uses the standard GatePay signed headers.
* Use `type=BUY` for on-ramp and `type=SELL` for off-ramp.
* This page documents the standard merchant endpoint.
* For shared signing rules, see [/api-reference/version/100/en/common/securityAndSignature](/api-reference/version/100/en/common/securityAndSignature).


## OpenAPI

````yaml /api-reference/version/100/en/openapi/institution/otc-fiat-openapi.json POST /withdraw/open/institution/otc/api/v1/quote
openapi: 3.1.0
info:
  title: GatePay OTC Fiat API
  description: Reference for OTC fiat withdrawal and deposit APIs.
  version: 2.1.0
servers:
  - url: https://openplatform.gateapi.io
security: []
paths:
  /withdraw/open/institution/otc/api/v1/quote:
    post:
      summary: Get OTC On-ramp Quote
      description: Get a fiat-to-crypto quote for the OTC on-ramp flow.
      parameters:
        - $ref: '#/components/parameters/X-GatePay-Certificate-ClientId'
        - $ref: '#/components/parameters/X-GatePay-Signature'
        - $ref: '#/components/parameters/X-GatePay-Timestamp'
        - $ref: '#/components/parameters/X-GatePay-Nonce'
        - $ref: '#/components/parameters/X-GatePay-On-Behalf-Of'
        - name: bankAccountName
          in: query
          required: false
          schema:
            type: string
          description: Bank account name for fuzzy matching.
        - name: iban
          in: query
          required: false
          schema:
            type: string
          description: Account number or IBAN for fuzzy matching.
        - name: swift
          in: query
          required: false
          schema:
            type: string
          description: SWIFT code for fuzzy matching.
        - name: bankName
          in: query
          required: false
          schema:
            type: string
          description: Bank name for fuzzy matching.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteResponse'
components:
  parameters:
    X-GatePay-Certificate-ClientId:
      name: X-GatePay-Certificate-ClientId
      in: header
      required: true
      schema:
        type: string
      description: Merchant application client ID used to identify the calling app.
    X-GatePay-Signature:
      name: X-GatePay-Signature
      in: header
      required: true
      schema:
        type: string
      description: >-
        HMAC signature generated from the request according to GatePay signing
        rules.
    X-GatePay-Timestamp:
      name: X-GatePay-Timestamp
      in: header
      required: true
      schema:
        type: string
      description: Unix timestamp used for replay protection and signature verification.
    X-GatePay-Nonce:
      name: X-GatePay-Nonce
      in: header
      required: true
      schema:
        type: string
      description: Random nonce used together with the timestamp to prevent replay attacks.
    X-GatePay-On-Behalf-Of:
      name: X-GatePay-On-Behalf-Of
      in: header
      required: true
      schema:
        type: string
      description: >-
        Required delegated-subject header. Provide the initiating account ID for
        this request. For institution merchant APIs, this is typically the
        target sub-account ID; for institution charge and transfer APIs, it can
        be either an institution account ID or a sub-account ID.
  schemas:
    QuoteRequest:
      type: object
      properties:
        cryptoCurrency:
          type: string
          description: >-
            Cryptocurrency code used in the quote request. On-ramp supports:
            USDT, USDC. Off-ramp supports: USDT, USDC.
        fiatCurrency:
          type: string
          description: >-
            Fiat currency code used in the quote request. Currently supported:
            USD.
        cryptoAmount:
          type: string
          description: Cryptocurrency amount used when quoting by crypto amount.
        fiatAmount:
          type: string
          description: Fiat amount used when quoting by fiat amount.
        side:
          type: string
          description: >-
            Quote direction. Use CRYPTO to quote by crypto amount or FIAT to
            quote by fiat amount.
        promotionCode:
          type: string
          description: Optional promotion code if supported by the OTC business flow.
        type:
          type: string
          description: OTC business type. Use BUY for on-ramp and SELL for off-ramp.
      required:
        - cryptoCurrency
        - fiatCurrency
        - side
        - type
      example:
        cryptoCurrency: USDT
        fiatCurrency: USD
        fiatAmount: '1000'
        side: FIAT
        type: BUY
    QuoteResponse:
      type: object
      properties:
        code:
          type: string
          description: Business response code.
        status:
          type: string
          description: Top-level request status.
        errorMessage:
          type: string
          description: Error message when the request fails.
        data:
          type: object
          properties:
            quoteToken:
              type: string
              description: Quote token used when creating the OTC order.
            validPeriod:
              type: integer
              description: Quote validity period in seconds.
            cryptoAmount:
              type: string
              description: Quoted cryptocurrency amount.
            fiatAmount:
              type: string
              description: Quoted fiat amount.
            fiatRate:
              type: string
              description: Fiat rate expressed as fiat per crypto.
            cryptoRate:
              type: string
              description: Crypto rate expressed as crypto per fiat.
          description: Quote payload returned by the API.
      example:
        code: '0'
        status: success
        errorMessage: ''
        data:
          quoteToken: qt_01JXYZABCDEF
          validPeriod: 60
          cryptoAmount: '1088.42'
          fiatAmount: '1000'
          fiatRate: '0.918762'
          cryptoRate: '1.088420'

````