Page History
...
Client Logon next-expected = MF actual
Receive Client receives TestRequest, correctly send sends Heartbeat response.
Client Logon next-expected < MF actual
Correctly Client correctly handles resent messages and/or SequenceResetGapFill SequenceReset(GapFill) messages.
Receive Client receives TestRequest, correctly send sends Heartbeat response.
Client Logon next-expected > MF actual
Expect Client expects disconnect.
MF LogonResponse next-expected = Client actual
Correctly Client correctly sends TestRequest , wait and waits for Heartbeat response (this is synchronisation complete).
MF LogonResponse next-expected < Client actual
Correctly The Client correctly resends messages and/or SequenceResetGapFill messagespersisted stateful messages.
The Client correctly uses SequenceReset(GapFill) messages to skip over blocks of non-persisted messages. Refer to Client Session Management -MessagePersistence for details.
MF LogonResponse next-expected > Client actual
Correctly The Client correctly disconnects.
Logoff
All client sessions must be terminated gracefully in normal circumstances.
Client-Initiated Logoff
The Client may only issue Logoff when no Venue session is active.
The Client waits for the reciprocal Logoff LogoffResponse message from MF.
MF-Initiated (e.g. on weekend restart)
The Client responds to MF-issued Logoff message with a reciprocal LogoffLogoffResponse.
Dropped Socket Connection
Test force disconnect & automatic reconnect of session.
Session Monitoring
Client Heartbeats
...
In the event that no message has been received from MF after the HeartBtInt, the Client
...
correctly timesout and sends a TestRequest.
...
In the event that no Heartbeat response to the Client TestRequest has been received from MF after a further HeartBtInt, the Client correctly timesout and sends a Logout.
...
In the event that no LogoutResponse to the Client Logout has been received from MF after a further HeartBtInt, the Client correctly timesout and disconnects.
TestRequest Handling
The Client sends a Heartbeat message with the correct TestReqID in response to every MF TestRequest message received.
...
UserRequest (LogOnUser)
Client directs instructs MF to connect to Venue.
Message should only be sent when the client is not currently logged on.
...
Client is notified when Venue connectivity is established.
UserRequest (LogOffUser)
Client directs Client instructs MF to disconnect from Venue.
Message This message may be sent when:
- When MF is in a connection-attempt cycle, after a prior UserRequest (LogOnUser)
- When client Client has been notified that they have been logged on via UserNotification (LoggedOn).
...
Maker certification should focus primarily on outbound (Client > MF) message correctness.
RFS Workflow
Pricing
QuoteRequest
The Client is able to receive and correctly identify all flavours of RFS requests, i.e. permutations and combinations of the following:
- SecurityType: SPT, FWD, NDF, SWP, NDS, BLK (FXall), NDB (FXall)
- Allocations: Single and Multiple (including zero net allocs).
- Side: Buy/Sell/Two-Way
- Dealt Currency: Base/Term ccy qtys
- Regulatory framework: OFF/SEF/MTF
QuoteResponse
Ensure Client handles The Client must ensure that they handle all RFS termination modes.
Outbound Client > Venue
Quote Request Rejection
The Client should be able to send specify different rejection reasons in the QuoteRequestRejectReason field, e.g. Credit check failure vs unsupported pair.
The Client should be able to specify additional detail in the Text field , e.g. "Order breaches daily settlement limit by 2m."
Quote Request Timeout
The Client should terminate RFSs after a period of time (e.g. 3-5m). The Client timeout may, or may not, match the Venue setting, or the counterparty-specified duration.
Inbound Venue > Client
Client must be aware of availability of Custom error codes for:
- FXall QuickTrade
- Currenex RFS (TODO: Create page on TheSauce).
Quote Request Timeout
must be able to handle Venue-termination of active RFS - either due to the Venue stream timeout, or because the counterparty dealt away, or because the counterparty canceled the request.
Quote
Quote messages must be generated for all the permutations and combinations of QuoteRequest above.
The Client must demonstrate correct usage of the following attributes:
- QuoteIDs - Uniqueness is verified. The following characters are not allowed: ¬~`_!*,-:=[]/#<>
- QuoteType - various combinations of Indicative/Tradeable for Bid and/or Offer.
- ValidUntilTime - the Client should confirm whether this is part of their pricing workflow, or not.
- Price precision - very important for Fwds. Refer to Prices and Quantities.
- Regulatory - All regulatory regimes must be explicitly declared as in or out of scope.
- In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF - EDM/IDM - missing, wrong, correct - Client must observe and understand the Venue behaviour for each scenario. Refer to Regulatory Fields FAQ.
- SEF
- OFF
| Tip | ||
|---|---|---|
| ||
If the Client wishes to trade on-MTF or on-SEF, it is essential that the venue has applied the necessary regulatory setup and configuration changes to support this. This is often a problematic process so the Client is advised to declare this as early as possible during the onboarding process. |
QuoteCancel
The Client can explicitly withdraw a previously issued Quote.
Trading
NewOrderMultileg
The Client must be able to receive orders for all the permutations and combinations of QuoteRequest above.
ExecutionReport
The Client must be able to demonstrate both deal acceptance and deal rejection.
Deal Acceptance
Regulatory - All regulatory regimes must be explicitly declared as in or out of scope. In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF
- SEF
- OFF
Deal Rejection
The Client should be able to specify different rejection reasons in the QuoteRequestRejectReason field, e.g. Credit check failure vs stale quote.
The Client should be able to specify additional detail in the Text field , e.g. "Order breaches daily settlement limit by 2m."
ExecutionAcknowledgement
Client must be able to receive acknowledgements of all fills, and possibly rejections, for all the permutations and combinations of QuoteRequest above.
| Warning | ||
|---|---|---|
| ||
In the case that the Client send Bloomberg an ExecutionReport with erroneous regulatory field values (e.g. EDM/IDM values etc), Bloomberg will drop this message silently. No ExecutionAck will be sent. It is the Client's responsibility to ensure that:
|
ESP Workflow
Pricing
QuoteRequest
The Client is able to receive and correctly identify all flavours of ESP requests, i.e. permutations and combinations of the following:
- SecurityType: SPT, FWD, NDF
- SecurityGroup: The Venue may deliver requests for multiple price streams per instrument, as bilaterally agreed with Client.
- Side: Buy/Sell/Two-Way
- Dealt Currency: Base/Term ccy qtys
- Regulatory framework: OFF/SEF/MTF
QuoteResponse
The Client must ensure that they handle all ESP termination modes.
Outbound Client > Venue
Quote Request Rejection
The Client should be able to specify different rejection reasons in the QuoteRequestRejectReason field, e.g. unsupported pair.
The Client should be able to specify additional detail in the Text field , e.g. "Instrument not supported".
Inbound Venue > Client
The Client must be able to handle Venue-termination of active ESP subscriptions - typically due to day roll events.
MassQuote
MassQuote messages must be generated for all the permutations and combinations of QuoteRequest above.
The Client must demonstrate correct usage of the following attributes:
- QuoteID and QuoteEntryIDs - Uniqueness is verified. The following characters are not allowed: ¬~`_!*,-:=[]/#<>
- NoQuoteEntries - Dynamic variation in the number of rungs, and published sides for each rung vs the request.
- QuoteType - various combinations of Indicative/Tradeable for Bid and/or Offer.
- ValidUntilTime - the Client should confirm whether this is part of their pricing workflow, or not.
- Price precision - very important for Fwds. Refer to Prices and Quantities.
- Regulatory - All regulatory regimes must be explicitly declared as in or out of scope.
- In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF - EDM/IDM - missing, wrong, correct - Client must observe and understand the Venue behaviour for each scenario. Refer to Regulatory Fields FAQ.
- SEF
- OFF
| Tip | ||
|---|---|---|
| ||
If the Client wishes to trade on-MTF or on-SEF, it is essential that the venue has applied the necessary regulatory setup and configuration changes to support this. This is often a problematic process so the Client is advised to declare this as early as possible during the onboarding process. |
QuoteCancel
The Client can explicitly withdraw a previously issued MassQuote.
Trading - Last-Look
NewOrderMultileg
The Client must be able to receive orders for all the permutations and combinations of QuoteRequest above.
ExecutionReport
The Client must be able to demonstrate both deal acceptance and deal rejection.
Deal Acceptance
Regulatory - All regulatory regimes must be explicitly declared as in or out of scope. In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF
- SEF
- OFF
Deal Rejection
The Client should be able to specify different rejection reasons in the QuoteRequestRejectReason field, e.g. Credit check failure vs stale quote.
The Client should be able to specify additional detail in the Text field , e.g. "Order breaches daily settlement limit by 2m."
ExecutionAcknowledgement
Client must be able to receive acknowledgements of all fills, and possibly rejections, for all the permutations and combinations of QuoteRequest above.
Trading - No Last-Look
ExecutionReport
The Client must be able to demonstrate receipt of all fill notifications.
Taker
RFS Workflow
Pricing
QuoteRequest
The Client is able to submit all flavours of RFS requests, i.e. permutations and combinations of the following:
- SecurityType: SPT, FWD, NDF, SWP, NDS, BLK, NDB
- Allocations: Single and Multiple (including zero net allocs).
- Side: Buy/Sell/Two-Way
- Dealt Currency: Base/Term ccy qtys
- Regulatory framework: OFF/SEF/MTF
The the CLient does not wish to
QuoteResponse
The Client must ensure that they handle all RFS termination modes.
Outbound Client > Venue
Quote Request Rejection
The Client should be able to specify different rejection reasons in the QuoteRequestRejectReason field, e.g. Credit check failure vs unsupported pair.
The Client should be able to specify additional detail in the Text field , e.g. "Order breaches daily settlement limit by 2m."
Quote Request Timeout
The Client should terminate RFSs after a period of time (e.g. 3-5m). The Client timeout may, or may not, match the Venue setting, or the counterparty-specified duration.
Inbound Venue > Client
Client must be able to handle Venue-termination of active RFS - either due to the Venue stream timeout, or because the counterparty dealt away, or because the counterparty canceled the request.
Quote
Quote messages must be generated for all the permutations and combinations of QuoteRequest above.
Checks must be made against The Client must demonstrate correct usage of the following attributes:
- QuoteIDs - Uniqueness is verified. The following characters are not allowed: ¬~`_!*,-:=[]/#<>
- QuoteType - various combinations of Indicative/Tradeable for Bid and/or Offer.
- ValidUntilTime - the Client should confirm whether this is part of their pricing workflow, or not.
- Price precision - very important for Fwds. Refer to Prices and Quantities.
- Regulatory - All regulatory regimes must be explicitly declared as in or out of scope.
- In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF - EDM/IDM - missing, wrong, correct - Client must observe and understand the Venue behaviour for each scenario. Refer to Regulatory Fields FAQ.
- SEF
- OFF
| Tip | ||
|---|---|---|
| ||
If the Client wishes to trade on-MTF or on-SEF, it is essential that the venue has applied the necessary regulatory setup and configuration changes to support this. This is often a problematic process so the Client is advised to declare this as early as possible during the onboarding process. |
QuoteCancel
The Client Client can explicitly withdraw a previously issued Quote.
Trading
NewOrderMultileg
The Client must be able to receive orders for all the permutations and combinations of QuoteRequest above.
ExecutionReport
Ensure that Client handles The Client must be able to demonstrate both deal acceptance and deal rejection.
Deal Acceptance
Regulatory - All regulatory regimes must be explicitly declared as in or out of scope. In scope regimes must be demonstrated to populate the required reg. fields correctly:
- MTF
- SEF
- OFF
Deal Rejection
The Client should be able to send specify different rejection reasons in the QuoteRequestRejectReason field, e.g. Credit check failure vs stale quote.
The Client must be aware of availability of Custom error codes for:
...
should be able to specify additional detail in the Text field , e.g. "Order breaches daily settlement limit by 2m."
ExecutionAcknowledgement
Client must be able to receive acknowledgements of all fills, and possibly rejections, for all the permutations and combinations of QuoteRequest above.
| Warning | ||
|---|---|---|
| ||
In the case that the Client send Bloomberg an ExecutionReport with erroneous regulatory field values (e.g. EDM/IDM values etc), Bloomberg will drop this message silently. No ExecutionAck will be sent. It is the Client's responsibility to ensure that:
|
ESP Workflow
TODO
Taker
RFS Workflow
...
ESP Workflow
TODO
CLOB
Market Data
...