Integrating FX, Cash, and Commodities Confirmation Messages

This document guides you through the setup, generation, and reconciliation of:

FX Confirmations (MT300)
Cash Confirmations (MT320, MT330)
Cash Settlement Advices (MT350)
Commodity Confirmations (MT600)
Commodity Option Confirmations (MT601)
Precious Metal Deposit Loan Confirmations (MT620)

 

Overview

The matching framework allows defining matching contexts between outgoing and incoming confirmation messages. The status codes of the outgoing messages and related transfers can be updated based on the results of the matching.

The logic of the process is the following:

New messages are saved in calypso (either incoming or outgoing).
If eligible in one matching context, then the MatchableBuilderEngine creates a new Matchable object containing the matching information necessary for this object to go through the matching process.
The MatchingEngine subscribes to Matchable objects, and tries to automatically process them, depending on the matching information defined in the associated context (matching keys, tolerance, etc.).

 

The Matching Monitor keeps track of the items remaining to be matched and allows performing manual processing.

 

1. Setup Requirements

 

1.1 Domain Values

Add MT300, MT330, MT350, MT600, MT601, MT620 to the domain "ExternalMessageField.MessageMapper".

 

1.2 Message Configurations

Outgoing Messages MT300, MT330, MT600, MT601, MT620

The outgoing messages are confirmation messages generated on VERIFIED_TRADE events.

Sample FX SWIFTCONFIRM configuration

 

Sample CallNotice Confirmation configuration

 

Sample Commodity Confirmation configuration

 

Sample Precious Metal Deposit Loan Confirmation configuration

 

Outgoing Messages MT350

The outgoing messages are settlement advice messages generated on VERIFIED_PAYMENT and VERIFIED_RECEIPT events.

Sample CallNotice settlement advice configurations

 

Chaser Messages

You can also configure the generation of chaser messages for missing confirmations and DK messages for mismatched confirmations.

Refer to Calypso Messages documentation for details.

 

Incoming Messages

The incoming FX / Cash / Commodity confirmations are generated by the import message engine or the scheduled task MESSAGE_MATCHING with message type INC_FXCONFIRM (for MT300) / IncomingConfirmation (for MT330, MT350, MT600, MT601, MT620).

 

Add MT300 to the domain "incomingType" with Comment = INC_FXCONFIRM.

 

Add MT330, MT350, MT600, MT601, MT620 to the domain "incomingType" with Comment = IncomingConfirmation.

 

You do not need to specify a message configuration but you need to add INC_FXCONFIRM and IncomingConfirmation to the domain "messageType".

 

1.3 Sample Message Workflows

SWIFTCONFIRM / Confirmation / SettlementAdvice

Orig Status Action Resulting Status Use STP Rules Create Task
ACKED UNMATCHED CANCELNEW CANCELED false

 

false
ACKED UNMATCHED COPY REPLACED false

 

false
ACKED UNMATCHED MANUAL_MATCH MATCHED false

 

false
ACKED UNMATCHED MATCH MATCHED false

 

false
ACKED UNMATCHED MISMATCH MISMATCHED false

 

true
ACKED UNMATCHED PROCESS PROCESSED true

 

false
ACKED UNMATCHED REMOVE REPLACED false

 

false
HELD AUTHORIZE VERIFIED false

 

false
HELD CANCEL CANCELED false

 

false
MATCHED UNMATCH ACKED UNMATCHED false

 

false
MISMATCHED CANCELNEW CANCELED false

 

false
MISMATCHED COPY REPLACED false

 

false
MISMATCHED MANUAL_MATCH MATCHED false

 

false
MISMATCHED REMOVE REPLACED false

 

false
MISMATCHED UNMATCH ACKED UNMATCHED false

 

false
NACKED CANCEL CANCELED false

 

false
NONE NEW PENDING false

 

false
PENDING AMEND PENDING false

 

false
PENDING AUTHORIZE VERIFIED true CheckContact,removeLinkedMessage true
PENDING CANCEL CANCELED false

 

false
PENDING FIX PENDING false ApplyDefaultContact false
REPLACED UNMATCH REPLACED false

 

false
SENT ACK ACKED UNMATCHED false

 

false
SENT CANCELNEW CANCELED false

 

false
SENT COPY REPLACED false

 

false
SENT MANUAL_ACK ACKED UNMATCHED false

 

false
SENT MANUAL_NACK NACKED false

 

