MX Payment Messages Integration

 

For the list of supported messages, see Swift Messages.

 

MX payment messages are integrated using the scheduled task MESSAGE_MATCHING or using the Import Message engine. The incoming messages are saved as BOMessages and processed by the matchable builder and matching engines based on Matching Context configurations.

 

For information on generating MX Payment Messages, see MX Payment Messages Generation.

For information on integrating camt.053, camt.054 messages, please refer to Calypso Cash Management documentation -Integrating Payment Messages and Statements.

 

1. Setup Requirements

 

1.1 Domain Values

 

Domain "messageType"

INC_ADMI007

INC_PACS009

INC_PACS008

INC_PACS004

INC_PACS010

INC_PACS002

INC_CAMT025

INC_CAMT029

INC_CAMT056

INC_CAMT060

INC_TRANSMISSIONreport

INC_XSYS002

INC_XSYS003

SEEV032

SEEV033

SEEV034

SEEV036

SEEV041

SEEV044

 

Domain "incomingType"

ADMI007, Comment = INC_ADMI007

PACS009, Comment = INC_PACS009

PACS008, Comment = INC_PACS008

PACS004, Comment = INC_PACS004

PACS010, Comment = INC_PACS010

PACS002, Comment = INC_PACS002

CAMT025, Comment = INC_CAMT025

CAMT029, Comment = INC_CAMT029

CAMT056, Comment = INC_CAMT056

CAMT060, Comment = INC_CAMT060

TRANSMISSIONreport, Comment = INC_TRANSMISSIONreport

XSYS002, Comment = INC_XSYS002

XSYS003, Comment = INC_XSYS003

SEEV032, Comment = IncomingCA

SEEV034, Comment = INC_CA

SEEV036, Comment = INC_CA

SEEV041, Comment = INC_CA

SEEV044, Comment = INC_CA

SESE023, Comment = INC_CA

 

Example:

 

Domain "ExternalMessageField.MessageMapper"

ADMI007

PACS009

PACS008

PACS004

PACS010

PACS002

CAMT025

CAMT029

CAMT056

TRANSMISSIONreport

XSYS002

XSYS003

SEEV034

SEEV036

SEEV041

SESE023

 

Domain “MappingUpdateXfer”

Amount

EndToEndId

InstrId

InstructedAgentBic

InstructingAgentBic

MessageIdentifier

MessageType

Settle Date

UETR

 

Domain “exceptionType”

SEEV.032

 

Domain "MappingIncomingWithContact"

When the SWIFT BIC code is looked up in the LE Contact, it is using Contact Type = ALL by default. Then the corresponding processing org is selected.

You can use another contact type by adding it to the domain “MappingIncomingWithContact”:

Value = <message type>

Comment = <LE Contact type to be used to lookup the processing org>

Example:

Value = PACS009

Comment = MatchingSystem

If there is no contact with this contact type, the first contact found is used.

 

1.2 Matching Contexts

 

INC_PACS008 / INC_PACS009 Matching Context

Sample matching context

Select the matching actions as needed and make sure they are configured in the Incoming Message workflow.

 

Select the matching keys as needed.

Matching Key Message Mapping Xfer Mapping
Matching Key Message Mapping Xfer Mapping
PO PO is the RECEIVER (TO) of the message, if not available check Instructed Agent (<InstdAgt>) tag Xfer PO
PO MmbId PO is the RECEIVER (TO) of the message, if not available check Instructed Agent (<InstdAgt>) tag Xfer PO (MmbId set as Legal Entity Attribute)
Counterparty Counterparty Xfer Counterparty
Cpty MmbId Counterparty member ID Xfer Counterparty (MmbId set as Legal Entity Attribute)
Settlement Method Settlement Method from the incoming message: SIX / T2 / CBPR / CHAPS (for info only)  
GL Account

Algorithm checking: Jurisdiction/PO/LegalEntity/Ccy/ Platform.<jurisdiction> = true

Example: Platform.SIX = true

