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

# Get On-ramp Quote

> Fetch a live exchange rate estimate before initiating an on-ramp

<Note>
  **Auth method: Signed (HMAC)** — this endpoint requires the full set of signed
  headers: `x-access-id`, `x-request-id`, `x-timestamp`, and an HMAC-SHA256
  `authorization` signature. See [Authentication](/api-reference/authentication#signed-hmac-authentication).
</Note>

## Headers

<ParamField header="authorization" type="string" required>
  Base64-encoded HMAC-SHA256 signature of the request payload using your API secret

  **Example:** `"5e73d044c44d733fcf819ad3409aaa..."`
</ParamField>

<ParamField header="x-timestamp" type="string" required>
  **Example:** `"2025-03-15T09:45:53.000Z"`
</ParamField>

<ParamField header="x-request-id" type="string" required>
  **Example:** `"550e8400-e29b-41d4-a716-446655440000"`
</ParamField>

<ParamField header="x-access-id" type="string" required>
  **Example:** `"your-access-id-here"`
</ParamField>

<ParamField header="Content-Type" type="string" required>
  **Example:** `"application/json"`
</ParamField>

## Body

<ParamField body="fiatAmount" type="integer" required>
  Amount the customer will pay in `fiatCurrency`, in whole units (e.g. NGN — not kobo)

  **Example:** `50000`
</ParamField>

<ParamField body="fiatCurrency" type="string">
  ISO 4217 fiat currency code. Defaults to `NGN`

  **Example:** `"NGN"`
</ParamField>

<ParamField body="targetCurrency" type="string" required>
  Symbol of the cryptocurrency to deliver

  **Example:** `"USDT"`
</ParamField>

<ParamField body="targetChain" type="string" required>
  Blockchain network to deliver the crypto on. Use a chain `id` from
  [Fetch On-ramp Chains](/api-reference/endpoint/onramp/chains).

  **Example:** `"tron"`
</ParamField>

## Response

<ResponseField name="status" type="string" required>
  **Example:** `"success"`
</ResponseField>

<ResponseField name="message" type="string" required>
  **Example:** `"Quote generated"`
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="data properties">
    <ResponseField name="quoteId" type="string">
      UUID that identifies this quote. Pass this to [Initiate On-ramp](/api-reference/endpoint/onramp/initiate).

      **Example:** `"b7f2a1c3-9d4e-4b2f-a8c0-1e2d3f4a5b6c"`
    </ResponseField>

    <ResponseField name="fiatCurrency" type="string">
      **Example:** `"NGN"`
    </ResponseField>

    <ResponseField name="fiatAmount" type="number">
      **Example:** `50000`
    </ResponseField>

    <ResponseField name="targetCurrency" type="string">
      **Example:** `"USDT"`
    </ResponseField>

    <ResponseField name="targetChain" type="string">
      **Example:** `"tron"`
    </ResponseField>

    <ResponseField name="swapCurrency" type="string">
      Intermediate currency used during the swap leg (for informational purposes)

      **Example:** `"usdt"`
    </ResponseField>

    <ResponseField name="swapChain" type="string">
      Intermediate chain used during the swap leg

      **Example:** `"tron"`
    </ResponseField>

    <ResponseField name="rate" type="number">
      Exchange rate: how many `swapCurrency` units per 1 `fiatCurrency`

      **Example:** `0.000597`
    </ResponseField>

    <ResponseField name="estimatedCryptoAmount" type="string">
      Estimated amount of `targetCurrency` the customer will receive, based on `fiatAmount × rate`

      **Example:** `"29.850000"`
    </ResponseField>

    <ResponseField name="expiresAt" type="string">
      ISO 8601 timestamp after which this quote is no longer valid. Initiate before this time.

      **Example:** `"2025-06-10T10:05:00.000Z"`
    </ResponseField>
  </Expandable>
</ResponseField>


## OpenAPI

````yaml POST /v1/api/onramp/quote
openapi: 3.1.0
info:
  title: Tender API
  description: Tender Developer API for cryptocurrency payments and agent management
  version: 1.0.0
  contact:
    name: Tender Support
    url: https://tender.cash
servers:
  - url: https://secureapi.tender.cash
    description: Production Server
  - url: https://sandbox-api.tender.cash
    description: Sandbox Server
security:
  - SignedAuth: []
tags:
  - name: Agents
    description: Manage agents and sub-businesses
  - name: Transactions
    description: Payment and transaction operations
  - name: System
    description: System information and configuration
  - name: Webhooks
    description: Webhook management and logs
  - name: On-ramp
    description: Fiat-to-crypto on-ramp operations
  - name: Payouts
    description: Send crypto from merchant balance to a wallet address or payout account
  - name: Subwallets
    description: Provision and manage crypto wallet infrastructure for your end-users
paths:
  /v1/api/onramp/quote:
    post:
      tags:
        - On-ramp
      summary: Get On-ramp Quote
      description: >-
        Fetch a live exchange rate and estimated crypto output before initiating
        an on-ramp. Returns a quoteId required by /onramp/initiate.
      operationId: getOnrampQuote
      parameters:
        - name: authorization
          in: header
          required: true
          schema:
            type: string
        - name: x-timestamp
          in: header
          required: true
          schema:
            type: string
            format: date-time
        - name: x-request-id
          in: header
          required: true
          schema:
            type: string
            format: uuid
        - name: x-access-id
          in: header
          required: true
          schema:
            type: string
        - name: Content-Type
          in: header
          required: true
          schema:
            type: string
          example: application/json
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetOnrampQuoteRequest'
            example:
              fiatCurrency: NGN
              fiatAmount: 50000
              targetCurrency: USDT
              targetChain: tron
      responses:
        '200':
          description: Quote generated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOnrampQuoteResponse'
              example:
                status: success
                message: Quote generated
                data:
                  quoteId: b7f2a1c3-9d4e-4b2f-a8c0-1e2d3f4a5b6c
                  fiatCurrency: NGN
                  fiatAmount: 50000
                  targetCurrency: USDT
                  targetChain: tron
                  swapCurrency: usdt
                  swapChain: tron
                  rate: 0.000597
                  estimatedCryptoAmount: '29.850000'
                  expiresAt: '2025-06-10T10:05:00.000Z'
        '400':
          description: Unsupported currency, amount below minimum, or validation error
      security:
        - SignedAuth: []
components:
  schemas:
    GetOnrampQuoteRequest:
      type: object
      required:
        - fiatAmount
        - targetCurrency
        - targetChain
      properties:
        fiatCurrency:
          type: string
          default: NGN
          example: NGN
        fiatAmount:
          type: integer
          example: 50000
        targetCurrency:
          type: string
          example: USDT
        targetChain:
          type: string
          example: tron
    GetOnrampQuoteResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            quoteId:
              type: string
              format: uuid
            fiatCurrency:
              type: string
            fiatAmount:
              type: number
            targetCurrency:
              type: string
            targetChain:
              type: string
            swapCurrency:
              type: string
            swapChain:
              type: string
            rate:
              type: number
            estimatedCryptoAmount:
              type: string
            expiresAt:
              type: string
              format: date-time
  securitySchemes:
    SignedAuth:
      type: apiKey
      in: header
      name: authorization
      description: >-
        Signed (HMAC) authentication. Required headers: x-access-id,
        x-request-id (UUID v4), x-timestamp (ISO 8601), and authorization
        (Base64 HMAC-SHA256 signature of {timeStamp, requestId, accessId} using
        your access secret).

````