{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-fxquote-report-response-schema.json", "title": "FXQuoteReportResponse", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/citi-fxgateway-api-openapi.yml#/components/schemas/FXQuoteReportResponse", "type": "object", "required": [ "action", "jsonReqId", "senderCompId", "onBehalfOfCompId", "sendingTime" ], "properties": { "action": { "type": "string", "description": "Defines the action of the message. Value will be rate-report-response.", "maxLength": 20 }, "jsonReqId": { "type": "string", "description": "The unique identifier for the JSON request. Format is alphanumeric.", "maxLength": 100 }, "senderCompId": { "type": "string", "description": "The Citi-assigned value used to identify the firm sending the message. May contain special characters ( ‘_’, ‘.’, ‘-‘).", "maxLength": 20 }, "onBehalfOfCompId": { "type": "string", "description": "The Citi-assigned value used to identify the sub-entity. May contain special characters ( ‘_’, ‘.’, ‘-‘)", "maxLength": 20 }, "sendingTime": { "type": "string", "description": "The time of message transmission. Always expressed in UTC (Universal Time Coordinated, also known as 'GMT'), format: YYYYMMDD-HH:MM:SS.mmm." }, "errorCode": { "type": "integer", "description": "The error code associated with the response. See the Error Codes tab for a complete list." }, "errorMessage": { "type": "string", "description": "The error message associated with the response. See the Error Codes tab for a complete list." }, "ifxRates": { "type": "array", "items": { "type": "object", "required": [ "rateSetId", "ccyPair", "tenor", "bidSpotRate", "offerSpotRate", "bidForwardPoints", "offerForwardPoints", "midPrice", "validUntilTime", "isValid", "baseCurrency", "ratePrecision", "valueDate", "bidOutrightRate", "offerOutrightRate", "fixingRate" ], "properties": { "rateSetId": { "type": "integer", "description": "The Citi-defined rate set ID that the rate belongs to." }, "ccyPair": { "type": "string", "description": "A six character sorted alpha string comprising two ISO ccy codes that the rate applies to.", "maxLength": 6 }, "tenor": { "type": "string", "description": "The Tenor for the rate.", "maxLength": 3 }, "bidSpotRate": { "type": "string", "format": "double", "description": "The Bid Spot Rate for the currency pair." }, "offerSpotRate": { "type": "string", "format": "double", "description": "The Offer Spot Rate for the currency pair." }, "bidForwardPoints": { "type": "string", "format": "double", "description": "The Bid Forward Points for this tenor (Forward Pricing Only)." }, "offerForwardPoints": { "type": "string", "format": "double", "description": "The Offer Forward Points for this tenor (Forward Pricing Only)." }, "midPrice": { "type": "string", "format": "double", "description": "The Mid Price for the rate." }, "validUntilTime": { "type": "string", "description": "The time and date that this rate will expire. Note-This is held in GMT / UTC format: yyyyMM-dd HH:mm:ss.SSS" }, "isValid": { "type": "boolean", "description": "A flag that shows that Citi was able to provide the requested rate. If this field is false, then midPrice, points, and rates are zero." }, "baseCurrency": { "type": "string", "maxLength": 3, "description": "The base currency of the currency pair." }, "ratePrecision": { "type": "integer", "description": "The number of decimal places to which the rate(s) for this tenor should be quoted in regular base/term format." }, "isTradable": { "type": "boolean", "description": "A flag to indicate whether the rate is tradable by the client (TRUE) or is to be used for reference purposes only." }, "fixingRate": { "type": "string", "format": "double", "description": "This field and `fixingsource` field will only be populated once a month on the agreed NDF fixing date. Will contain the fixing rate to be used for this currency pair." }, "fixingSource": { "type": "string", "description": "Will contain the fixing source associated with the fixingRate field.", "maxLength": 100 }, "valueDate": { "type": "string", "format": "date", "description": "The value date of the rate returned in format: yyyy-MM-dd." }, "drawDownValidUntilTime": { "description": "Optional field. The extended time and date that this rate will expire for sending draw down orders. This field will be sent only if you are enabled for sending pre-order requests. Note: this is held in GMT / UTC in format: yyyy-MM-dd HH:mm:ss.SSS.\n" }, "bidOutrightRate": { "type": "string", "format": "double", "description": "The Bid Outright Rate for this currency pair." }, "offerOutrightRate": { "type": "string", "format": "double", "description": "The Offer Outright Rate for this currency pair." }, "isMrf": { "description": "Optional field. Applicable when MRF hourly updated rate option enabled. Flag indicates whether this is updated rate due to MRF True indicates updated rate.", "type": "boolean" }, "rateId": { "type": "integer", "description": "Optional field. Applicable when MRF hourly updated rate option enabled. Unique identifier of a rate. Value is incremental. Used for reference purpose to identify latest rate in case of incremental version of rate due to MRF." } } } } } }