Xfer GLAccount
Ccy ISO Code for the CCY Xfer Ccy
Settle Date InterbankSettlementDate Xfer Settle Date
Settlement Amount InterbanlSettlementAmount + ISO CCY Code Xfer Settlement Amount

 

If you want to be able to generate pacs.002.001.CBPR Messages, you also need to select Allow Payment Status in the More Options panel.

 

INC_PACS010 Matching Context

Sample matching context

Select the matching actions as needed and make sure they are configured in the Incoming Message workflow.

 

Select the matching keys as needed.

Matching Key Message Mapping Xfer Mapping
ProcessingOrg PO is the RECEIVER (TO) of the message, if not available check Instructed Agent (<InstdAgt>) tag. Xfer PO
Ccy ISO Code for the CCY. Xfer Ccy
Value Date InterbankSettlementDate Xfer Settle Date
Settlement Amount InterbanlSettlementAmount + ISO CCY Code Xfer Settlement Amount

 

1.3 Incoming Message Workflows

IMPORTANT NOTE: For the incoming items and outgoing items to be eligible for matching, they need to be in a status that allows the workflow actions defined in the Matching Context to be applied.

For example, if an incoming message is in status VERIFIED and the workflow contains the transition ACKED - MATCH - MATCHED, the incoming message will not be eligible for matching, and a matchable item will not be created for that incoming message. For the incoming message to be eligible for matching in this example, it would need to be in ACKED status.

 

INC_PACS008 / INC_PACS009 / INC_CAMT057 Message Workflow

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_PACS008 / INC_PACS009

 

Pacs008/Pacs009 supporting multiple GL accounts

The process of integration of pacs.008 / pacs.009 message to populate appropriate GL account in multiple account scenario has been enhanced. Now, while selecting a GL account with multiple accounts of similar configuration at the clearing house in Pacs008Pacs009FieldMapper for Pacs008 and Pacs009 message, we will check for account attribute "Addressee11carBIC" to the corresponding BIC code that matches with the incoming BIC code. MEPS and APN jurisdictions are recognized for GL account.

 

 

INC_PACS004 Message Workflow

A pacs.004 message can be integrated for returning an outgoing pacs.008 / pacs.009 message. The Incoming Linked Message Identifier is linked to the outgoing Message Identifier.

See MX Payment Messages Generation for information on setting up those identifiers.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_PACS004

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW UNPROCESSED        
UNPROCESSED MATCH MATCHED        
MATCHED PROCESS PROCESSED PACS004Return Y    
UNPROCESSED CANCEL CANCELED        

 

PACS004Return

This workflow rule does the following:

Links incoming pacs.004 to Original Transfer

If Message is Linked to another BOMessage or Matched (i.e. attribute MatchedWith contains a value):

Retrieve the Transfer associated with the Linked Message

If Message is not Linked to another BOMessage nor Matched (i.e. attribute MatchedWith does not contain a value):

Returns False and transition is not processed
Applies action RETURN to Linked Transfer - When an incoming pacs.004 is linked to an existing transfer, action RETURN is applied to the linked transfer.
Sets attribute in Returned Transfer - When action RETURN is applied, XferAttribute ReturnedTransfer is set to “True” on the Transfer where the action was applied (i.e. transfer being returned).
Creates Simple Xfer Trade and links to original Trade - Simple Xfer trade is created (Return Transfer Transfer Type = RETURN) based on original transfer and incoming message pacs.004.

 

INC_PACS010 Message Workflow

A pacs.010 message can be integrated for the receipt of an outgoing pacs.008 / pacs.009 message. The Incoming Linked Message Identifier is linked to the outgoing Message Identifier.

See MX Payment Messages Generation for information on setting up those identifiers.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_PACS010

 

INC_PACS002 Message Workflow

A pacs.002 (FIToFIPaymentStatusReport) message is sent by RTGS to an RTGS actor (or an actor authorized by them) to inform about the status of a previously instructed payment order message. Within RTGS, the FIToFIPaymentStatusReport message is treated as mandatory for all processing failure situations. To receive pacs.002 for successful processing situations, subscription is required.

