Skip to main content

Overview

The Order Cancel Reject message (MsgType = "9") is sent by the gateway when a cancellation request cannot be processed. This typically occurs when an order is already filled, expired, or in a non-cancellable state.

Field Layout

TagFieldDescriptionRequiredTypeValues
11ClOrdIDIdentifier of the cancel requestYString
17ExecIdExecution ID assigned by the gatewayYString
37OrderIdOrderId assigned by the gatewayYString
39OrdStatusCurrent order statusYChar8=Rejected
41OrigClOrdIDClOrdID of the order that could not be cancelledYString
58TextReason for rejection (free text)NString
434CxlRejResponseToType of request being rejectedYInt1=Order Cancel Request

Example Message

8=FIX.4.4|35=9|49=BUILDMARKETS|56=CLIENT1|11=CXL-20260212-001|17=EXEC-020|37=BMKT-78450|39=8|41=ORD-20260212-001|434=1|58=Order already filled|10=056|

Handling Cancel Rejects

  1. Review Tag 58 (Text) for the human-readable rejection reason
  2. The original order maintains its current state — use Order Status Request to verify if needed
  3. Common rejection causes: order already filled, order already cancelled, order expired, or invalid OrderId

REST Equivalent

The REST cancel endpoint (POST /api/external/cancel) provides similar functionality, returning error details when cancellation fails.