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.