The FIToFIPaymentStatusReport message is sent in response to:

FIToFICustomerCreditTransfer (pacs.008) message
FIToFIFinancialInstitutionCreditTransfer (pacs.009) message
FinancialInstitutionDirectDebit (pacs.010) message
PaymentReturn (pacs.004) message

The Incoming Linked Message Identifier is linked to the outgoing Message Identifier.

See MX Payment Messages Generation for information on setting up those identifiers.

 

The actions to be applied to the outgoing messages can be defined in the domain "MXPmtStatusMessage.Action". The value is the default action and the Comment is the action you want to apply.

Example:

Value = ACK, Comment = PMT_STATUS_ACPT

Value = NACK, Comment = PMT_STATUS_RJCT

The Calypso actions must be defined in the outgoing message workflow.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_PACS002

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW UNPROCESSED        
UNPROCESSED PROCESS PROCESSED HandleMXPaymentStatus Y   System will always try to apply the wkf at integration. If message cannot be indexed, then message remains UNPROCESSED. Priority of this should be zero.
UNPROCESSED CANCEL CANCELED        

 

HandleMXPaymentStatus

This workflow rule does the following:

Links incoming PACS.002 to OriginalTransfer:

If Message is Linked to another BOMessage or Matched (i.e. attribute MatchedWith contains a value):

Links incoming message to the transfer associated with the Linked Message

If Message is not Linked to another BOMessage nor Matched (i.e. attribute MatchedWith does not contain a value):

Returns False and transition is not processed
Applies action ACK/NACK to Linked Message:

When an incoming PACS.002 is linked to an existing message, then applies action on outgoing message depending on TransactionStatus message attribute of acknowledgment.

By default, it applies ACK if transaction status is in domain "MXPmtStatusACK" or NACK if transaction status is in domain "MXPmtStatusNACK". The action can be customized by defining the Comment of the values ACK and NACK within the domain “MXPmtStatusMessage.Action”.

If transaction status is not in the domains "MXPmtStatusACK" or "MXPmtStatusNACK", no action is applied as it is an intermediate status of pacs.002. It does not block the transition of incoming pacs.002.

If the action (ACK/NACK) is not configured on outgoing linked message, no action is applied and the transition is not blocked, as this is optional functionality.

Suggested values in domains "MXPmtStatusACK" and "MXPmtStatusNACK":

 

INC_PAIN002 Message Workflow

The CustomerPaymentStatusReport pain.002 is used to inform the previous party in the payment chain about the positive or negative status of an instruction. It is also used to report on a pending instruction.

The pain.002 message is exchanged between an agent and a non-financial institution customer to provide status information on instructions previously sent. Its usage will always be governed by a bilateral agreement between the agent and the non-financial institution customer.

The CustomerPaymentStatusReport message is sent in response to:

CustomerCreditTransferInitiation (PAIN.001) message

From Calypso perspective, pain.002 with both accept & reject status will be integrated.

After integration, it must be linked to the original PAIN.001.

 

The actions to be applied to the outgoing messages can be defined in the domain "MXPmtStatusMessage.Action". The value is the default action and the Comment is the action you want to apply.

Example:

Value = ACK, Comment = MXPmtStatusACK

Value = NACK, Comment = MXPmtStatusNACK

The Calypso actions must be defined in the outgoing message workflow.

 

Domain “messageAction”

Value = MXPmtStatusACK

Value = MXPmtStatusNACK

 

Suggested values in domains "MXPmtStatusACK" and "MXPmtStatusNACK":

 

 

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL

Product = ALL

Subtype = INC_PAIN002

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW

UNPROCESSED

       
UNPROCESSED PROCESS PROCESSED HandleMXPaymentStatus Y   System will always try to apply the wkf at integration If message cannot be indexed, then message remains UNPROCESSED. Priority of this should be zero.
UNPROCESSED MATCH PROCESSED HandleMXPaymentStatus      

UNPROCESSED

MANUAL_MATCH

