Currencycloud Quotes API

Create new quotes to use for held rates conversions.

Operations 1

POST /quotes/create Create Held Rate Quote #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/currencycloud-quotes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

currencycloud-quotes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Currencycloud API is a robust, predictable, easy-to-use API for converting money between currencies and making payments around the world. Dynamically register sub-accounts to provide white labeled money transfer services to your own customers.
  version: 2.43.0
  title: Currencycloud Quotes API
  termsOfService: https://www.currencycloud.com/terms-and-conditions/
  contact:
    name: support
    email: support@currencycloud.com
servers:
- url: https://devapi.currencycloud.com/v2
tags:
- name: Quotes
  description: Create new quotes to use for held rates conversions.
paths:
  /quotes/create:
    post:
      tags:
      - Quotes
      x-throttling-tier: Unlimited
      x-api-group: convert
      summary: Create Held Rate Quote
      description: 'BETA


        Please note that this endpoint is currently in beta. For additional details, please contact your Account Manager or our support team.


        Requests a new quote for the specified held-rate period and returns the details of the quote on success.'
      operationId: CreateQuoteConversion
      parameters:
      - name: X-Auth-Token
        in: header
        required: true
        description: Authentication token.
        schema:
          type: string
      responses:
        '200':
          description: Success.
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeldRateQuote'
        '400':
          description: Client error.
          x-errors:
          - code: unique_value_parameters
            category: base
            message: 'Following parameters should not have same values: sell_currency, buy_currency'
            params: '{ "parameters" => "sell_currency, buy_currency" }'
          - code: fixed_side_not_in_range
            category: fixed_side
            message: 'fixed_side should be in range: sell, buy'
            params: '{ "range" => "sell, buy" }'
          - code: fixed_side_is_required
            category: fixed_side
            message: fixed_side is required
            params: ''
          - code: conversion_date_type_is_wrong
            category: conversion_date
            message: conversion_date should be of date type
            params: '{ "type" => "date" }'
          - code: sell_currency_is_in_invalid_format
            category: sell_currency
            message: sell_currency is in invalid format
            params: ''
          - code: sell_currency_is_required
            category: sell_currency
            message: sell_currency is required
            params: ''
          - code: amount_type_is_wrong
            category: amount
            message: amount should be of numeric type
            params: '{ "type" => "numeric" }'
          - code: amount_is_required
            category: amount
            message: amount is required
            params: ''
          - code: amount_is_too_small
            category: amount
            message: amount can not be smaller than 1
            params: '{ "minvalue" => 1 }'
          - code: buy_currency_is_in_invalid_format
            category: buy_currency
            message: buy_currency is in invalid format
            params: ''
          - code: buy_currency_is_required
            category: buy_currency
            message: buy_currency is required
            params: ''
          - code: on_behalf_of_self
            category: on_behalf_of
            message: You cannot act on behalf of your own Contact
            params: ''
          - code: contact_not_found
            category: on_behalf_of
            message: Contact was not found for this id
            params: ''
          - code: amount_is_in_invalid_format
            category: amount
            message: amount should be of numeric type with 2 dp
            params: '{ "type" => "numeric_with_precision", "precision" => 2 }'
          - code: invalid_conversion_date_preference
            category: base
            message: not a valid conversion date preference, possible options are earliest, optimize_liquidity, default, next_day
            params: ''
          - code: hold_period_is_required
            category: hold_period
            message: hold_period is required
            params: ''
          - code: ccy_pair_is_not_tradeable
            category: currency_pair
            message: Given currency pair is not tradeable
            params: ''
          - code: crossing_cutoff_time
            category: base
            message: Hold period extends beyond the cut-off-time for the requested delivery date
            params: ''
          - code: held_rate_not_enabled
            category: base
            message: Held Rates Product is not enabled for this account
            params: ''
          - code: invalid_conversion_date
            category: base
            message: Conversion date is not valid for this currency pair
            params: ''
          - code: invalid_conversion_date_combination
            category: base
            message: One of conversion_date or conversion_date_preference must be specified
            params: ''
          - code: invalid_decimals
            category: base
            message: amount should be specified with a valid number of decimal places
            params: ''
          - code: invalid_delivery_date
            category: base
            message: The delivery date you have requested cannot be met for this currency pair
            params: ''
          - code: invalid_hold_period
            category: base
            message: Requested hold_period is invalid for this account
            params: ''
          - code: missing_client_spread_table_data
            category: base
            message: Sorry, the online client pricing for the amount of the currency pair you are trying to trade has not been set up - please contact us
            params: ''
          - code: quote_could_not_be_created
            category: base
            message: Quote could not be created
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeldRateQuoteError'
        '401':
          description: Unauthorized.
          x-errors:
          - code: invalid_supplied_credentials
            category: username
            message: Authentication failed with the supplied credentials
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: Resource not found.
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
        '500':
          description: Internal server error
          x-errors:
          - code: internal_server_error
            category: base
            message: Internal server error
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
        '503':
          description: Service is temporarily unavailable
          x-errors:
          - code: service_unavailable
            category: base
            message: Service is temporarily unavailable
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
        default:
          description: Unexpected error.
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                buy_currency:
                  type: string
                  description: Three-character ISO code of the currency being purchased.
                sell_currency:
                  type: string
                  description: Three-character ISO code of the currency being sold.
                fixed_side:
                  type: string
                  enum:
                  - buy
                  - sell
                  description: Fix the buy or sell currency.
                amount:
                  type: string
                  description: Amount of the fixed buy or sell currency.
                hold_period:
                  type: string
                  description: 'The length of time for which the quote should remain valid. This value must be pre-configured for your account and should be provided using one of the supported units: seconds (s) or  minutes (m). For example: 30s, 3m.'
                conversion_date:
                  type: string
                  format: date
                  description: Earliest delivery date in UTC time zone. Format YYYY-MM-DD.
                conversion_date_preference:
                  type: string
                  enum:
                  - earliest
                  - next_day
                  - default
                  - optimize_liquidity
                  description: Available and required only if conversion_date is not provided. Not currently supported for APAC currencies.<br> Must be one of the following:<br> - 'earliest' for earliest available conversion date. Make sure there is sufficient time to send funds to Currencycloud.<br> - 'next_day' for next day available conversion date - T+1.<br> - 'default' for conversion - T+1 for APAC, T+2 for everywhere else.<br> - 'optimize_liquidity' for maximizing chances of getting a successful rate. Most relevant for exotic pairs. Conversion is within one or two working days depending on currencies.
                on_behalf_of:
                  type: string
                  description: A contact UUID for the sub-account you're acting on behalf of.
              required:
              - buy_currency
              - sell_currency
              - fixed_side
              - amount
              - hold_period
