Pacs.008.001.06/Pacs.008.001.08 Mapper

Overview

The Pacs.008.001.06/Pacs.008.001.08 (Pacs.008) mappers are used by TCH for sending and receiving Credit Transfer(FIToFICstmrCdtTrf) messages between TCH Real-Time Payment System(RTP) and FTM for Immediate Payments.

The Pacs.008 mappers are a pair of Inbound/Outbound mappers.
  • Pacs.008 Inbound Mapper: Map the TCH Credit Transfer messages to ISF messages. The default mapper name is Pacs008ToISFMapper.
  • Pacs.008 Outbound Mapper: Map the ISF messages to TCH Credit Transfer messages. The default mapper name is ISFToPacs008Mapper.

The details of the mapping specification for both inbound and outbound mappers are included in a separate document. Refer to Detailed pacs.008 mapping specification for more information about obtaining the documentation for the mapping specifications.

The inbound and outbound pacs.008 mappers 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.

Inbound Mapper

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 pacs.008.*. The <msgTypeCfg> contains the configuration parameters for the inbound mapper.

For example, the default Request From Channel is configured with a CONFIG=IP_MAP_CFG_REQ_FROM_CHAN parameter. When a pacs.008.001.06 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_CHAN.
  • In <msgTypeCfg> entry, the value of <Type> is pacs.008.*.
The default <msgTypeCfg> for IP_MAP_CFG_REQ_FROM_CHAN is as follows.
<msgTypeCfg>
	<class>PACS008</class>
	<subType>IP_FROM_DBTR_INSTR</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>Y</value>
	</extendedCfg>
	<extendedCfg>
		<name>MAP_FOR_TCH</name>
		<value>Y</value>
	</extendedCfg>
       <extendedCfg>
		<name>ConvertTCH_InstrForCdtrAgt</name>
		<value>true</value>
	</extendedCfg>
	<pt>
		<class>PACS008</class>
		<subType>IP_FROM_DBTR_INSTR</subType>
	</pt>
	<mapName>Pacs008ToISFMapper</mapName>
	<type>pacs.008.*</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
    • If the Credit Transfer is related to TCH return funds, then
      • if <subType> is IP_FROM_DBTR_INSTR, then set to IP_FROM_CDTR_RET
      • if <subType> is IP_FROM_CSM_INSTR, then set to IP_FROM_CSM_RET
      • else set to the value of <subType> with '_RET' appended
  • <extendedCfg>.<value> with <name>=MASTER_FLAG - value for MASTER_FLAG (for TXN_PAYMENT_V and TRANSMISSION_V)
  • <extendedCfg>.<value> with <name>=BAT_FOR_SINGLE_TXN - a batch is created(<value>=Y) or not(<value>=N) when the message contains one transaction. The default value is 'N' if the parameter is not present.
  • <extendedCfg>.<value> with <name>=MAP_FOR_TCH - indicate the mapper is used for TCH(<value>=Y) or not(<value>=N). The default value is 'N' if the parameter is not present.
  • <extendedCfg>.<value> with <name>=ConvertTCH_InstrForCdtrAgt - handle the mapping for the special codes in InstrForCdtrAgt/Cd that TCH has introduced if the value is true. The default value is false if the parameter is not present. See Note below for more information.
  • <pt>.<class> - value for TRANSMISSION_V.OBJ_CLASS
  • <pt>.<subType> - value for TRANSMISSION_V.SUBTYPE
  • <bat>.<class> - value for BATCH_V.OBJ_CLASS
  • <bat>.<subType> - value for BATCH_V.SUBTYPE
Note: TCH has introduced the special codes for Instruction for Creditor Agent relating to tokenization. For the Channel interface, we usually use the ISO schemas for the xml message and these codes result in XML schema validation failures.
The key concept to resolve the issue is to combine the <Cd> with the string <InstrInf>. For example, if we would like to send a pacs.008 message to CSM which contains
<InstrForCdtrAgt>
    <Cd>PRTK</Cd>
    <InstrInf>Instruction Information</InstrInf>
</InstrForCdtrAgt>
We expect the message from the Channel interface will look like
<InstrForCdtrAgt>
    <InstrInf>PRTK:Instruction Information</InstrInf>
</InstrForCdtrAgt>
The setting ConvertTCH_InstrForCdtrAgt needs to be configured in the <msgTypeCfg> for the Channel interface.
Note: When the inbound mapper is used in conjunction with the Business Application Header mapper, the inbound mapper checks the value of AppHdr/CpyDplct in Business Application Header. If the value is 'DUPL', the mapper appends '_RPT' to existing <subType> value to indicate the message is a repeat Credit Transfer request.

If the <msgTypeCfg> entry cannot be located, the mapper throws an exception with error 'subType not found'.