PROCESSED

 

 

 

 

UNPROCESSED

CANCEL

CANCELED

 

 

 

 

PROCESSED

UNMATCH

UNPROCESSED

 

 

 

 

 

HandleMXPaymentStatus

Checks Transaction Status

Checks the transaction status (/Document/CstmrPmtStsRpt/OrgnlPmtInfAndSts/TxInfAndSts/TxSts) of incoming message. Calypso should proceed further irrespective of any value in the transaction status.

Links incoming pain.002 to OriginalTransfer:

If Message is Linked to another BOMessage or Matched (i.e. attribute MatchedWith contains a value):

Link incoming message to the transfer associated with the Linked Message

If Message is not Linked to another BOMessage nor Matched (i.e. attribute MatchedWith does not contain a value):

Returns False and transition is not processed
Applies action ACK/NACK to Linked Message:

When an incoming pain.002 is linked to an existing message, then apply action on outgoing message depending on TransactionStatus message attribute of acknowledgement.

By default, it should apply ACK if transaction status is in domain MXPmtStatusACK and NACK if transaction status is in domain MXPmtStatusNACK. The action can be customized by defining the Comment of the values ACK and NACK within the domain “MXPmtStatusMessage.Action”. If transaction status is not mentioned in domain MXPmtStatusACK or MXPmtStatusNACK, then do not apply any action as it is an intermediate status. It should not block the transition of incoming pain.002.

If the action (ACK/NACK) is not configured on outgoing linked message, then do nothing (i.e. transition of incoming message should not be blocked) as this is an optional functionality.

 

INC_CAMT025 Message Workflow

A camt.025 message is integrated in response to an outgoing camt.050 / camt.029 message.

 

The actions to be applied to the outgoing messages can be defined in the domain "MXRctMessage.Action". The value is the default action and the Comment is the action you want to apply.

Example:

Value = ACK, Comment = RCT_STATUS_ACPT

Value = NACK, Comment = RCT_STATUS_RJCT

The Calypso actions must be defined in the outgoing message workflow.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_CAMT025

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW UNPROCESSED        
UNPROCESSED PROCESS PROCESSED HandleMXReceipt Y   System will always try to apply the wkf at integration. If message cannot be indexed, then message remains UNPROCESSED. Priority of this should be zero.
UNPROCESSED CANCEL CANCELED        

 

HandleMXReceipt

This rule does the following:

Determines the ReturnedStatus message attribute (ACK or NACK) of incoming message based on RequestType and StatusCode - See table below.
Copies attributes from incoming camt.025 to Original Message & Link Transfer

If Message is Linked to another BOMessage or Matched (i.e. corresponding outgoing msg found):

Copies RctDatetime, StatusCode, message attributes of incoming message to linked outgoing message being ACKed or NACKed
Links the incoming message to the transfer which is linked to outgoing message

If Message is not Linked to another BOMessage:

Returns False and transition is not processed
Applies Action ACK/NACK to Linked Message:

When an incoming camt.025 is linked to an existing message, applies action on outgoing message depending on ReturnedStatus message attribute of acknowledgment.

By default, it applies ACK for ACK and NACK for NACK. The action can be customized by defining the Comment of the values ACK and NACK within the domain “MXRctMessage.Action”.

 

RequestType StatusCode ReturnedStatus
VSTS x999 NACK
XSTS ACPT ACK

XSTS

x999

NACK

XSTS

COMP

ACK

SSTS x999 NACK
SSTS SSET ACK
CSC ACCP ACK
CSC RJCT NACK
006 (MEPS only) FAIL NACK
006 (MEPS only) PASS ACK

 

INC_CAMT029 Message Workflow

A camt.029 message is integrated in response to an outgoing camt.056 message.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_CAMT029

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW UNPROCESSED        
UNPROCESSED PROCESS PROCESSED HandleMXRsltnOfInvstgtn Y   System will always try to apply the wkf at integration. If message cannot be indexed, then message remains UNPROCESSED. Priority of this should be zero.
UNPROCESSED MATCH PROCESSED HandleMXRsltnOfInvstgtn      
UNPROCESSED MANUAL_MATCHATCH PROCESSED        
UNPROCESSED CANCEL CANCELED        
PROCESSED UNMATCH UNPROCESSED        
PROCESSED CANCEL CANCELED        

 