components:
  schemas:
    UnauthorizedError:
      type: object
      description: Authorization error.
      required:
      - error_code
      - error_messages
      properties:
        error_code:
          type: string
          description: A high-level error code for the whole request.
          enum:
          - auth_failed
        error_messages:
          type: object
          description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
          additionalProperties:
            type: array
            items:
              type: object
              description: An object that represents one of the reasons why the input parameter failed.
              required:
              - code
              - message
              properties:
                code:
                  type: string
                  description: A unique code that identifies this error. It can be used for translations.
                message:
                  type: string
                  description: An explanation of the error in English.
                params:
                  type: object
                  default: {}
                  description: Relevant validation rules that failed. This can be used for translations.
                  example:
                    minlength: 1
                    maxlength: 255
      example:
        error_code: auth_failed
        error_messages:
          api_key:
          - code: invalid_supplied_credentials
            message: Authentication failed with the supplied credentials
            params: {}
    HeldRateQuoteError:
      type: object
      description: 'Client error information for the Create Quote endpoint.

        '
      required:
      - error_code
      - error_messages
      properties:
        error_code:
          type: string
          description: A high-level error code for the whole request.
        error_messages:
          type: object
          description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
          additionalProperties:
            type: array
            items:
              type: object
              description: An object that represents one of the reasons why the input parameter failed.
              required:
              - code
              - message
              properties:
                code:
                  type: string
                  description: A unique code that identifies this error. It can be used for translations.
                message:
                  type: string
                  description: An explanation of the error in English.
                params:
                  type: object
                  default: {}
                  description: Relevant validation rules that failed. This can be used for translations.
                  example:
                    minlength: 1
                    maxlength: 255
    HeldRateQuote:
      type: object
      description: Detailed held rate quote information.
      properties:
        buy_currency:
          type: string
        client_buy_amount:
          type: string
        client_rate:
          type: string
        client_sell_amount:
          type: string
        core_rate:
          type: string
        created_at:
          type: string
        currency_pair:
          type: string
        deposit_amount:
          type: string
        deposit_currency:
          type: string
        deposit_required:
          type: boolean
        expires_at:
          type: string
        fixed_side:
          type: string
        mid_market_rate:
          type: string
        partner_buy_amount:
          type: string
        partner_rate:
          type: string
        partner_sell_amount:
          type: string
        quote_id:
          type: string
        sell_currency:
          type: string
        settlement_cut_off_time:
          type: string
      example:
        buy_currency: USD
        client_buy_amount: '118.56'
        client_rate: '1.1856'
        client_sell_amount: '100.0'
        core_rate: '1.1858'
        created_at: '2025-08-11T08:10:21Z'
        currency_pair: EURUSD
        deposit_amount: '0.0'
        deposit_currency: EUR
        deposit_required: false
        expires_at: '2025-08-11T08:15:21Z'
        fixed_side: sell
        mid_market_rate: '1.0146'
        partner_buy_amount: '118.56'
        partner_rate: '1.1856'
        partner_sell_amount: '100.0'
        quote_id: 3c25ce4a-3552-45bb-869e-406c795052aa
        sell_currency: EUR
        settlement_cut_off_time: '2025-08-13T15:30:00Z'
externalDocs:
  description: API overview
  url: https://www.currencycloud.com/developers/