{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-fx-query-request-schema.json",
  "title": "FxQueryRequest",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citi-fx-api-openapi.yml#/components/schemas/Fx-Query-Request",
  "allOf": [
    {
      "$ref": "#/$defs/Multiple-Currency-Amount"
    },
    {
      "type": "object",
      "title": "Fx-Query-Request",
      "required": [
        "buy_currency_code",
        "sell_currency_code",
        "reference_id",
        "seller_markup"
      ],
      "properties": {
        "seller_markup": {
          "type": "string",
          "title": "seller_markup",
          "description": "Seller markup consists of country code + markup."
        },
        "reference_id": {
          "$ref": "#/$defs/Reference-Id"
        }
      }
    }
  ],
  "$defs": {
    "Amount": {
      "type": "number",
      "title": "amount",
      "description": "Amount in currency.",
      "minimum": 0.01,
      "maximum": 10000000000000
    },
    "Currency-Code": {
      "type": "string",
      "title": "currency_code",
      "description": "The currency code in the transaction.",
      "pattern": "^[A-Z]{3}$"
    },
    "Multiple-Currency-Amount": {
      "title": "FxQuery",
      "type": "object",
      "properties": {
        "buy_currency_code": {
          "allOf": [
            {
              "$ref": "#/$defs/Currency-Code"
            }
          ],
          "title": "buy_currency_code",
          "description": "The currency that the client is buying."
        },
        "buy_amount": {
          "allOf": [
            {
              "$ref": "#/$defs/Amount"
            }
          ],
          "title": "buy_amount",
          "description": "The amount of buy_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.)"
        },
        "sell_currency_code": {
          "allOf": [
            {
              "$ref": "#/$defs/Currency-Code"
            }
          ],
          "title": "sell_currency_code",
          "description": "The currency that the client is selling."
        },
        "sell_amount": {
          "allOf": [
            {
              "$ref": "#/$defs/Amount"
            }
          ],
          "title": "sell_amount",
          "description": "The amount of sell_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.)"
        }
      }
    },
    "Reference-Id": {
      "type": "string",
      "title": "reference_id",
      "description": "Unique identifier for this request from your system.",
      "minLength": 1,
      "maxLength": 120
    }
  }
}