HandleMXRsltnOfInvstgtn

This rule does the following:

Checks the Confirmation Status of the incoming camt.029 (/Document/RsltnOfInvstgtn/Sts/Conf). If it is RJCR or CNCL, the process is as follows.

If Confirmation Status is different from RJCR or CNCL, no more action is performed, the message stays in UNPROCESSED status.

Links incoming Camt.029 to Original Transfer:

If Message is Linked to another BOMessage:

Links incoming message to the transfer associated with the Linked Message, by setting the transfer Id on the incoming message

If Message is not Linked to another BOMessage:

Returns False and transition is not processed.
Applies REJECT_RECALL action to the Original Transfer associated with the Linked Message for Confirmation Status = RJCR

If the action REJECT_RECALL is not configured on Original Transfer, the message moves to the next status without doing anything.

The action REJECT_RECALL should be configured with workflow rule “RemoveXferAttributes”:

When the CANCEL action was done, a Recall_Date was added to the transfer;
Then when the REJECT_RECALL is done, the workflow rule RemoveXferAttributes removes the Recall_Date.

By default, it applies REJECT_RECALL if configured in the workflow. The action can be customized by defining the Comment of the value RJCR within the domain “MXRsltnOfInvstgtn.Action”.

Applies CANCEL action to the Original Transfer associated with the Linked Message for Confirmation Status = CNCL

By default, it applies CANCEL if configured in the workflow. The action can be customized by defining the Comment of the value CNCL within the domain “MXRsltnOfInvstgtn.Action”.

 

INC_CAMT056 Message Workflow

A camt.056 message is integrated to cancel an outgoing pacs.008 / pacs.009 message.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_CAMT056

Orig Status Action Resulting Status Wkf Rule STP Filter Comment
NONE NEW UNPROCESSED        
UNPROCESSED PROCESS PROCESSED

HandleMXPmtCancellation

Y    
UNPROCESSED CANCEL CANCELED        
PROCESSED CANCEL CANCELED        

 

HandleMXPmtCancellation

This rule does the following:

Links incoming camt.056 to Original Transfer:

If Message is Linked to another BOMessage or Matched (i.e. attribute MatchedWith contains a value):

Links incoming message to the transfer associated with the Linked Message

If Message is not Linked to another BOMessage nor Matched (i.e. attribute MatchedWith does not contain a value):

Returns False and transition is not processed
Applies action REQUEST to Linked Transfer.

By default, it applies REQUEST if configured in the workflow. The action to be applied can be customized in the domain "MXPmtCancellationMessage.Action".

 

INC_ADMI007 / INC_TRANSMISSIONreport / INC_XSYS002 / INC_XSYS003 Message Workflow

An admi.007 message can be integrated to inform that an outgoing message has a validation error.

A transmission.report message can be integrated to acknowledge an outgoing message.

An xsys.002 message can be integrated to acknowledge an outgoing pacs.008 / pacs.009 message.

An xsys.003 message can be integrated to reject an outgoing pacs.008 / pacs.009 message.

The incoming LinkedOriginalMsgId is linked to the outgoing EndToEndId.

See MX Payment Messages Generation for information on setting up those identifiers.

 

Sample message workflow

Workflow Type = PSEventMessage

PO = ALL or specific PO

Product = ALL

Subtype = INC_ADMI007 / INC_TRANSMISSIONreport / INC_XSYS002 / INC_XSYS003

You need to add the HandleMX_ACK_NACK rule on the UNPROCESSED – PROCESS – PROCESSED transition.

 

HandleMX_ACK_NACK

This rule does the following:

Links incoming INC_TRANSMISSIONreport / xsys.002 / xsys.003 to outgoing pacs.008 / pacs.009, links incoming admi.007 to outgoing message

