Unsupported Message Mapper

The Unsupported Message Mapper is used to handle the incoming messages that are not supported in FTM for Immediate Payments.

Overview

The unsupported message mapper is a generic inbound mapper that is used for the message types not supported in FTM for Immediate Payments. The unsupported message mapper uses the values defined in the configuration parameters of <msgTypeCfg> entry to map the incoming message to an ISF message.

The unsupported message mapper can also be used in conjunction with the Wrapper mapper, or the Business Application Header mapper. Refer to TCH Wrapper Mapper and TCH Business Application Header Mapper for more information.

UnspMsgToISFMapper

The CONFIG=entry in Channel parameter is required for inbound mapper. The mapper uses the setting to locate <msgTypeCfg> entry in Value table with child element <Type> containing the message type of the incoming message. The <msgTypeCfg> contains the configuration parameters for the inbound mapper.

For example, the default Request From CSM channel is configured with a CONFIG=IP_MAP_CFG_REQ_FROM_CSM parameter. When an unsupported remt.001.001.XX message is received , the mapper looks for the <msgTypeCfg> entry in the Value table with the following conditions:
  • In Value table, the value of Category is IP_MAP_CFG_REQ_FROM_CSM.
  • In msgTypeCfg entry, the value of Type is remt.001.001.XX.
The example of <msgTypeCfg> of IP_MAP_CFG_REQ_FROM_CSM for remt.001.001.XX is as follows.
<msgTypeCfg>
	<class>REMT001</class>
	<subType>IP_FROM_CSM_UNSP_MSG</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>Y</value>
	</extendedCfg>
	<extendedCfg>
		<name>Sender</name>
		<value>{RmtAdvc/GrpHdr/InitgPty/Id/OrgId/Othr/Id}</value>
	</extendedCfg>
	<extendedCfg>
		<name>Receiver</name>
		<value>{RmtAdvc/GrpHdr/MsgRcpt/Id/OrgId/Othr/Id}</value>
	</extendedCfg>
	<extendedCfg>
		<name>CreationDateTime</name>
		<value>{RmtAdvc/GrpHdr/CreDtTm}</value>
	</extendedCfg>
	<extendedCfg>
		<name>MessageIdentification</name>
		<value>{RmtAdvc/GrpHdr/MsgId}</value>
	</extendedCfg>
	<extendedCfg>
		<name>InstructionIdentification</name>
		<value>{RmtAdvc/RmtInf/OrgnlPmtInf/Refs/InstrId}</value>
	</extendedCfg>
	<extendedCfg>
		<name>TransactionIdentification</name>
		<value>{RmtAdvc/RmtInf/OrgnlPmtInf/Refs/TxId}</value>
	</extendedCfg>
	<extendedCfg>
		<name>InterbankSettlementAmount</name>
		<value>{RmtAdvc/RmtInf/OrgnlPmtInf/Amt/InstdAmt}</value>
	</extendedCfg>
	<extendedCfg>
		<name>Currency</name>
		<value>{RmtAdvc/RmtInf/OrgnlPmtInf/Amt/InstdAmt/Ccy}</value>
	</extendedCfg>
	<extendedCfg>
		<name>Status</name>
		<value>RJCT</value>
	</extendedCfg>
	<extendedCfg>
		<name>ReasonCode</name>
		<value>NARR</value>
	</extendedCfg>
	<pt>
		<class>REMT001</class>
		<subType>IP_FROM_CSM_UNSP_MSG</subType>
	</pt>
	<mapName>UnspMsgToISFMapper</mapName>
	<type>remt.001.001.XX</type>
