{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-execution-report-2-schema.json", "title": "ExecutionReport_2", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/citi-fxgateway-api-openapi.yml#/components/schemas/ExecutionReport_2", "type": "object", "required": [ "action", "jsonReqId", "senderCompId", "onBehalfOfCompId", "sendingTime" ], "properties": { "action": { "type": "string", "description": "Defines the action of the message. Value will be order-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.", "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\") in format: YYYYMMDD-HH:MM:SS.mmm.\"\n" }, "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." }, "dealResponses": { "type": "array", "items": { "required": [ "clOrdId", "account", "orderId", "ordStatus", "ccyPair", "tenor", "dealtCcy", "side", "orderQty", "rateSetId", "counterCcy", "contAmtValue", "lastSpotRate", "lastForwardPoints", "outrightRate", "rejectCode", "citiMergedOrder", "customTenorUnit", "ordType", "isBookedWithMktRate", "isBookedWithMRF", "mrfPercentage", "mrfComparisionRate", "mrfVariance" ], "properties": { "clOrdId": { "type": "string", "description": "The unique identifier of the order that you assigned.", "maxLength": 64 }, "account": { "type": "string", "description": "Your account ID. May contain special characters ( ‘_’, ‘.’, ‘-‘).", "maxLength": 50 }, "orderId": { "type": "string", "format": "int64", "description": "The Citi-assigned Order reference." }, "ordStatus": { "type": "string", "maxLength": 15, "enum": [ "BOOKED", "MERGED", "PENDING", "ACCEPTED", "REJECTED" ], "description": "Status description: \n- PENDING: For InstantFX credit check failed orders/late orders/refund tolerance failed orders.\n- MERGED: Applicable only to ‘Net & Merge’ InstantFX clients; where two or more orders are for the same ccy pair and value date are merged to create a single, netted Order and the original, contributing orders will be flagged as ‘Merged’ orders with a cross reference to the Citi created order. \n- BOOKED: Order is booked.\n- ACCEPTED: Applicable only for pre-orders (intent to pay).\n- REJECTED: Order request rejected.\n" }, "ccyPair": { "type": "string", "description": "The currency pair that you are trading on. Please discuss your preference of sending the value of currency pair in either BaseTerm format or alphabetic sort order with your Citi Representative.", "maxLength": 6 }, "tenor": { "type": "string", "description": "The Tenor the order is being placed for.", "maxLength": 10 }, "valueDate": { "type": "string", "format": "date", "description": "The value date of the order in format: yyyy-MM-dd" }, "dealtCcy": { "type": "string", "description": "The currency for which you supplied the dealt amount.", "maxLength": 3 }, "side": { "type": "string", "description": "Indicates whether you are buying (B) or selling (S) the dealt ccy.", "enum": [ "B", "S" ] }, "orderQty": { "type": "string", "format": "double", "description": "The dealt ccy amount" }, "rateSetId": { "type": "integer", "description": "If the rating method was IFX, this is the Rate Set Id used in the rating of the order. For Live Rates orders, this will be set to zero. In case of a Refund order, it is the rate set Id previously used to book original order." }, "counterCcy": { "type": "string", "description": "The counter ccy of the ccy pair, not the dealt ccy.", "maxLength": 3 }, "contAmtValue": { "type": "string", "format": "double", "description": "The calculated counter ccy amount." }, "lastSpotRate": { "type": "string", "format": "double", "description": "The spot rate applied to the order." }, "lastForwardPoints": { "type": "string", "format": "double", "description": "The forward points applied to the order. Will be zero for spot transactions." }, "outrightRate": { "type": "string", "format": "double", "description": "The outright (spot and fwd points) rate applied to the Order." }, "rejectCode": { "type": "integer", "description": "The reject code if order status = ‘REJECTED’ (rejected)." }, "rejectReason": { "type": "string", "description": "The reason for rejection if order status = ‘REJECTED’’ (rejected).", "maxLength": 250 }, "citiMergedOrder": { "type": "boolean", "description": "Indicates whether this is a merged order created by Citi. Only applicable to ‘Net & Merge’ clients." }, "clOrdLinkId": { "type": "string", "format": "int64", "description": "The Citi-assigned Merged Order reference. This is applicable only to ‘Net & Merge’ InstantFX clients; where two or more orders are for the same ccy pair and value date, will be merged to create a single, netted Order and the original, contributing orders will be flagged as ‘Merged’ orders with a cross reference to the Citi created order.\n" }, "fixingDate": { "type": "string", "format": "date", "description": "Optional field relating to NDF trades only. The fixing date of the NDF Order in format: yyyy-MM-dd" }, "customTenorUnit": { "type": "integer", "description": "The tenor unit to be used when booking a trade with a Tenor type of T. Current supported values are 1, 3, 5." }, "clientData": { "type": "string", "description": "Contains the value that was sent in the original request.", "maxLength": 30 }, "clientData2": { "type": "string", "description": "Contains the value that was sent in the original request.", "maxLength": 30 }, "clientData3": { "type": "string", "description": "Contains the value that was sent in the original request.", "maxLength": 30 }, "clientData4": { "type": "string", "description": "Contains the value that was sent in the original request.", "maxLength": 30 }, "clientData5": { "type": "string", "description": "Contains the value that was sent in the original request.", "maxLength": 30 }, "origClOrdId": { "type": "string", "format": "int64", "description": "Conditional field. Mandatory for ordType =”REFUND”. The value received in the “orderId” field of the standard order response published by Citi." }, "ordType": { "description": "The order type. Will be one of the following values", "type": "string", "maxLength": 15, "enum": [ "STANDARD", "REFUND", "PRE", "DRAWDOWN", "FORECAST", "STAGING" ] }, "isBookedWithMRF": { "type": "boolean", "description": "This flag will be set if the order is booked with an adjusted rate. Note: Deals will be booked with an adjusted rate whenever MRF happens if you opted for it." }, "isBookedWithMktRate": { "type": "boolean", "description": "Flag to indicate if the order is booked on market rate" }, "mrfId": { "type": "string", "fomrat": "int32", "description": "Conditional field. The reference number for the adjusted rate if isBookedWithMRF =”TRUE”." }, "mrfPercentage": { "type": "string", "format": "double", "description": "Percentage that is used to adjust the rate." }, "mrfComparisionRate": { "type": "string", "format": "double", "description": "Rate at which Citi compared in market while order booking." }, "mrfVariance": { "type": "string", "format": "double", "description": "The variance between rate set rate and current market rate." }, "udc1": { "type": "string", "description": "The purpose code received in the order request." }, "udc2": { "type": "string", "description": "Purpose code received in the order request." }, "udc3": { "type": "string", "description": "Purpose code received in the order request." }, "backOffRef": { "type": "string", "description": "Back office settlement reference number for booked orders. Value will be null in the order response. The value can be obtained through a report request for the booked order. Please contact your Citi Representative to request the report.", "maxLength": 60 }, "uniqueTradeIdentifier": { "type": "string", "description": "UTI value for booked orders. This value will be null in the order response. The value can be obtained through Report request for the booked order. Please contact your Citi Representative to request the report." } } } } } }