If message is linked to another BOMessage:

Link incoming message to the outgoing message using RequestRef.

If message is not linked to another BOMessage:

Returns false and transition is not processed.
Applies ACK or NACK action to the outgoing message:

If the incoming message is xsys.002: applies ACK on the linked message;

If the incoming message is xsys.003: applies NACK on the linked message and sets the message attribute 3rdPartyRefusalReason on the linked message from tag ThirdPartyRefusalReason if present.

The actions can be customized by defining the Comment of the values ACK and NACK within the domain "SwiftMessage.Action".

 

INC_ADMI007

After importing the incoming message admi.007, the system first tries to index it by using the Outgoing Message Identifier config / Incoming Linked Message Identifier config windows and if no configuration found in those windows, the system finds the outgoing message for which the Message_Id has the same value as the LinkedOriginalMsgId of the incoming admi.007.

 

INC_TRANSMISSIONreport

The indexation of the incoming TransmissionReport is done using the <Saa:SenderReference> and the Message_Id of an outgoing message. The system checks in the tag <RequestType> that the first 8 characters match the template name like pacs.008 or pacs.009 of the outgoing message.

 

The HandleMX_ACK_NACK rule applies the ACK action if NetworkDeliveryStatus is in domain "MXNetworkDeliveryStatusACK" and the NACK action if NetworkDeliveryStatus is in domain "MXNetworkDeliveryStatusNACK". If NetworkDeliveryStatus is not mentioned in these domains, no action is applied.

The actions can be customized by defining the Comment of the values ACK and NACK within the domain "SwiftMessage.Action".

 

Domain "MXNetworkDeliveryStatusACK" contains Value = NetworkAcked.

 

Domain "MXNetworkDeliveryStatusNACK" contains Value = NetworkNacked.

 

2. Message Integration

 

2.1 INC_ADMI007

 

Incoming Fields saved as MsgAttributes

Message Attribute Admi.007 Path
LinkedOriginalMsgId /Document/RctAck/Rpt/RltdRef/Ref
RequestStatusCode /Document/RctAck/Rpt/ReqHdlg/StsCd
RequestStatusDescription /Document/RctAck/Rpt/ReqHdlg/Desc

 

2.2 INC_PACS008 / INC_PACS009

 

Incoming Fields saved as MsgAttributes

The following MsgAttributes are saved:

Account

Amount

Ccy

InstrId

EndToEndId

UETR

Settlement Method

MessageIdentifier

MessageType

InterbankSettleDate

InstructingAgentBIC

InstructedAgentBIC

ConfirmationStatus

CancelReason

CancelReasonProp

CancelAdditionalInformation

 

MsgAttributes saved as XferAttributes

The following XferAttributes are supported:

MessageIdentification

MessageType

InstructionId

EndToEndId

UETR

InterbankSettleAmount

InterbankSettleDate (ISO20022 format: yyyy-MM-DD)

InstructingAgentBIC

InstructedAgentBIC

ConfirmationStatus

CancelReason

CancelReasonProp

CancelAdditionalInformation

 

2.3 INC_CAMT025

 

Incoming Fields saved as MsgAttributes

Message Attribute CAMT.025 Path

RctDatetime

From Business Application Header: field <CreDt>

LinkedOriginalMsgId

/Document/Rct/RctDtls/OrgnlMsgId/MsgId

ReturnedStatus

ACK or NACK - Logic described under rule HandleMXReceipt

StatusCode

First /Document/Rct/RctDtls/ReqHdlg/StsCd

StatusCodeDesc

/Document/Rct/RctDtls/ReqHdlg/Desc

RequestType

/Document/Rct/MsgHdr/ReqTp/Prtry/Id

RejectErrorCode

Second /Document/Rct/RctDtls/ReqHdlg/StsCd

 

2.4 INC_CAMT029

After importing the incoming message camt.029, the system finds the outgoing message camt.056 that contains the message attribute LinkedOriginalMsgId with same value as the message attribute of the incoming message.

 

