Imported from previous forum
[ original email was from Ainhoa Dewisme - ainhoa.dewisme@reuters.com ]
Hi,
I have gone through the Business Message Reject section on Volume 1, including the exceptions to the rule and also I have also looked at Product: Foreign Exchange on Volume 7 and particularly Settlement Instructions. I have the following question:
If a FIX user places an FX SWAP Trade to a market place but does not specify the tenor, can the market place (with trading rules that require settlement type to be specified) generate a Business Message Reject with “Conditionally Required Field Missing”?
Thanks and Regards
Ainhoa
Yes absolutely.
Obviously the more information that you are able to provide in teh reject message, the less the support overhead. I would tend therefore to be as descriptive as possible and actually specify “Tenor Missing for Swap Leg”
George
In general a business level reject should be used in preference to any
Hi,
I have gone through the Business Message Reject section on Volume 1,
including the exceptions to the rule and also I have also looked at
Product: Foreign Exchange on Volume 7 and particularly Settlement
Instructions. I have the following question:If a FIX user places an FX SWAP Trade to a market place but does not
specify the tenor, can the market place (with trading rules that require
settlement type to be specified) generate a Business Message Reject with
“Conditionally Required Field Missing”?Thanks and Regards
Ainhoa
When Ainhoa stated an “FX Swap Trade”, I assumed this referred to a New Order - Single (vs. an Execution Report or other message). The spec states that you should use the appropriate message-specific reject message, in this case an Execution Report with ExecType = Rejected, rather than the Business Message Reject message.
Yes absolutely.
Obviously the more information that you are able to provide in teh
reject message, the less the support overhead. I would tend therefore
to be as descriptive as possible and actually specify “Tenor Missing
for Swap Leg”George
In general a business level reject should be used in preference to any
Hi,
I have gone through the Business Message Reject section on Volume 1,
including the exceptions to the rule and also I have also looked at
Product: Foreign Exchange on Volume 7 and particularly Settlement
Instructions. I have the following question:If a FIX user places an FX SWAP Trade to a market place but does not
specify the tenor, can the market place (with trading rules that
require settlement type to be specified) generate a Business Message
Reject with “Conditionally Required Field Missing”?Thanks and Regards
Ainhoa
[ original email was from Ainhoa Dewisme - ainhoa.dewisme@reuters.com ]
Thank you for your response. The reason I am not clear is that the specification gives 3 exceptions to which a business reject message may be sent:
“3.In the event a business message is received, fulfills session-level rules, but lacks a field conditionally required by the FIX specification. In this situation a Business Message Reject with BusinessRejectReason = “Conditionally Required Field Missing” can be issued if the system is unable to send the specific “reject” message listed above. One example of this would be a stop order missing StopPx.”
Is there a situation when a system may not be able to send an ExecutionReport Reject but may be able to send a Business Message Reject? both messages are application messages …
Regards
Ainhoa
The question is valid as the situation might be that you are unable to determine to which message you are responding with a reject. But then you might not be able to determine which fields are conditionally required…
My guess is that in most cases, you will be able to send the specific message. It is just the “catch all” case at the end of your if-statements that sends a generic business message reject.
Thank you for your response. The reason I am not clear is that the
specification gives 3 exceptions to which a business reject message
may be sent:“3.In the event a business message is received, fulfills session-level
rules, but lacks a field conditionally required by the FIX
specification. In this situation a Business Message Reject with
BusinessRejectReason = “Conditionally Required Field Missing” can be
issued if the system is unable to send the specific “reject” message
listed above. One example of this would be a stop order missing StopPx.”Is there a situation when a system may not be able to send an
ExecutionReport Reject but may be able to send a Business Message
Reject? both messages are application messages …Regards
Ainhoa
[ original email was from Ainhoa Dewisme - ainhoa.dewisme@reuters.com ]
Thanks very much.
Execution Report ExecType = Reject will normally take preference over Business Message Reject.
However ER OrdRejReason tag does not include a code for “conditionally required field missing”. Business Message Reject message does include this code in BusinessRejectReason tag.
Hence in the scenario described initially I would see Business Message Reject as the message to use without breaking the FIX standard rules. Please let me know if this not the case.
Regards
Ainhoa
I am afraid, the specific response message takes precedence over the generic one. The lack of the error you mention is probably due to the fact that no syntactical errors are included in general. A lot of these errors will be caught by a standard FIX engine that can check for absolute or conditional presence of fields automatically.
OrdRejReason has 99=Other and user-defined reject reasons above 100 as well so that you should be able to model whatever you need without having to revert to a Business Message Reject (BMR). It should also be easier for the application that usually expects an ER for a NewOrderSingle. If you split your rejects between ERs and BMRs according to some logic, it seems more complex to handle.
It seems hard to find an example where a BMR with reject reason 5 (cond requ field missing) is returned. I guess it applies most to messages that do not have a response message at all or one with a reject reason field in them (e.g. UserRequest). Maybe somebody else has a good example.
Hope it helps,
Hanno.
Thanks very much. Execution Report ExecType = Reject will normally take
preference over Business Message Reject.However ER OrdRejReason tag does not include a code for “conditionally
required field missing”. Business Message Reject message does include
this code in BusinessRejectReason tag.Hence in the scenario described initially I would see Business Message
Reject as the message to use without breaking the FIX standard rules.
Please let me know if this not the case.Regards
Ainhoa
[ original email was from Ainhoa Dewisme - ainhoa.dewisme@reuters.com ]
Thanks again. Sending just one message to easy customer experience is a very good point. It is very clear to me now all different scenarios.
Regards
Ainhoa
[ original email was from Ainhoa Dewisme - ainhoa.dewisme@reuters.com ]
Hi,
I have been thinking about this and i have one question …If the marketplace rejects an order due to conditionally missing fields, the system will not generate unique OrderID (tag 37) or unique ExecID (tag 17) - What are the values that can be set in the mandatory fields ExecID, ExecType, OrdStatus, OrderID?
If unique ids need generating we may have no option but to send a BMR instead.
Thanks and Regards
Ainhoa
ExecID = <message identifier, not entity identifier>
ExecType = Rejected
OrdStatus = Rejected
OrderID = 0 or
You need to assign an ExecID as it identifies the reponse message. I agree that an OrderID can be hard to generate if the order message does not even make it that far to get one assigned.
Hi,
I have been thinking about this and i have one question …If the
marketplace rejects an order due to conditionally missing fields, the
system will not generate unique OrderID (tag 37) or unique ExecID (tag
17) - What are the values that can be set in the mandatory fields
ExecID, ExecType, OrdStatus, OrderID?If unique ids need generating we may have no option but to send a
BMR instead.Thanks and Regards
Ainhoa
I am sorry,
I had just been having a long discussion about session level rejects with someone else, where I had been pushing for business level rejects over session level ones.
Of course if it is a rejection of an order, then in almost all cases you would go for an execution report with 39=9 and something meaningful in 58.
You should absolutely use the most specific message that you can find, to ensure that you are giving back as much context to the other side as you can.
Sorry again… I answered a question that I thought you asked, rather than the one you DID ask ![]()
Yes absolutely.
Obviously the more information that you are able to provide in teh
reject message, the less the support overhead. I would tend therefore
to be as descriptive as possible and actually specify “Tenor Missing
for Swap Leg”George
In general a business level reject should be used in preference to any
Hi,
I have gone through the Business Message Reject section on Volume 1,
including the exceptions to the rule and also I have also looked at
Product: Foreign Exchange on Volume 7 and particularly Settlement
Instructions. I have the following question:If a FIX user places an FX SWAP Trade to a market place but does not
specify the tenor, can the market place (with trading rules that
require settlement type to be specified) generate a Business Message
Reject with “Conditionally Required Field Missing”?Thanks and Regards
Ainhoa