</msgTypeCfg>
The inbound mapper uses the configuration parameters of the <msgTypeCfg> entry as follows:
  • <class> - value for TXN_PAYMENT_V.OBJ_CLASS
  • <subType> - value for TXN_PAYMENT_V.SUBTYPE and ISFMessage/Header/BusinessConcept
  • <pt>.<class> - value for TRANSMISSION_V.OBJ_CLASS
  • <pt>.<subType> - value for TRANSMISSION_V.SUBTYPE
  • <type> - value for ISFMessage/Header/MessageName
  • <extendedCfg> - the <extendedCfg> entries contain <name>/<value> pairs that are used as follows:
    • <name> - Each name represents a predefined ISF path that the <value> in the <name>/<value> pair is populated to. Table 1 shows the predefined names in the inbound mapper, and the corresponding ISF paths and Database columns that the values are mapped to. The Mandatory column in the table indicates if the <name>/<value> pair is mandatory in the <msgTypeCfg> entry.
      Table 1. Predefined elements and ISF paths in UnspMsgMap mapper
      Name ISF path Database Mandatory Description
      Sender ISFMessage/Header/Sender TXN_PAYMENT_V.SENDER
      TRANSMISSION_V.SENDER
      Y Creditor/Debtor FI identification
      Receiver ISFMessage/Header/Receiver TXN_PAYMENT_V.RECEIVER
      TRANSMISSION_V.RECEIVER
      Y Debtor/Creditor FI identification
      MessageIdentification ISFMessage/Wrapper/MessageIdentification TXN_PAYMENT_V.CID
      TRANSMISSION_V.CID
      Y Message Identification
      CreationDateTime ISFMessage/Wrapper/CreationDateTime   Y Creation Date Time
      Note: the value is mapped to ISF with UTC timezone.
      InstructionIdentification ISFMessage/Wrapper/InstructionIdentification   N Instruction Identification
      TransactionIdentification ISFMessage/Wrapper/TransactionIdentification   N Transaction Identification
      InterbankSettlementAmount ISFMessage/Wrapper/InterbankSettlementAmount   N Interbank Settlement Amount
      Currency ISFMessage/Wrapper/Currency   N Currency of the InterbankSettlemnt Amount
      InterbankSettlementDate ISFMessage/Wrapper/InterbankSettlementDate   N Interbank Settlement Date
      Status ISFMessage/Wrapper/Status   N Transaction Status
      ReasonCode ISFMessage/Wrapper/ReasonCode   N Status Reason
      MASTER_FLAG   TXN_PAYMENT_V.MASTER_FLAG
      TRANSMISSION_V.MASTER_FLAG
      Y Master Transaction/Transmission
    • <value> - the value mapped to the <name> element in ISF. The value in the <value> can be
      • a path - the inbound mapper retrieves the value of the path from the incoming message, and maps the value to the ISF path for the <name> element.
        Note: The <value> must be enclosed in braces when the value is a path.
        For example, with the following entry, the mapper retrieves the value of CdtrPmtActvtnReq/GrpHdr/MsgId from the incoming message, and maps the value to the ISF path ISFMessage/Wrapper/MessageIdentification.
        <name>MessageIdentification</name>
        <value>{CdtrPmtActvtnReq/GrpHdr/MsgId}</value>
      • a constant - the inbound mapper maps the value to the ISF path for the <name> element.
        Note: The <value> cannot be enclosed in braces when the value is a constant.
        For example, with the following entry, the mapper maps the value 'RJCT' to the ISF path ISFMessage/Wrapper/Status.
        <name>Status</name>
        <value>RJCT</value>

Sample Mapped Inbound Message including Addenda

<isf:ISFMessage xmlns:isf="http://www.ibm.com/xmlns/prod/ftm/isf/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Header>
		<BusinessConcept>IP_FROM_CSM_UNSP_MSG</BusinessConcept>
		<MessageName>remt.001.001.XX</MessageName>
		<Sender>020010001</Sender>
		<Receiver>021200201</Receiver>
	</Header>
	<isf:Wrapper>
		<MessageIdentification>M20160923000000008BFF8958474250</MessageIdentification>
		<CreationDateTime>2016-09-23T17:25:24.750+00:00</CreationDateTime>
		<InstructionIdentification>20160923000000008BTCH7230205700</InstructionIdentification>
		<Status>RJCT</Status>
		<ReasonCode>NARR</ReasonCode>
	</isf:Wrapper>
	<Addenda xmlns:isfa="http://www.ibm.com/xmlns/prod/ftm/isf/v3/Addenda">
		<isfa:TCHAppHdr>
			<NS1:Fr xmlns:NS1="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">
				<NS1:FIId>
					<NS1:FinInstnId>
						<NS1:ClrSysMmbId>
							<NS1:MmbId>02211334401</NS1:MmbId>
						</NS1:ClrSysMmbId>
					</NS1:FinInstnId>
					<NS1:BrnchId>
						<NS1:Id>02120020101</NS1:Id>
					</NS1:BrnchId>
				</NS1:FIId>
			</NS1:Fr>
			<NS2:To xmlns:NS2="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">
				<NS2:FIId>
					<NS2:FinInstnId>
						<NS2:ClrSysMmbId>
							<NS2:MmbId>02001000101</NS2:MmbId>
						</NS2:ClrSysMmbId>
					</NS2:FinInstnId>
				</NS2:FIId>
			</NS2:To>
			<NS3:BizMsgIdr xmlns:NS3="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">B2017100202120020101BFFF10000000000</NS3:BizMsgIdr>
			<NS4:MsgDefIdr xmlns:NS4="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">remt.001.001.XX</NS4:MsgDefIdr>
			<NS5:CreDt xmlns:NS5="urn:iso:std:iso:20022:tech:xsd:head.001.001.01">2017-10-02T23:15:18</NS5:CreDt>
		</isfa:TCHAppHdr>
	</Addenda>
</isf:ISFMessage>