Incoming Fields saved as MsgAttributes

Message Attribute camt.029 Path
BusinessMessageIdentifier From Business Header: field BizMsgIdr
LinkedOriginalMsgId /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/OrgnlGrpInf/OrgnlMsgId
LinkedMessageType /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/OrgnlGrpInf/OrgnlMsgNmId
LinkedInstructionId /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/OrgnlInstrId
LinkedEndToEndId /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/OrgnlEndToEndId
LinkedUETR /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/OrgnlUETR
ConfirmationStatus /Document/RsltnOfInvstgtn/Sts/Conf
CancelReason /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/CxlStsRsnInf/Rsn/Cd
CancelReasonProp /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/CxlStsRsnInf/Rsn/Prtry
CancelAdditionalInformation /Document/RsltnOfInvstgtn/CxlDtls/TxInfAndSts/CxlStsRsnInf/AddtlInf

 

2.5 INC_CAMT056

After importing the incoming message (camt.056), the system finds the linked incoming message (pacs.008/pacs.009 previously integrated) using below logic of comparing message attributes:

LinkedOriginalMsgId of camt.056 = MessageIdentifier of pacs.008/pacs.009
LinkedMessageType of camt.056 = MessageType of pacs.008/pacs.009
LinkedInstructionId of camt.056 = InstrId of pacs.008/pacs.009
LinkedTxId of camt.056 = TxId of pacs.008/pacs.009

If above criteria is satisfied, camt.056 is linked to corresponding pacs.008/pacs.009.

 

Incoming Fields saved as MsgAttributes

Message Attribute CAMT.056 Path
BusinessMessageIdentifier From Business Header: field BizMsgIdr
LinkedOriginalMsgId /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlGrpInf/OrgnlMsgId
LinkedMessageType /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlGrpInf/OrgnlMsgNmId
LinkedInstructionId /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlInstrId
LinkedEndToEndId /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlEndToEndId
LinkedUETR /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlUETR
LinkedTxId /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlTxId
LinkedSettlementAmount /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlIntrBkSttlmAmt
LinkedSettlementAmountCcy /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlIntrBkSttlmAmt
LinkedSettlementDate /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/OrgnlIntrBkSttlmDt
InstgAgt_SIXClrSysID_Code /Document/FIToFIPmtCxlReq/Assgnmt/Assgnr/Agt /FinInstnId/ClrSysMmbId/ClrSysId/Cd
InstgAgt_SIXMmbId_ID /Document/FIToFIPmtCxlReq/Assgnmt/Assgnr/Agt /FinInstnId/ClrSysMmbId/MmbId
InstdAgt_SIXClrSysID_Code /Document/FIToFIPmtCxlReq/Assgnmt/Assgne/Agt /FinInstnId/ClrSysMmbId/ClrSysId/Cd
InstdAgt_SIXMmbId_ID /Document/FIToFIPmtCxlReq/Assgnmt/Assgne/Agt /FinInstnId/ClrSysMmbId/MmbId
InstructingAgentBIC /Document/FIToFIPmtCxlReq/Assgnmt/Assgnr/Agt/FinInstnId/BICFI
InstructedAgentBIC /Document/FIToFIPmtCxlReq/Assgnmt/Assgne/Agt/FinInstnId/BICFI
CancellationReasonCode /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/CxlRsnInf/Rsn/Cd
AdditionalInformation /Document/FIToFIPmtCxlReq/Undrlyg/TxInf/CxlRsnInf/AddtlInf

 

2.6 INC_PACS002

 

Incoming Fields saved as MsgAttributes

Message Attribute PACS.002 Path
BusinessMessageIdentifier From Business Header: field BizMsgIdr
LinkedOriginalMsgId

/Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlGrpInf/OrgnlMsgId

OR /Document/FIToFIPmtStsRpt/OrgnlGrpInfAndSts/OrgnlMsgId

LinkedMessageType

/Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlGrpInf/OrgnlMsgNmId