false
SENT NACK NACKED false

 

true
TO_BE_SENT CANCEL CANCELED false

 

false
TO_BE_SENT EDIT TO_BE_SENT false

 

false
TO_BE_SENT RESEND TO_BE_SENT false

 

false
TO_BE_SENT SEND SENT false

 

true
VERIFIED AMEND PENDING false

 

false
VERIFIED EDIT VERIFIED false

 

false
VERIFIED HOLD HELD false

 

true
VERIFIED MAN_TO_SEND TO_BE_SENT false

 

true
VERIFIED TO_SEND TO_BE_SENT true CheckKickOff,CheckCutOff true

 

INC_FXCONFIRM / IncomingConfirmation

Orig Status Action Resulting Status Use STP Rules Create Task
ALLEGED CNTP_CANCEL REPLACED false

 

false
ALLEGED CNTP_REPLACE REPLACED false

 

false
ALLEGED MANUAL_MATCH MATCHED false

 

false
ALLEGED MANUAL_PROCESS PROCESSED false

 

true
ALLEGED MATCH MATCHED false

 

false
ALLEGED MISMATCH MISMATCHED false

 

false
ALLEGED REMOVE REMOVED false

 

false
ALLEGED UPDATE ALLEGED false

 

false
MATCHED UNMATCH ALLEGED false

 

false
MISMATCHED CNTP_CANCEL REPLACED false

 

false
MISMATCHED CNTP_REPLACE REPLACED false

 

false
MISMATCHED MANUAL_MATCH MATCHED false

 

false
MISMATCHED MATCH MATCHED false

 

false
MISMATCHED UNMATCH ALLEGED false

 

false
NONE NEW PENDING false

 

false
PENDING MANUAL_PROCESS PROCESSED false

 

true
PENDING PROCESS ALLEGED true IncomingConfirm true

 

1.4 Matching Context

The Matching Context identifies which type of incoming message can be matched with which type of outgoing message, under which conditions (matching keys), and which actions can be applied to the messages (if any).

It also allows specifying preferences for the Matching Monitor.

You need to define a matching context (MT300 in this example) between SWIFTCONFIRM and INC_FXCONFIRM for FX confirmations, a matching context MT330, MT600, MT601, MT620 between Confirmation and IncomingConfirmation for Cash / Commodity confirmations, a matching context MT350 between SettlementAdvice and IncomingConfirmation for Cash settlement advices.

Sample static data filter MT300:

 

 

See Matching Context for setup details.

 

2. Starting the Engines

The Matchable Builder engine and the Matching engine are started as part of the Engine server from the Engine Manager in Web Admin.

To import incoming messages, you also need to run the Import Message engine or the scheduled task MESSAGE_MATCHING.

The Import Message engine is also started as part of the Engine server from the Engine Manager in Web Admin.

 

3. Sample Processing for MT300

 

3.1 Creation of Outgoing Messages

According to the workflow and the matching context definition, in order for a message to be handled by the Matchable Builder engine and Matching engine, it needs to be in UNMATCHED status. This status is reached after a message has been sent, and acknowledged or not.

Once you enter an FX trade, and the message is generated, you need to send the message using the Sender engine, and acknowledge the sent message (apply action ACK, or actions MANUAL_ACK and UNMATCH).

Only then, will the outgoing message appear in the Matching Monitor in UNMATCHED status.

Sample FX Trade

 

Sample unmatched SWIFTCONFIRM message

 

Sample unmatched outgoing message in Matching Monitor

 

3.2 Creation of Incoming Messages

When you import the incoming messages, the system creates INC_FXCONFIRM messages.

If the matching criteria are satisfied, the outgoing message and the incoming message are automatically matched.

Sample messages automatically matched

 

If the incoming message cannot be matched, it appears in ALLEGED status in the Matching Monitor.

Sample INC_FXCONFIRM message in ALLEGED status

 

 

See Matching Monitor for a description of all available functions.

 

3.3 Generation of Chaser Messages

Chaser messages for missing confirmations can be automatically generated, or you can generate them manually.

Right-click an unmatched message and choose Matching > Chaser > CHASE.

The message is generated as follows.

Sample CHASE message for missing confirmation

 

You can also generate "mismatched confirm" chaser messages for mismatched messages.

Select an incoming message and an outgoing message that you think should be matched, and choose Matching > Chaser > Mismatched Chaser.

Sample DK message for mismatched confirmation