diff --git a/FIX40/FIX40.xml b/FIX40/FIX40.xml
new file mode 100644
index 0000000..b53faf9
--- /dev/null
+++ b/FIX40/FIX40.xml
@@ -0,0 +1,862 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FIX40/Messages/Advertisement.rst b/FIX40/Messages/Advertisement.rst
new file mode 100644
index 0000000..0f4a250
--- /dev/null
+++ b/FIX40/Messages/Advertisement.rst
@@ -0,0 +1,266 @@
+=================
+Advertisement (7)
+=================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| 7 | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `2 `_
+
+ - AdvId
+
+ - *
+
+ - INT
+
+ -
+
+ * - `3 `_
+
+ - AdvRefID
+
+ -
+
+ - INT
+
+ -
+
+ * - `4 `_
+
+ - AdvSide
+
+ - *
+
+ - CHAR
+
+ - B = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - T = TRADE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - X = CROSS
+
+ * - `5 `_
+
+ - AdvTransType
+
+ - *
+
+ - CHAR
+
+ - C = CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - R = REPLACE
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `44 `_
+
+ - Price
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `53 `_
+
+ - Shares
+
+ - *
+
+ - INT
+
+ -
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `60 `_
+
+ - TransactTime
+
+ -
+
+ - TIME
+
+ -
+
diff --git a/FIX40/Messages/Allocation.rst b/FIX40/Messages/Allocation.rst
new file mode 100644
index 0000000..b5f462f
--- /dev/null
+++ b/FIX40/Messages/Allocation.rst
@@ -0,0 +1,846 @@
+==============
+Allocation (J)
+==============
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| J | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `70 `_
+
+ - AllocID
+
+ - *
+
+ - INT
+
+ -
+
+ * - `71 `_
+
+ - AllocTransType
+
+ - *
+
+ - CHAR
+
+ - 0 = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = REPLACE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = CANCEL
+
+ * - `74 `_
+
+ - AvgPrxPrecision
+
+ -
+
+ - INT
+
+ -
+
+ * - `6 `_
+
+ - AvgPx
+
+ - *
+
+ - FLOAT
+
+ -
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `64 `_
+
+ - FutSettDate
+
+ -
+
+ - DATE
+
+ -
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `118 `_
+
+ - NetMoney
+
+ -
+
+ - FLOAT
+
+ -
+
+ * -
+
+ - *NoAllocs*
+
+ - *
+
+ -
+
+ -
+
+ * - > `79 `_
+
+ - AllocAccount
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - > `80 `_
+
+ - AllocShares
+
+ - *
+
+ - INT
+
+ -
+
+ * - > `92 `_
+
+ - BrokerOfCredit
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `109 `_
+
+ - ClientID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `13 `_
+
+ - CommType
+
+ -
+
+ - CHAR
+
+ - 1 = PER_SHARE
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 2 = PERCENTAGE
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 3 = ABSOLUTE
+
+ * - > `12 `_
+
+ - Commission
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - > `86 `_
+
+ - DlvyInst
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `76 `_
+
+ - ExecBroker
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `85 `_
+
+ - NoDlvyInst
+
+ -
+
+ - INT
+
+ -
+
+ * - > `81 `_
+
+ - ProcessCode
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 1 = SOFT_DOLLAR
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 2 = STEP_IN
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 3 = STEP_OUT
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 4 = SOFT_DOLLAR_STEP_IN
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 5 = SOFT_DOLLAR_STEP_OUT
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 6 = PLAN_SPONSOR
+
+ * -
+
+ - *NoExecs*
+
+ -
+
+ -
+
+ -
+
+ * - > `17 `_
+
+ - ExecID
+
+ -
+
+ - INT
+
+ -
+
+ * - > `30 `_
+
+ - LastMkt
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `31 `_
+
+ - LastPx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - > `32 `_
+
+ - LastShares
+
+ -
+
+ - INT
+
+ -
+
+ * -
+
+ - *NoMiscFees*
+
+ -
+
+ -
+
+ -
+
+ * - > `137 `_
+
+ - MiscFeeAmt
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - > `138 `_
+
+ - MiscFeeCurr
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `139 `_
+
+ - MiscFeeType
+
+ -
+
+ - CHAR
+
+ - 1 = REGULATORY
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 2 = TAX
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 3 = LOCAL_COMMISSION
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 4 = EXCHANGE_FEES
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 5 = STAMP
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 6 = LEVY
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 7 = OTHER
+
+ * -
+
+ - *NoOrders*
+
+ - *
+
+ -
+
+ -
+
+ * - > `11 `_
+
+ - ClOrdID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - > `66 `_
+
+ - ListID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `37 `_
+
+ - OrderID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `77 `_
+
+ - OpenClose
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `72 `_
+
+ - RefAllocID
+
+ -
+
+ - INT
+
+ -
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `119 `_
+
+ - SettlCurrAmt
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `120 `_
+
+ - SettlCurrency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `63 `_
+
+ - SettlmntTyp
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = CASH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = NEXT_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = T_PLUS_2
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = T_PLUS_3
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = T_PLUS_4
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = FUTURE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = WHEN_ISSUED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = SELLERS_OPTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = T_PLUS_5
+
+ * - `53 `_
+
+ - Shares
+
+ - *
+
+ - INT
+
+ -
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `75 `_
+
+ - TradeDate
+
+ - *
+
+ - DATE
+
+ -
+
+ * - `60 `_
+
+ - TransactTime
+
+ -
+
+ - TIME
+
+ -
+
diff --git a/FIX40/Messages/AllocationInstructionAck.rst b/FIX40/Messages/AllocationInstructionAck.rst
new file mode 100644
index 0000000..4119caa
--- /dev/null
+++ b/FIX40/Messages/AllocationInstructionAck.rst
@@ -0,0 +1,206 @@
+============================
+AllocationInstructionAck (P)
+============================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| P | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `70 `_
+
+ - AllocID
+
+ - *
+
+ - INT
+
+ -
+
+ * - `88 `_
+
+ - AllocRejCode
+
+ -
+
+ - INT
+
+ - 0 = UNKNOWN_ACCOUNT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = INCORRECT_QUANTITY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = INCORRECT_AVERAGE_PRICE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = UNKNOWN_EXECUTING_BROKER_MNEMONIC
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = COMMISSION_DIFFERENCE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = UNKNOWN_ORDERID
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = UNKNOWN_LISTID
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = OTHER
+
+ * - `87 `_
+
+ - AllocStatus
+
+ - *
+
+ - INT
+
+ - 0 = ACCEPTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = REJECTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = PARTIAL_ACCEPT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = RECEIVED
+
+ * - `109 `_
+
+ - ClientID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `76 `_
+
+ - ExecBroker
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `75 `_
+
+ - TradeDate
+
+ - *
+
+ - DATE
+
+ -
+
+ * - `60 `_
+
+ - TransactTime
+
+ -
+
+ - TIME
+
+ -
+
diff --git a/FIX40/Messages/DontKnowTrade.rst b/FIX40/Messages/DontKnowTrade.rst
new file mode 100644
index 0000000..ac9c972
--- /dev/null
+++ b/FIX40/Messages/DontKnowTrade.rst
@@ -0,0 +1,216 @@
+=================
+DontKnowTrade (Q)
+=================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| Q | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `127 `_
+
+ - DKReason
+
+ - *
+
+ - CHAR
+
+ - A = UNKNOWN_SYMBOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = WRONG_SIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = QUANTITY_EXCEEDS_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = NO_MATCHING_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = PRICE_EXCEEDS_LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Z = OTHER
+
+ * - `17 `_
+
+ - ExecID
+
+ -
+
+ - INT
+
+ -
+
+ * - `31 `_
+
+ - LastPx
+
+ - *
+
+ - FLOAT
+
+ -
+
+ * - `32 `_
+
+ - LastShares
+
+ - *
+
+ - INT
+
+ -
+
+ * - `37 `_
+
+ - OrderID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `38 `_
+
+ - OrderQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/Email.rst b/FIX40/Messages/Email.rst
new file mode 100644
index 0000000..6f5ec57
--- /dev/null
+++ b/FIX40/Messages/Email.rst
@@ -0,0 +1,136 @@
+=========
+Email (C)
+=========
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| C | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `11 `_
+
+ - ClOrdID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `94 `_
+
+ - EmailType
+
+ - *
+
+ - CHAR
+
+ - 0 = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = REPLY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = ADMIN_REPLY
+
+ * - `33 `_
+
+ - LinesOfText
+
+ - *
+
+ - INT
+
+ -
+
+ * - `37 `_
+
+ - OrderID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `42 `_
+
+ - OrigTime
+
+ -
+
+ - TIME
+
+ -
+
+ * - `96 `_
+
+ - RawData
+
+ -
+
+ - DATA
+
+ -
+
+ * - `95 `_
+
+ - RawDataLength
+
+ -
+
+ - LENGTH
+
+ -
+
+ * - `46 `_
+
+ - RelatdSym
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ - *
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/ExecutionReport.rst b/FIX40/Messages/ExecutionReport.rst
new file mode 100644
index 0000000..6f79e3f
--- /dev/null
+++ b/FIX40/Messages/ExecutionReport.rst
@@ -0,0 +1,1536 @@
+===================
+ExecutionReport (8)
+===================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| 8 | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `1 `_
+
+ - Account
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `6 `_
+
+ - AvgPx
+
+ - *
+
+ - FLOAT
+
+ -
+
+ * - `11 `_
+
+ - ClOrdID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `109 `_
+
+ - ClientID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `13 `_
+
+ - CommType
+
+ -
+
+ - CHAR
+
+ - 1 = PER_SHARE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = PERCENTAGE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = ABSOLUTE
+
+ * - `12 `_
+
+ - Commission
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `14 `_
+
+ - CumQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `76 `_
+
+ - ExecBroker
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `17 `_
+
+ - ExecID
+
+ - *
+
+ - INT
+
+ -
+
+ * - `18 `_
+
+ - ExecInst
+
+ -
+
+ - CHAR
+
+ - 0 = STAY_ON_OFFERSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = NOT_HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = WORK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = GO_ALONG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = OVER_THE_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PARTICIPATE_DONT_INITIATE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = STRICT_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = TRY_TO_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = STAY_ON_BIDSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = NO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = OK_TO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = CALL_FIRST
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PERCENT_OF_VOLUME
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = DO_NOT_INCREASE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - F = DO_NOT_REDUCE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - G = ALL_OR_NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INSTITUTIONS_ONLY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - L = LAST_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MID_PRICE_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = NON_NEGOTIABLE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - O = OPENING_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = MARKET_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - R = PRIMARY_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = SUSPEND
+
+ * - `19 `_
+
+ - ExecRefID
+
+ -
+
+ - INT
+
+ -
+
+ * - `20 `_
+
+ - ExecTransType
+
+ - *
+
+ - CHAR
+
+ - 0 = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = CORRECT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STATUS
+
+ * - `126 `_
+
+ - ExpireTime
+
+ -
+
+ - TIME
+
+ -
+
+ * - `64 `_
+
+ - FutSettDate
+
+ -
+
+ - DATE
+
+ -
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `29 `_
+
+ - LastCapacity
+
+ -
+
+ - CHAR
+
+ - 1 = AGENT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = CROSS_AS_AGENT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = CROSS_AS_PRINCIPAL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = PRINCIPAL
+
+ * - `30 `_
+
+ - LastMkt
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `31 `_
+
+ - LastPx
+
+ - *
+
+ - FLOAT
+
+ -
+
+ * - `32 `_
+
+ - LastShares
+
+ - *
+
+ - INT
+
+ -
+
+ * - `66 `_
+
+ - ListID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `118 `_
+
+ - NetMoney
+
+ -
+
+ - FLOAT
+
+ -
+
+ * -
+
+ - *NoMiscFees*
+
+ -
+
+ -
+
+ -
+
+ * - > `137 `_
+
+ - MiscFeeAmt
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - > `138 `_
+
+ - MiscFeeCurr
+
+ -
+
+ - CHAR
+
+ -
+
+ * - > `139 `_
+
+ - MiscFeeType
+
+ -
+
+ - CHAR
+
+ - 1 = REGULATORY
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 2 = TAX
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 3 = LOCAL_COMMISSION
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 4 = EXCHANGE_FEES
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 5 = STAMP
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 6 = LEVY
+
+ * - >
+
+ -
+
+ -
+
+ -
+
+ - 7 = OTHER
+
+ * - `103 `_
+
+ - OrdRejReason
+
+ -
+
+ - INT
+
+ - 0 = BROKER_OPTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = UNKNOWN_SYMBOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = EXCHANGE_CLOSED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = ORDER_EXCEEDS_LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = TOO_LATE_TO_ENTER
+
+ * - `39 `_
+
+ - OrdStatus
+
+ - *
+
+ - CHAR
+
+ - 0 = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = PARTIALLY_FILLED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = FILLED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = DONE_FOR_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = CANCELED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = REPLACED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PENDING_CANCEL_REPLACE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = STOPPED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = REJECTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = SUSPENDED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = PENDING_NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = CALCULATED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = EXPIRED
+
+ * - `40 `_
+
+ - OrdType
+
+ -
+
+ - CHAR
+
+ - 1 = MARKET
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STOP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = STOP_LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = MARKET_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = LIMIT_OR_BETTER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = LIMIT_WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = ON_BASIS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = LIMIT_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = FOREX
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PREVIOUSLY_QUOTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = PREVIOUSLY_INDICATED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = PEGGED
+
+ * - `37 `_
+
+ - OrderID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `38 `_
+
+ - OrderQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `44 `_
+
+ - Price
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `113 `_
+
+ - ReportToExch
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `47 `_
+
+ - Rule80A
+
+ -
+
+ - CHAR
+
+ - A = AGENCY_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = PROGRAM_ORDER_NON_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PROGRAM_ORDER_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INDIVIDUAL_INVESTOR_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - J = PROGRAM_ORDER_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - K = PROGRAM_ORDER_NON_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - U = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - W = ALL_OTHER_ORDERS_AS_AGENT_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `119 `_
+
+ - SettlCurrAmt
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `120 `_
+
+ - SettlCurrency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `63 `_
+
+ - SettlmntTyp
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = CASH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = NEXT_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = T_PLUS_2
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = T_PLUS_3
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = T_PLUS_4
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = FUTURE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = WHEN_ISSUED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = SELLERS_OPTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = T_PLUS_5
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `99 `_
+
+ - StopPx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `59 `_
+
+ - TimeInForce
+
+ -
+
+ - CHAR
+
+ - 0 = DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = GOOD_TILL_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = AT_THE_OPENING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = IMMEDIATE_OR_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = FILL_OR_KILL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = GOOD_TILL_CROSSING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = GOOD_TILL_DATE
+
+ * - `75 `_
+
+ - TradeDate
+
+ -
+
+ - DATE
+
+ -
+
+ * - `60 `_
+
+ - TransactTime
+
+ -
+
+ - TIME
+
+ -
+
diff --git a/FIX40/Messages/Heartbeat.rst b/FIX40/Messages/Heartbeat.rst
new file mode 100644
index 0000000..b7b3d96
--- /dev/null
+++ b/FIX40/Messages/Heartbeat.rst
@@ -0,0 +1,36 @@
+=============
+Heartbeat (0)
+=============
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| 0 | ADMIN |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `112 `_
+
+ - TestReqID
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/IOI.rst b/FIX40/Messages/IOI.rst
new file mode 100644
index 0000000..bde7213
--- /dev/null
+++ b/FIX40/Messages/IOI.rst
@@ -0,0 +1,506 @@
+=======
+IOI (6)
+=======
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| 6 | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `130 `_
+
+ - IOINaturalFlag
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `24 `_
+
+ - IOIOthSvc
+
+ -
+
+ - CHAR
+
+ - A = AUTEX
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = BRIDGE
+
+ * - `25 `_
+
+ - IOIQltyInd
+
+ -
+
+ - CHAR
+
+ - H = HIGH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - L = LOW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MEDIUM
+
+ * - `104 `_
+
+ - IOIQualifier
+
+ -
+
+ - CHAR
+
+ - A = ALL_OR_NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = AT_THE_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = IN_TOUCH_WITH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - L = LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MORE_BEHIND
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - O = AT_THE_OPEN
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = TAKING_A_POSITION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Q = CURRENT_QUOTE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = PORTFOLIO_SHOW_N
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - T = THROUGH_THE_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - V = VERSUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - W = INDICATION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - X = CROSSING_OPPORTUNITY
+
+ * - `26 `_
+
+ - IOIRefID
+
+ -
+
+ - INT
+
+ -
+
+ * - `27 `_
+
+ - IOIShares
+
+ - *
+
+ - CHAR
+
+ - L = LARGE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MEDIUM
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = SMALL
+
+ * - `28 `_
+
+ - IOITransType
+
+ - *
+
+ - CHAR
+
+ - C = CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = NEW
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - R = REPLACE
+
+ * - `23 `_
+
+ - IOIid
+
+ - *
+
+ - INT
+
+ -
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `44 `_
+
+ - Price
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `62 `_
+
+ - ValidUntilTime
+
+ -
+
+ - TIME
+
+ -
+
diff --git a/FIX40/Messages/ListCancelRequest.rst b/FIX40/Messages/ListCancelRequest.rst
new file mode 100644
index 0000000..3004699
--- /dev/null
+++ b/FIX40/Messages/ListCancelRequest.rst
@@ -0,0 +1,56 @@
+=====================
+ListCancelRequest (K)
+=====================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| K | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `66 `_
+
+ - ListID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/ListExecute.rst b/FIX40/Messages/ListExecute.rst
new file mode 100644
index 0000000..ccb1ec1
--- /dev/null
+++ b/FIX40/Messages/ListExecute.rst
@@ -0,0 +1,56 @@
+===============
+ListExecute (L)
+===============
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| L | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `66 `_
+
+ - ListID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/ListStatus.rst b/FIX40/Messages/ListStatus.rst
new file mode 100644
index 0000000..e622579
--- /dev/null
+++ b/FIX40/Messages/ListStatus.rst
@@ -0,0 +1,116 @@
+==============
+ListStatus (N)
+==============
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| N | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `66 `_
+
+ - ListID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * -
+
+ - *NoOrders*
+
+ - *
+
+ -
+
+ -
+
+ * - > `6 `_
+
+ - AvgPx
+
+ - *
+
+ - FLOAT
+
+ -
+
+ * - > `11 `_
+
+ - ClOrdID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - > `14 `_
+
+ - CumQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - > `84 `_
+
+ - CxlQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `82 `_
+
+ - NoRpts
+
+ - *
+
+ - INT
+
+ -
+
+ * - `83 `_
+
+ - RptSeq
+
+ - *
+
+ - INT
+
+ -
+
+ * - `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/ListStatusRequest.rst b/FIX40/Messages/ListStatusRequest.rst
new file mode 100644
index 0000000..0a64238
--- /dev/null
+++ b/FIX40/Messages/ListStatusRequest.rst
@@ -0,0 +1,56 @@
+=====================
+ListStatusRequest (M)
+=====================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| M | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `66 `_
+
+ - ListID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/Logon.rst b/FIX40/Messages/Logon.rst
new file mode 100644
index 0000000..cfc0900
--- /dev/null
+++ b/FIX40/Messages/Logon.rst
@@ -0,0 +1,126 @@
+=========
+Logon (A)
+=========
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| A | ADMIN |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `98 `_
+
+ - EncryptMethod
+
+ - *
+
+ - INT
+
+ - 0 = NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = PKCS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = DES
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = PKCS_DES
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = PGP_DES
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = PGP_DES_MD5
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PEM_DES_MD5
+
+ * - `108 `_
+
+ - HeartBtInt
+
+ - *
+
+ - INT
+
+ -
+
+ * - `96 `_
+
+ - RawData
+
+ -
+
+ - DATA
+
+ -
+
+ * - `95 `_
+
+ - RawDataLength
+
+ -
+
+ - LENGTH
+
+ -
+
diff --git a/FIX40/Messages/Logout.rst b/FIX40/Messages/Logout.rst
new file mode 100644
index 0000000..e0aef3d
--- /dev/null
+++ b/FIX40/Messages/Logout.rst
@@ -0,0 +1,36 @@
+==========
+Logout (5)
+==========
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| 5 | ADMIN |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/NewOrderList.rst b/FIX40/Messages/NewOrderList.rst
new file mode 100644
index 0000000..10254cd
--- /dev/null
+++ b/FIX40/Messages/NewOrderList.rst
@@ -0,0 +1,1266 @@
+================
+NewOrderList (E)
+================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| E | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `1 `_
+
+ - Account
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `11 `_
+
+ - ClOrdID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `109 `_
+
+ - ClientID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `13 `_
+
+ - CommType
+
+ -
+
+ - CHAR
+
+ - 1 = PER_SHARE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = PERCENTAGE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = ABSOLUTE
+
+ * - `12 `_
+
+ - Commission
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `100 `_
+
+ - ExDestination
+
+ -
+
+ - CHAR
+
+ - 0 = NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = POSIT
+
+ * - `76 `_
+
+ - ExecBroker
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `18 `_
+
+ - ExecInst
+
+ -
+
+ - CHAR
+
+ - 0 = STAY_ON_OFFERSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = NOT_HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = WORK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = GO_ALONG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = OVER_THE_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PARTICIPATE_DONT_INITIATE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = STRICT_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = TRY_TO_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = STAY_ON_BIDSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = NO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = OK_TO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = CALL_FIRST
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PERCENT_OF_VOLUME
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = DO_NOT_INCREASE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - F = DO_NOT_REDUCE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - G = ALL_OR_NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INSTITUTIONS_ONLY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - L = LAST_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MID_PRICE_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = NON_NEGOTIABLE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - O = OPENING_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = MARKET_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - R = PRIMARY_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = SUSPEND
+
+ * - `126 `_
+
+ - ExpireTime
+
+ -
+
+ - TIME
+
+ -
+
+ * - `121 `_
+
+ - ForexReq
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `64 `_
+
+ - FutSettDate
+
+ -
+
+ - DATE
+
+ -
+
+ * - `21 `_
+
+ - HandlInst
+
+ - *
+
+ - CHAR
+
+ - 1 = AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = MANUAL_ORDER_BEST_EXECUTION
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `69 `_
+
+ - ListExecInst
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `66 `_
+
+ - ListID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `68 `_
+
+ - ListNoOrds
+
+ - *
+
+ - INT
+
+ -
+
+ * - `67 `_
+
+ - ListSeqNo
+
+ - *
+
+ - INT
+
+ -
+
+ * - `114 `_
+
+ - LocateReqd
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `111 `_
+
+ - MaxFloor
+
+ -
+
+ - INT
+
+ -
+
+ * - `110 `_
+
+ - MinQty
+
+ -
+
+ - INT
+
+ -
+
+ * - `40 `_
+
+ - OrdType
+
+ - *
+
+ - CHAR
+
+ - 1 = MARKET
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STOP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = STOP_LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = MARKET_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = LIMIT_OR_BETTER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = LIMIT_WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = ON_BASIS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = LIMIT_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = FOREX
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PREVIOUSLY_QUOTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = PREVIOUSLY_INDICATED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = PEGGED
+
+ * - `38 `_
+
+ - OrderQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `140 `_
+
+ - PrevClosePx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `44 `_
+
+ - Price
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `81 `_
+
+ - ProcessCode
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = SOFT_DOLLAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = STEP_IN
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STEP_OUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SOFT_DOLLAR_STEP_IN
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SOFT_DOLLAR_STEP_OUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PLAN_SPONSOR
+
+ * - `47 `_
+
+ - Rule80A
+
+ -
+
+ - CHAR
+
+ - A = AGENCY_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = PROGRAM_ORDER_NON_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PROGRAM_ORDER_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INDIVIDUAL_INVESTOR_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - J = PROGRAM_ORDER_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - K = PROGRAM_ORDER_NON_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - U = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - W = ALL_OTHER_ORDERS_AS_AGENT_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `120 `_
+
+ - SettlCurrency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `63 `_
+
+ - SettlmntTyp
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = CASH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = NEXT_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = T_PLUS_2
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = T_PLUS_3
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = T_PLUS_4
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = FUTURE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = WHEN_ISSUED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = SELLERS_OPTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = T_PLUS_5
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `99 `_
+
+ - StopPx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `59 `_
+
+ - TimeInForce
+
+ -
+
+ - CHAR
+
+ - 0 = DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = GOOD_TILL_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = AT_THE_OPENING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = IMMEDIATE_OR_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = FILL_OR_KILL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = GOOD_TILL_CROSSING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = GOOD_TILL_DATE
+
+ * - `105 `_
+
+ - WaveNo
+
+ -
+
+ - CHAR
+
+ -
+
diff --git a/FIX40/Messages/NewOrderSingle.rst b/FIX40/Messages/NewOrderSingle.rst
new file mode 100644
index 0000000..a84d23d
--- /dev/null
+++ b/FIX40/Messages/NewOrderSingle.rst
@@ -0,0 +1,1236 @@
+==================
+NewOrderSingle (D)
+==================
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| D | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `1 `_
+
+ - Account
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `11 `_
+
+ - ClOrdID
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `109 `_
+
+ - ClientID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `13 `_
+
+ - CommType
+
+ -
+
+ - CHAR
+
+ - 1 = PER_SHARE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = PERCENTAGE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = ABSOLUTE
+
+ * - `12 `_
+
+ - Commission
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `15 `_
+
+ - Currency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `100 `_
+
+ - ExDestination
+
+ -
+
+ - CHAR
+
+ - 0 = NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = POSIT
+
+ * - `76 `_
+
+ - ExecBroker
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `18 `_
+
+ - ExecInst
+
+ -
+
+ - CHAR
+
+ - 0 = STAY_ON_OFFERSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = NOT_HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = WORK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = GO_ALONG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = OVER_THE_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = HELD
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PARTICIPATE_DONT_INITIATE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = STRICT_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = TRY_TO_SCALE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = STAY_ON_BIDSIDE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = NO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = OK_TO_CROSS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = CALL_FIRST
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PERCENT_OF_VOLUME
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = DO_NOT_INCREASE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - F = DO_NOT_REDUCE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - G = ALL_OR_NONE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INSTITUTIONS_ONLY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - L = LAST_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = MID_PRICE_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = NON_NEGOTIABLE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - O = OPENING_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = MARKET_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - R = PRIMARY_PEG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - S = SUSPEND
+
+ * - `126 `_
+
+ - ExpireTime
+
+ -
+
+ - TIME
+
+ -
+
+ * - `121 `_
+
+ - ForexReq
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `64 `_
+
+ - FutSettDate
+
+ -
+
+ - DATE
+
+ -
+
+ * - `21 `_
+
+ - HandlInst
+
+ - *
+
+ - CHAR
+
+ - 1 = AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = MANUAL_ORDER_BEST_EXECUTION
+
+ * - `22 `_
+
+ - IDSource
+
+ -
+
+ - CHAR
+
+ - 1 = CUSIP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SEDOL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = QUIK
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = ISIN_NUMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = RIC_CODE
+
+ * - `23 `_
+
+ - IOIid
+
+ -
+
+ - INT
+
+ -
+
+ * - `106 `_
+
+ - Issuer
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `114 `_
+
+ - LocateReqd
+
+ -
+
+ - CHAR
+
+ - N = NO
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = YES
+
+ * - `111 `_
+
+ - MaxFloor
+
+ -
+
+ - INT
+
+ -
+
+ * - `110 `_
+
+ - MinQty
+
+ -
+
+ - INT
+
+ -
+
+ * - `40 `_
+
+ - OrdType
+
+ - *
+
+ - CHAR
+
+ - 1 = MARKET
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STOP
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = STOP_LIMIT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = MARKET_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = LIMIT_OR_BETTER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = LIMIT_WITH_OR_WITHOUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = ON_BASIS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - A = ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - B = LIMIT_ON_CLOSE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = FOREX
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PREVIOUSLY_QUOTED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - E = PREVIOUSLY_INDICATED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - P = PEGGED
+
+ * - `38 `_
+
+ - OrderQty
+
+ - *
+
+ - INT
+
+ -
+
+ * - `140 `_
+
+ - PrevClosePx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `44 `_
+
+ - Price
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `81 `_
+
+ - ProcessCode
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = SOFT_DOLLAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = STEP_IN
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = STEP_OUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SOFT_DOLLAR_STEP_IN
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SOFT_DOLLAR_STEP_OUT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = PLAN_SPONSOR
+
+ * - `117 `_
+
+ - QuoteID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `47 `_
+
+ - Rule80A
+
+ -
+
+ - CHAR
+
+ - A = AGENCY_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - C = PROGRAM_ORDER_NON_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - D = PROGRAM_ORDER_INDEX_ARB_FOR_MEMBER_FIRM_ORG
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - I = INDIVIDUAL_INVESTOR_SINGLE_ORDER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - J = PROGRAM_ORDER_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - K = PROGRAM_ORDER_NON_INDEX_ARB_FOR_INDIVIDUAL_CUSTOMER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - M = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - N = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - U = PROGRAM_ORDER_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - W = ALL_OTHER_ORDERS_AS_AGENT_FOR_OTHER_MEMBER
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - Y = PROGRAM_ORDER_NON_INDEX_ARB_FOR_OTHER_AGENCY
+
+ * - `107 `_
+
+ - SecurityDesc
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `48 `_
+
+ - SecurityID
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `120 `_
+
+ - SettlCurrency
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `63 `_
+
+ - SettlmntTyp
+
+ -
+
+ - CHAR
+
+ - 0 = REGULAR
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = CASH
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = NEXT_DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = T_PLUS_2
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = T_PLUS_3
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = T_PLUS_4
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = FUTURE
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 7 = WHEN_ISSUED
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 8 = SELLERS_OPTION
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 9 = T_PLUS_5
+
+ * - `54 `_
+
+ - Side
+
+ - *
+
+ - CHAR
+
+ - 1 = BUY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = SELL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = BUY_MINUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = SELL_PLUS
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = SELL_SHORT
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = SELL_SHORT_EXEMPT
+
+ * - `99 `_
+
+ - StopPx
+
+ -
+
+ - FLOAT
+
+ -
+
+ * - `55 `_
+
+ - Symbol
+
+ - *
+
+ - CHAR
+
+ -
+
+ * - `65 `_
+
+ - SymbolSfx
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58 `_
+
+ - Text
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `59 `_
+
+ - TimeInForce
+
+ -
+
+ - CHAR
+
+ - 0 = DAY
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 1 = GOOD_TILL_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 2 = AT_THE_OPENING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 3 = IMMEDIATE_OR_CANCEL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 4 = FILL_OR_KILL
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 5 = GOOD_TILL_CROSSING
+
+ * -
+
+ -
+
+ -
+
+ -
+
+ - 6 = GOOD_TILL_DATE
+
diff --git a/FIX40/Messages/News.rst b/FIX40/Messages/News.rst
new file mode 100644
index 0000000..d2bf97e
--- /dev/null
+++ b/FIX40/Messages/News.rst
@@ -0,0 +1,116 @@
+========
+News (B)
+========
+
++---------+----------+
+| MsgType | Category |
++=========+==========+
+| B | APP |
++---------+----------+
+
+Fields
+------
+
+.. list-table::
+ :header-rows: 1
+
+ * - Tag
+
+ - Field Name
+
+ - Req'd
+
+ - Data Type
+
+ - Acceptable Enums
+
+ * - `33 `_
+
+ - LinesOfText
+
+ - *
+
+ - INT
+
+ -
+
+ * - `42 `_
+
+ - OrigTime
+
+ -
+
+ - TIME
+
+ -
+
+ * - `96 `_
+
+ - RawData
+
+ -
+
+ - DATA
+
+ -
+
+ * - `95 `_
+
+ - RawDataLength
+
+ -
+
+ - LENGTH
+
+ -
+
+ * - `46 `_
+
+ - RelatdSym
+
+ -
+
+ - CHAR
+
+ -
+
+ * - `58