Table 1 shows the default configuration parameters for the channels using pacs.008 inbound mapper.
Table 1. Default configuration parameters for channels using pacs.008 inbound mapper
Category Class SubType MASTER_FLAG Pt.subType Bat.subType
IP_MAP_CFG_REQ_FROM_CHAN PACS008 IP_FROM_DBTR_INSTR Y IP_FROM_DBTR_INSTR NULL
IP_MAP_CFG_REQ_FROM_CSM PACS008 IP_FROM_CSM_INSTR Y IP_FROM_CSM_INSTR NULL
IP_MAP_CFG_BULK_REQ_FROM_CHAN PACS008 IP_FROM_DBTR_INSTR Y IP_FROM_DBTR_INSTR IP_FROM_DBTR_BULK_INSTR
IP_MAP_CFG_BULK_REQ_FROM_FILE_CHAN PACS008 IP_FROM_DBTR_INSTR Y IP_FROM_DBTR_INSTR IP_FROM_DBTR_BULK_INSTR
The inbound mapper handles the Datetime elements with the rules as follows.
  • If a timezone offset is included in the datetime value, the datetime value is mapped to ISF with UTC timezone.
  • If a timezone off set is not included in a datetime value,
    • if the Timezone is configured in the Channel table, the input datetime is recognized as the value in the format of the channel timezone, and is mapped to ISF with UTC timezone.
    • if the Timezone is not configured in the Channel table, the input datetime is recognized as the value in the format of the local timezone in which the mapper is executing, and the input datetime is mapped to ISF with UTC timezone.

Outbound Mapper

The CONFIG=entry in Channel parameter is required for outbound mapper. The mapper uses the setting to locate <msgTypeCfg> entry in Value table with child element <subType> containing the same value as the ISF Business Concept. The <msgTypeCfg> contains the configuration parameters for the outbound mapper.

When the outbound mapper is used in conjunction with the Wrapper mapper, or the Business Application Header mapper, the mapper uses the setting stored in Environment.PMP.Variables.Rules.*[1].MAP_CONFIG, instead of the CONFIG=entry in Channel parameter, to locate <msgTypeCfg> entry in Value table. Refer to TCH Wrapper Mapper for more information.

For example, the default Request To CSM channel is configured with a CONFIG=IP_MAP_CFG_REQ_TO_CSM parameter. When an ISF 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
    • Environment.PMP.Variables.Rules.*[1].MAP_CONFIG if present.
    • IP_MAP_CFG_REQ_TO_CSM otherwise.
  • In msgTypeCfg entry, the value of subType is the same as the ISF Business Concept.
Note: If the ISF Business Concept ends in '_RPT', the mapper removes '_RPT' from the ISF Business Concept when looking for the <msgTypeCfg> entry.
Note: When the outbound mapper is used in conjunction with the Wrapper mapper, or the Business Application Header mapper, the Wrapper mapper or the Business Application Header mapper uses the entry with Category IP_CONFIG and Key IP_SCHEME_VER in Value table to identify the version of the TCH Real-Time Payment(RTP) system that Financial Transaction Manager for Immediate Payments supports, and stores the channel parameter config value in Environment.PMP.Variables.Rules.*[1].MAP_CONFIG which is used by the pacs.008 outbound mapper. Refer to TCH Wrapper Mapper for more information.
The default <msgTypeCfg> for IP_MAP_CFG_REQ_TO_CSM is as follows.
<msgTypeCfg>
	<class>PACS008</class>
	<subType>IP_TO_CSM_INSTR</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<extendedCfg>
		<name>MAP_FOR_TCH</name>
		<value>Y</value>
	</extendedCfg>
	<pt>
		<class>PACS008</class>
		<subType>IP_TO_CSM_INSTR</subType>
	</pt>
	<mapName>ISFToPacs008Mapper</mapName>
	<type>pacs.008.001.06</type>
</msgTypeCfg>
The outbound mapper uses the configuration parameter of the <msgTypeCfg> entry as follows:
  • <type> - value for the namespace of the output pacs.008 message. For TCH, the value must be pacs.008.001.06 or pacs.008.001.08.
    Note: Since the ISFToPacs008Mapper is a common mapper which supports both pacs.008.001.06/pacs.008.001.08 for TCH and pacs.008.001.02 for SCT Inst, the <type> value is used to specify the version of pacs.008 that the mapper is supporting.
  • <extendedCfg>.<value> with <name>=MAP_FOR_TCH - indicate the mapper is used for TCH(<value>=Y) or not(<value>=N). The default value is 'N' if the parameter is not present.

If the <msgTypeCfg> entry cannot be located, the mapper throws an exception with error 'subType not found'.

Table 2 shows the default configuration parameters for the channels using pacs.008 outbound mapper.
Table 2. Default configuration parameters for channels using pacs.008 outbound mapper
Category Class SubType Type
IP_MAP_CFG_REQ_TO_CSM PACS008 IP_TO_CSM_INSTR pacs.008.001.06
IP_MAP_CFG_REQ_TO_CSM_v29 PACS008 IP_TO_CSM_INSTR pacs.008.001.08
IP_MAP_CFG_REQ_TO_CSM PACS008 IP_TO_CSM_RET pacs.008.001.06
IP_MAP_CFG_REQ_TO_CSM_v29 PACS008 IP_TO_CSM_RET pacs.008.001.08
The outbound mapper handles the Datetime elements with the rules as follows.
  • If the Timezone is configured in the Channel table, the input datetime is mapped from the value with UTC timezone to the value in the format of the channel Timezone.
  • If the Timezone is not configured in the Channel table, the input datetime is mapped from the value with UTC timezone to the value in the format of the local timezone in which the mapper is executing.
The outbound mapper uses the channel parameter TS_INCLUDE_OFFSET to control whether the timezone offset is included in the output datetime values.
  • If TS_INCLUDE_OFFSET is set to Y, then the timezone offset is included in the output datetime values.
  • If TS_INCLUDE_OFFSET is set to N or not configured, then the timezone offset is not included in the output datetime values.