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

# Get available currency pairs and exchange rates

This endpoint returns reference exchange rates only. To get an actual exchange quote, use [/v2/exchange/calculate](https://docs.ca.cryptoprocessing.com/api-reference/endpoints/exchange-calculate.md).

> [!WARNING]
>
> The list of supported currencies in the sandbox environment is different from the list in the production environment.

For every error this endpoint returns and what it means, see [API errors: Get available currency pairs and exchange rates](https://docs.ca.cryptoprocessing.com/api-reference/errors.md#get-available-currency-pairs-and-exchange-rates).


## OpenAPI

````yaml POST /v2/currencies/rates
openapi: 3.1.0
info:
  title: Merchant Backend V2
  version: '1.0'
  description: Documentation for merchant backend processing endpoints
servers:
  - url: https://app.ca.cryptoprocessing.com/api
security:
  - xProcessingKey: []
tags:
  - name: Status
  - name: Balance
  - name: Currencies
  - name: Deposit addresses
  - name: Withdrawal
  - name: Exchange
  - name: Invoices
  - name: Transactions
paths:
  /v2/currencies/rates:
    post:
      tags:
        - Currencies
      summary: Get currency exchange rates
      operationId: post-currencies-rates
      parameters:
        - $ref: '#/components/parameters/XProcessingSignatureHeader'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                currency_from:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Currency to exchange from. For a list of all available
                    currencies, see [API currency
                    codes](/api-reference/currency-codes).
                currency_to:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Currency to exchange to. For a list of all available
                    currencies, see [API currency
                    codes](/api-reference/currency-codes).
            examples:
              USDC to USD rate:
                value:
                  currency_from: USDC
                  currency_to: USD
              All rates from USDC:
                value:
                  currency_from: USDC
              All rates to USD:
                value:
                  currency_to: USD
      responses:
        '200':
          description: |
            OK. Returns the available exchange pairs.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: array
                    description: >-
                      List of matching currency pairs. Empty if
                      `currency_from`/`currency_to` is a recognized currency
                      code with no configured trading pairs.
                    items:
                      type: object
                      required:
                        - currency_from
                        - currency_to
                        - rate_from
                        - rate_to
                      properties:
                        currency_from:
                          type: object
                          required:
                            - currency
                            - type
                            - min_amount
                          properties:
                            currency:
                              type: string
                              description: Source currency code.
                              example: BTC
                            type:
                              type: string
                              description: Source currency type.
                              enum:
                                - crypto
                                - fiat
                              example: crypto
                            min_amount:
                              type: string
                              description: Minimum exchange amount for the source currency.
                              example: '0.00010000'
                            min_amount_deposit_with_exchange:
                              type: string
                              description: >-
                                Minimum deposit amount when using exchange flow.
                                Present when `currency_from.type` is `crypto`.
                              example: '0.00020000'
                        currency_to:
                          type: object
                          required:
                            - currency
                            - type
                          properties:
                            currency:
                              type: string
                              description: Target currency code.
                              example: ETH
                            type:
                              type: string
                              description: Target currency type.
                              enum:
                                - crypto
                                - fiat
                              example: crypto
                        rate_from:
                          type: string
                          description: >-
                            Always `1`, representing one unit of
                            `currency_from`.
                        rate_to:
                          type: string
                          description: >-
                            Amount of `currency_to` equivalent to one unit of
                            `currency_from`.
              examples:
                USDC to USD rate:
                  value:
                    data:
                      - currency_from:
                          currency: USDC
                          type: crypto
                          min_amount: '5.00000000'
                          min_amount_deposit_with_exchange: '5.00000000'
                        currency_to:
                          currency: USD
                          type: fiat
                        rate_from: '1'
                        rate_to: '0.99978134'
                All rates from USDC:
                  value:
                    data:
                      - currency_from:
                          currency: USDC
                          type: crypto
                          min_amount: '5.00000000'
                          min_amount_deposit_with_exchange: '5.00000000'
                        currency_to:
                          currency: ETH
                          type: crypto
                        rate_from: '1'
                        rate_to: '0.00040577'
                      - currency_from:
                          currency: USDC
                          type: crypto
                          min_amount: '5.00000000'
                          min_amount_deposit_with_exchange: '5.00000000'
                        currency_to:
                          currency: LTC
                          type: crypto
                        rate_from: '1'
                        rate_to: '0.02235642'
                      - currency_from:
                          currency: USDC
                          type: crypto
                          min_amount: '5.00000000'
                          min_amount_deposit_with_exchange: '5.00000000'
                        currency_to:
                          currency: USD
                          type: fiat
                        rate_from: '1'
                        rate_to: '0.99978134'
                All rates to USD:
                  value:
                    data:
                      - currency_from:
                          currency: BTC
                          type: crypto
                          min_amount: '0.00010000'
                          min_amount_deposit_with_exchange: '0.00010000'
                        currency_to:
                          currency: USD
                          type: fiat
                        rate_from: '1'
                        rate_to: '80425.69320400'
                      - currency_from:
                          currency: ETH
                          type: crypto
                          min_amount: '0.00300000'
                          min_amount_deposit_with_exchange: '0.00200000'
                        currency_to:
                          currency: USD
                          type: fiat
                        rate_from: '1'
                        rate_to: '2463.88658726'
                      - currency_from:
                          currency: USDC
                          type: crypto
                          min_amount: '5.00000000'
                          min_amount_deposit_with_exchange: '5.00000000'
                        currency_to:
                          currency: USD
                          type: fiat
                        rate_from: '1'
                        rate_to: '0.99978134'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationOrMalformedJson'
              examples:
                Source currency doesn't exist:
                  value:
                    errors:
                      currency_from: The selected currency from is invalid.
                Target currency doesn't exist:
                  value:
                    errors:
                      currency_to: The selected currency to is invalid.
                Source currency not a string:
                  value:
                    errors:
                      currency_from: The currency from must be a string.
                Target currency not a string:
                  value:
                    errors:
                      currency_to: The currency to must be a string.
                Malformed JSON:
                  value:
                    error: Bad content format
                    code: bad_content_format
        '403':
          $ref: '#/components/responses/HeaderAuthorization'
        '422':
          $ref: '#/components/responses/InternalError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    XProcessingSignatureHeader:
      name: X-Processing-Signature
      in: header
      required: true
      description: >-
        Hex-encoded HMAC-SHA512 signature of the request body, [generated using
        your secret key](/api-reference/authentication).
      schema:
        type: string
  schemas:
    ValidationOrMalformedJson:
      oneOf:
        - type: object
          title: ValidationError
          description: One or more request parameters failed validation.
          properties:
            errors:
              type: object
              description: >
                A map of request field names to a human-readable validation
                error message for that field. The exact set of possible keys and
                messages is endpoint-specific — see [API
                errors](/api-reference/errors#errors-by-endpoint) for the full
                reference.
              additionalProperties:
                type: string
                description: Human-readable validation error message for this field.
        - type: object
          title: MalformedJson
          description: >-
            The request body is not valid JSON or the Content-Type header is not
            set to `application/json`.
          properties:
            error:
              type: string
            code:
              type: string
  responses:
    HeaderAuthorization:
      description: |
        Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: Human-readable error message.
              code:
                type: string
                description: Error code.
            description: >-
              Invalid or missing headers, or the API key does not have access to
              the endpoint. Refer to
              [Errors](/api-reference/errors#general-errors) for troubleshooting
              steps.
          examples:
            Bad signature header:
              value:
                error: Bad signature header
                code: bad_header_signature
            API key does not have the required ability:
              value:
                error: The API key does not have access to this endpoint.
                code: api_key_ability_required
            No signature header:
              value:
                error: No signature header
                code: required_header_signature
            No key header:
              value:
                error: No key header
                code: required_header_key
    InternalError:
      description: >
        Unprocessable entity. An internal error occurred during processing. The
        request was understood but could not be completed.


        The `errors` field is an array of error messages. The `error_code` is
        always the string `"internal_error"`.
      content:
        application/json:
          schema:
            type: object
            required:
              - errors
              - error_code
            properties:
              errors:
                type: array
                description: Array of error messages
                items:
                  type: string
              error_code:
                type: string
                description: Error code identifier
          examples:
            Internal error:
              value:
                errors:
                  - Internal error
                error_code: internal_error
            Something went wrong:
              value:
                errors:
                  - Something went wrong. Please try later.
                error_code: internal_error
            Unhandled exception:
              value:
                errors:
                  - Something went wrong.
                error_code: internal_error
    TooManyRequests:
      description: >
        Too Many Requests


        You sent too many requests in a short time. The limit is counted per API
        key, so requests from all your servers that use the same key count
        together. Wait before you send the request again, increasing the delay
        if you get `429` again, and handle this error by its status code, not by
        a particular response body. See [Too many
        requests](/api-reference/errors#too-many-requests-429-too-many-requests).
  securitySchemes:
    xProcessingKey:
      type: apiKey
      description: Your [API key](/merchant-administration/generate-and-activate-api-keys).
      in: header
      name: X-Processing-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.