OR /Document/FIToFIPmtStsRpt/OrgnlGrpInfAndSts/OrgnlMsgNmId

LinkedTxId /Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlTxId
LinkedInstructionId /Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlInstrId
LinkedEndToEndId /Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlEndToEndId
LinkedUETR /Document/FIToFIPmtStsRpt/TxInfAndSts/OrgnlUETR
TransactionStatus /Document/FIToFIPmtStsRpt/TxInfAndSts/TxSts
StatusReasonInformation

/Document/FIToFIPmtStsRpt/TxInfAndSts/StsRsnInf/Rsn/Prtry

OR /Document/FIToFIPmtStsRpt/TxInfAndSts/StsRsnInf/Rsn/Cd (whichever is available)

EffectiveInterbankSettlementDate /Document/FIToFIPmtStsRpt/TxInfAndSts/FctvIntrBkSttlmDt/DtTm
ClearingSystemReference /Document/FIToFIPmtStsRpt/TxInfAndSts/ClrSysRef

 

2.7 INC_TRANSMISSIONreport

 

Incoming Fields saved as MsgAttributes

Message Attribute TransmissionReport Path
LinkedOriginalMsgId <Saa:SenderReference>
ReconciliationInfo <Saa:ReconciliationInfo> if present
NetworkDeliveryStatus <Saa:NetworkDeliveryStatus>
LinkedMessageType <Saa:RequestType>
Severity First occurrence of <SwGbl:Severity> if present
ErrorCode First occurrence of <SwGbl:Code> if present
ErrorDescription

First occurrence of <SwGbl:Text> if present

 

2.8 INC_XSYS002 / INC_XSYS003

 

Incoming Fields saved as MsgAttributes

Message Attribute xsys.002 Path
LinkedOriginalMsgId Doc:Document/Doc:xsys.002.001.01/Doc:AuthstnNtfctn/SwInt:RequestHeader/SwInt:RequestRef
LinkedMessageType Doc:Document/Doc:xsys.002.001.01/Doc:AuthstnNtfctn/SwInt:RequestHeader/SwInt:RequestType
3rdPartySenderInfo Doc:Document/Doc:xsys.002.001.01/Doc:AuthstnNtfctn/Sw:ThirdPartyToSenderInformation

 

Message Attribute xsys.003 Path
LinkedOriginalMsgId Doc:Document/Doc:xsys.003.001.01/Doc:AuthstnNtfctn/SwInt:RequestHeader/SwInt:RequestRef
LinkedMessageType Doc:Document/Doc:xsys.003.001.01/Doc:AuthstnNtfctn/SwInt:RequestHeader/SwInt:RequestType
3rdPartyRefusalReason Doc:Document/Doc:xsys.003.001.01/Doc:AuthstnRfslNtfctn/Sw:ThirdPartyRefusalReason

 

2.9 INC_CAMT060

 

When Importing the CAMT.060 (identified using <MsgDefIdr> from <AppHdr>), store below fields as Message attributes.

Message Attribute CAMT.060 Path
BusinessMessageIdentifier From Business Header: field BizMsgIdr
StatementTypeRequested /Document/AcctRptgReq/RptgReq/ReqdMsgNmId
AccountId

/Document/AcctRptgReq/RptgReq/Acct/Id/IBAN OR

/Document/AcctRptgReq/RptgReq/Acct/Id/Othr/Id (Only one will be available)

AccountOwner

/Document/AcctRptgReq/RptgReq/AcctOwnr/Pty/Id/OrgId/AnyBIC OR

/Document/AcctRptgReq/RptgReq/AcctOwnr/Agt/FinInstnId/BICFI (Only one will be available)

GL Account

The Account Name as found using the search algorithm

 

3. Import Message Engine

MX messages can be imported using the Import Message engine.

 

(name MXImportMessageEngine, class com.calypso.engine.advice.ImportMessageEngine)

The MXImportMessageEngine imports MX messages.

The "config" engine parameter is config = MX

You need to have a file named "calypso_mx_config.properties" to configure the connectivity parameters to the JMS.