IBM Support

V3.2.9 Release Information for Financial Transaction Manager for Digital Payments

Fix Readme


Abstract

This document contains version 3.2.9 release information for Financial Transaction Manager for Digital Payments for Multiplatforms.

Content

Financial Transaction Manager for Digital Payments 3.2.9 Release Information

   

   

Contents
Common Across Releases
3.2.9.0 Release
... 3.2.9.0 interim fix 1
... 3.2.9.0 interim fix 2
... 3.2.9.0 interim fix 3
... 3.2.9.0 interim fix 4
... 3.2.9.0 interim fix 4.1
... 3.2.9.0 interim fix 5

... 3.2.9.0 interim fix 6
... 3.2.9.0 interim fix 7
... 3.2.9.0 interim fix 8
... 3.2.9.0 interim fix 9
3.2.9.1 Release
... 3.2.9.1 interim fix 1


    

When you upgrade a fix pack or interim fix, in addition to the changes in the level that is being upgraded to, be sure to review the changes in the intermediate fix packs or interim fixes. 

Examples:

  • Currently, at level fix pack 1 and upgrading to level fix pack 3, review the changes in fix pack 2 and fix pack 3.
  • Currently, at fix pack 1 / interim fix 1 and upgrading to fix pack 1 / interim fix 3, review the changes in fix pack 1 / interim fix 2 and fix pack 1 / interim fix 3.
Back to top
Common Across Releases
   

Known Issues

Internet Explorer (IE) Issue

FTM does not set the "Cache-Control" and "Pragma" headers on certain responses even if they are defined in the "HTTP Response Headers" section in System Properties screen.

The issue happens only on Internet Explorer browser because of a known Internet Explorer defect, which has no immediate fix date available from Microsoft.

Work around:
Use Firefox or Chrome supported versions to have all headers properly set on all responses

WebSphere Application Server 9.0.x update issue
 

In WebSphere Application Server v9.0.x, there is a known problem updating components for an interim fix.

Automated Deployment Utility workaround:

The interim fix components to update need to be first uninstalled.  The tokens file, for example pfs_deploy.xml, contains those interim fix components to update.  These components appear in the <install> </install> section.  You also need to add these same components in the <uninstall> </uninstall> section.
 
Manual update workaround:

Before the Console WAR modules are updated, stop the FrameworkUI_EAR application and then proceed as normal.  The Engine modules can be updated as normal.
Supported Early Warning Services (EWS) notifications and SOAP requests

The minimum EWS version required for FTM 3.2.9 is EWS 4.3.

The following is a list of supported EWS notifications and supported EWS SOAP requests.
Supported EWS notifications: 

 OnTokenStatusChangeNotification4.0, 
 OnCustomerChangeNotification4.2, 
 OnPaymentProfileStatusChangeNotification,  
 OnNewPaymentNotification4.0, 
 OnOrganizationsChangeNotification4.0, 
 OnPaymentRequestChangeNotification2.4, 
 OnNewPaymentRequestNotification4.0,
 OnPaymentStatusChangeNotification4.3 

Supported EWS requests: 

 AddPaymentRequest4.1, 
 ChangePaymentRequestRequest4.0, 
 ChangePaymentStatusRequest4.0, 
 DeletePaymentProfileRequest, 
 GetCustomerEventDetailsRequest4.0, 
 GetOrganizationsRequest4.0, 
 GetPaymentRequest4.3, 
 GetPaymentRequestDetailsRequest4.0, 
 GetPendingActivityForTokenRequest3.2, 
 GetTokenHistoryRequest4.1, 
 GetTokenStatusRequest4.2, 
 RegisterTokenRequest4.0, 
 RemoveTokenRestrictionRequest3.10, 
 RequestPaymentsRequest4.0, 
 RestrictTokenRequest3.10, 
 UnregisterTokenRequest3.10, 
 UpdateBusinessPaymentProfileRequest4.0, 
 UpdatePersonalPaymentProfileRequest4.0, 
 ValidateRecipientRequest4.2

Supported EWS RESTful requests:

 zpss/v1/active-profiles

Fix list and new feature summary


For a list of fixes, see Version 3.2.9 Fix List for Financial Transaction Manager for Digital Payments.

Data Setup Utility
The following documentation describes the changes for the data setup utility (DSU) and the import and export workbooks:

  • DSUmigration_v3.2.9.pdf
  • DSUMigrationBR_v3.2.9.pdf

These documents are provided in the entitled documentation fix pack. For more information about getting this fix pack, refer to the Entitled Documentation section.

Database migration
For database migration instructions, refer to the migration instructions in {Install location}\shared\vnnn\pfs\Database\db2\{os}\doc

Transaction Server Scheduler XML
The following documentation describes the changes to the scheduler XML for the Transaction Server component:

  • TransactionServerSchedulerChanges_v3.2.9.pdf

These documents are provided in the entitled documentation fix pack. For more information about getting this fix pack, refer to the Entitled Documentation section.

Web Services
The following documentation describes the new web services, which are implemented by using IBM WebSphere Application Server Liberty:

  • IBM_FTM_Web_Services_v3.2.9.0.pdf

These documents are provided in the entitled documentation fix pack. For more information about getting this fix pack, refer to the Entitled Documentation section.

Entitled Documentation
The entitled documentation fix pack for Digital Payments can be downloaded from Fix Central by using the following link:

3.2.9-FTM-DP-MP-Documents.




General Instructions
 

Installation

  1. Start IBM Installation Manager.
  2. Add the location of the repository that contains the installation package:
    1. Select File > Preferences.
    2. Click Add Repository.
    3. Browse to the directory that contains the repository .zip file and select the file. Click Open and then OK.
    4. Click Test Connections and then OK.
    5. Click OK.
  3. Install the FTM product installation files to your installation directory:
    1. On the main pane, click Update.
    2. Select IBM Financial Transaction Manager for Digital Payments, IBM Financial Transaction Manager for Check Services, or IBM Financial Transaction Manager for Corporate Payment Services and then click Next.
    3. Select the fix pack or interim fix and then click Next.
    4. Follow the rest of the prompts.
    5. Confirm that the "Update packages" page shows success.


Deployment

  1. Do the database migration. Refer to the Database migration section in this document.
    1. Note: The runtime components can’t be running during the database migration.
    2. Note: Files can continue to be delivered to the Gateway inbound source folder.
  2. J2SE components: The installation overlays the J2SE applications, so no special migration instructions are needed. Restarting those applications updates them with the fixes.
  3. WebSphere Application Server components: You can use the Automated Deployment Utility (ADU), manually upgrade (refer to the update instructions in each WebSphere Application Server component doc folder), or, in a WebSphere Application Server Network Deployment configuration, use the Deployment Manager.
    Note: Refer to "WebSphere Application Server 9.0.x update issue" in "Common Across Releases" > "Known Issues".
    1. All WebSphere servers must be restarted after all the components were updated.
    2. For an interim fix, refer to the fix list for the modules to deploy. Note: Interim fixes are meant to be deployed on an existing WebSphere Application Server profile deployment. If you are using a new WebSphere Application Server profile and already installed the interim fix onto the prior installation, you must do two deployment passes. The first pass is to do the initial, full product deployment. The second pass is to do those components that are affected by the interim fix.
  4. Update your Transaction Server Scheduler.xml file. Refer to the Transaction Server Scheduler XML section in this document. Note: Updating the scheduler file might not be required for your installation.
  5. Refer to the release-specific section for any changes that might affect your installation.
  6. Start your runtime components.
  7. If you are using the Data Setup Utility (DSU) worksheets capability for managing your data, update your worksheets. For more information, see the Data Setup Utility section in this document.
Installing and configuring a server for IBM WebSphere Application Server Liberty

Locate the WebSphere Application Server Liberty compressed file that is stored in the following path:

 <installation directory>/ftm/vxxx/run/liberty
 Where xxx = represents current FTM version that is running. For example, 329.

Decompress the file in your preferred path: <liberty-install-directory>. For example, /opt/wlp/.

Follow the following steps to create and configure the server:

1. Create your server with <liberty-install-directory>/bin/server create PFSServer.
2. Modify the server.xml.template file located in FTM installation path <installation directory>/shared/vxxx/pfs/WebServices/Liberty/PFS with config values for your install (refer to the following list of things that need to be modified).
3. Rename that file server.xml
4. Copy server.xml and jvm.options into <liberty-install-directory>/usr/servers/PFSServer.
5. Start your server with <liberty-install-directory>/bin/server start PFSServer --clean (--clean is optional).

Things that need to be modified in the server.xml.template depending on environment details:
  • Db2 installation location, database name, and port.
  • IBM MQ installation location, queue manager name, user, password, and port.
  • The db2admin user and password.
  • Set currentPackagePath, currentFunctionPath, and currentSchema to your schema name.
  • Set the password for the FTM administrator ID, which is usually fxhadmin.
  • WAR file deployment location: the path to the Web Services WAR file <installation directory>/shared/vxxx/pfs/WebServices/Liberty/PFS/WebServices_PFS.war.

  
Back to top
                       3.2.9.1 interim fix 1
 
Known Issues

None.
 

 
Feature changes

None.
 

 
Migration

None.

 

 
  
Back to top
3.2.9.1 Release
   
Compatibility Matrix

Because the development of releases and interim fixes for maintenance are done in parallel, a later release might not contain every interim fix that was created for an earlier release. The following table shows which releases and interim fix levels can be successfully upgraded to V3.2.9.1.

In the following table, the "If you're on version" column shows you the releases that can be upgraded successfully. The latest release or interim fix level that can be upgraded for each release is shown in the "To successfully upgrade to V3.2.9.1, your version must be no higher than version" column. If the release that you are upgrading from is at an interim fix level higher than the release or fix level shown in the right column, you can't upgrade the release without losing some changes. The upgrade needs to occur at the next release.

For more information about the individual changes in a release or interim fix, see the fix list for this version.
If you’re on version To successfully upgrade to V3.2.9.1, your version must be no higher than version
3.0.2.0 3.0.2.0 interim fix 2
3.0.2.1 3.0.2.1 interim fix 23
3.0.4.0 3.0.4.0 interim fix 3
3.0.4.1 3.0.4.1 interim fix 1
3.2.0.0 3.2.0.0 interim fix 1
3.2.0.1 3.2.0.1 interim fix 2
3.2.1.0 3.2.1.0 interim fix 3
3.2.2.0 3.2.2.0 interim fix 5
3.2.2.1 3.2.2.1 interim fix 3
3.2.3.0 3.2.3.0 interim fix 5
3.2.4.0 3.2.4.0 interim fix 9.1
3.2.5.0
3.2.5.0 interim fix 5
3.2.6.0 3.2.6.0
3.2.6.1 3.2.6.1 interim fix 5
3.2.7.0 3.2.7.0 interim fix 1.2
3.2.8.0 3.2.8.0
3.2.8.1 3.2.8.1 interim fix 3
3.2.9.0 3.2.9.0 interim fix 1

Known Issues


Potential issue with Cancel Request For Payment

When the Log Transaction setting on the "Request To CSM" Channel configuration is updated to Yes (Y) in FTM for Immediate Payments, the Cancel Request For Payment Web Service could fail when trying to correlate transactions.  It is recommended that the Log Transaction setting for the "Request To CSM" Channel configuration remain set to No (N).

SchedulePaymentModel issue
If the SchedulePaymentModel web service is being used to create a TCH RTP transaction then the Instruction for destination field in the web service call must not be used. TCH RTP has placed schema restrictions on the Instructions for Creditor Agent that are not supported by the web service at this time.

Held files might be incorrectly flagged as duplicate.
Transmissions that are held or pending (based on the error code or rule set configuration) might be incorrectly flagged as duplicates.  The held or pending transmission “duplicate” is resolved if the transmission is accepted (from held or pending).
 

Outbound physical transmissions page might provide more restrictive results to users without entitled access

When a restrictive entitlement is configured, users must be configured to have that entitlement before they can view the entitled data. The outbound physical transmissions page incorrectly restricts the data based on the inbound data fields. So, nonentitled users have a more restrictive view of the outbound physical transmission page.



Feature changes


129041 – Creation, management, and processing of Zelle QR codes

EWS mandated that Financial Institutions that support Zelle must provide the ability to:

  • Generate a QR code representing a user’s token to allow for that QR code to be scanned by others that want to send payments and payment requests to that token. (Generator of a QR code)
  • Be able to retrieve Zelle recipient information from the data that is scanned from the QR code. (Consumer of QR code information)

EWS defines the QR code as:
“A visual representation of a token, which can be presented and scanned to initiate Zelle payments.”

The encoded QR code image contains the following data string:

{base URL}?data={base64 encoded(JSON object)}

The base64 encoded JSON object is this JSON structure that reflects a Zelle token and an optional “action” representing payment or request-for-payment:

         {

            "token": "string",

            "name": "string",

            "action": "enum"

         }

Web service API updates

Two new Liberty web service APIs were added to support:

  1. QR code creation (POST /{ftm_participant_id}/token/qrcode)

The registered participant requests a QR code for one of their active tokens.  FTM returns the QR code image as a Base64 encoded string as well as the encoded data string that is embedded in the provided image.  This web service is used when a participant wants to provide their QR code to another person for that person to send the participant a Zelle payment.

  1. QR code processing (POST /{ftm_participant_id}/recipient/qrcode)

The registered participant requests recipient data for the encoded data that was scanned, extracted from a QR code.  FTM decodes the scanned data and calls EWS’ GetTokenStatus web service to gather specifics about the recipient.  The web service returns the scanned QR code data (the decoded JSON), the EWS specifics about the recipient, and the stored recipient first name, last name (nickname known to the participant), if available.  It is assumed that the FI’s mobile app will use this data to enter the payment, payment request workflow depending on the data that is returned.

More specific details about these web services, including YAML files and workflow diagrams, are included in the entitled documents.

WebSphere Application Server Liberty updates

If the sample server.xml is not used, an additional Liberty feature is required and needs to be included within the <featureManager> section of the server.xml.  The new feature is:

<feature>jaxws-2.2</feature>

This feature allows direct SOAP calls from the Liberty server to EWS.

ibm-ws-bnd.xml

A new WEB-INF/ibm-ws-bnd.xml file is deployed in the WebServices_Zelle.war. Edit this file to properly configure EWS connectivity for the application running on the Liberty server. Details about using/configuring this file can be found in the WebSphere Application Server Liberty documentation here: 

https://www.ibm.com/docs/en/was-liberty/nd?topic=liberty-ws-bndxml-file


130801 – Handle “Accept Without Posting” payment status on originated Zelle payments

EWS mandated that Financial Institutions that receive real-time Zelle payments can update the status of the payment to “Accept without Posting” to indicate that the “Receiving Organization cannot definitively post a real-time payment to the recipient’s account”.  The originator of the payment will be notified of the new ”Accept without Posting” (AWP) status via the OnPaymentStatusChange notification.

FTM will now handle the AWP payment status on originated real-time Zelle payments. 

The supported version of the OnPaymentStatusChange notification is now version 4.3 to allow for integration of the AWP status.  This new version of the notification will include the AWP reason code field (legal-regulatory, fraud-risk, dn-uncertain) when the status is AWP.  It will also include a “government impounded” Boolean flag when the status is Delivered.

When the Originating FI receives the AWP status:

  • A notification should be sent to the sender that the payment is delayed.
  • Funds were transferred from the sender’s account, but the originated payment is not available for ACH distribution
  • Payments in AWP should be rolled over just like payments in pending acceptance status (AWP status will be included in FTM rollover logic)
  • The originated payment cannot be cancelled (by the originator/originating org).

When the Receiving FI Fails/Denies a payment that was AWP, the Originating FI will (current Failed/Denied processing):

  • Reverse the funds to the sender
  • Notify the sender that the payment was Failed/Denied

When the Receiving FI Delivers a payment that was AWP, the Originating FI will:

  • Distribute the ACH settlement for the payment
  • Notify the sender that the payment was Delivered (after being previously delayed).  The notification must contain additional verbiage if the delivered payment was flagged as “government impounded”.

UI page updates

  • Transaction pages were updated to correctly render and display the new “Accept without Posting” Zelle payment status.
  • Originated Zelle payments in AWP will not be allowed to be cancelled.
  • The Zelle tab on the transaction details screen will include the AWP reason code and Government Impounded flag (when available).

Web service API updates

All current web services that read CXCPayment details were updated to include the new AWP status, the AWP reason code, and the Government impounded flag (when available).

Notification User Exit updates

The existing “sendPaymentDelayed” UX method will be called whenever the AWP status is received for an originated Zelle payment.  The CXCPayment object passed to that UX method will contain the new AWP status as well as AWP reason code.  The FI’s implementation of that method will be able to determine why the payment has been delayed and decision any text changes that are required.

A new “delayedPaymentDelivered” UX method is added to support the AWP status.  This method will be called when a payment that was previously AWP has now been set to Delivered by the Receiving FI.  The new method will be passed a CXCPayment object.  That object will reflect whether it was marked as “Government impounded” and the FI’s implementation will be able to update notification text based on the information from the payment object.


Migration 

Refer to the following documents for migration details:
  • DSUmigration_v3.2.9.pdf
  • DSUMigrationBR_v3.2.9.pdf
 

These documents are provided in the entitled documentation fix pack. The entitled documentation fix pack for Digital Payments can be downloaded from Fix Central by using the following link:

3.2.9-FTM-DP-MP-Documents.


Back to top
                       3.2.9.0 interim fix 9
 
Known Issues

None.
 

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 8
 
Known Issues

None.
 

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 7
 
Known Issues

None.
 

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 6
 
Known Issues

None.
 

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 5
 
Known Issues

Please note that Immediate Payments 3.2.9.0 interim fix 2 is required for this release of Digital Payments.
 

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 4.1
 
Known Issues
Scenario:
  1. Call WS API to do an ONUS Initiate Credit Transfer (pain.001).
  2. Perform 'Request Return of Funds' through Digital Payments UI 'Inbound Transactions' by selecting the pain.001 transaction and then More->Actions->'Request Return of Funds'
  3. Perform 'Accept and Return through Digital Payments UI by selecting the transaction with message type camt.056 and Status 'Wait for Resolution of Investigation'
Result:
The related transaction with message type INTERNAL_TCH has Status Rejected, the transaction with message type camt.056 has Status 'Waiting for Completion'
Solution - any 1 of these 3 will fix the problem:
  1. DSU change in Samples. Add to SampleAchConfiguration.xlsx, worksheet 'Transmission Msg Type Configs' one row: TCH Single Origination Ret Int    INTERNAL_TCH    S_TxnDistributionCreated    INTERNAL    IP_FROM_CDTR_RET
  2. Run the Db2 command: INSERT INTO TRANS_DEF_MSG_TYPE_CONFIG (FILE_DEF_ID , MESSAGE_TYPE_ID , TXN_STATE_1 , TXN_CLASS , TXN_SUBTYPE , CREATED, LAST_MODIFIED , CREATED_BY , MODIFIED_BY ) VALUES (28, 1420, 'S_TxnDistributionCreated', 'INTERNAL', 'IP_FROM_CDTR_RET', '2022-05-31-15.49.56.786000', '2022-05-31-15.49.56.786000', 'db2admin', null)
  3. From the Digital Payments UI Configuration->Outbound->Transmission Msg Type Configs page, create a new transmission that has the following fields: TCH Single Origination Ret Int, INTERNAL_TCH, S_TxnDistributionCreated, INTERNAL, IP_FROM_CDTR_RET
 

Feature Changes

Zelle Payments/Ids over TCH RTP

Pain.001 Payment API

Generally, the rules for the pain.001 API are the same as for the Channel/MQ pacs.008.

  • LclInstrm set to proprietary code ZELLE
  • CstmrCdtTrfInitn/GrpHdr/CreDtTm (passed as-is from channel)
  • CstmrCdtTrfInitn/GrpHdr/MsgId (1-24 passed as-is from channel, last 11 replaced)
  • CstmrCdtTrfInitn/CdtTrfTxInf/PmtId/InstrId (passed as-is from channel)

However, the main exception is TxId. The pain.001 does not natively support a TxId and a pain.001 API call that wants to use a different TxId (different to InstrId) must provide that value in the Supplementary Data fields of the PmtId.

<CdtTrfTxInf>
   <PmtId>
   . . . 

   </PmtId>

   . . .

   <SplmtryData>
      <PlcAndNm>CdtTrfTxInf/PmtId</PlcAndNm>  <!-- Indicates that it extends the parent CdtTrfTxInf/PmtId data -->
      <Envlp>

         <!-- Only needed for response to Zelle RFP -->

         <!-- Preformatted Zelle/TCH TxId:  

            YYYYMMDD 

            + Participant ID (11) 

            + Message generation source (“B” if generated by Participant) 

            + Message serial identifier (2 digits) 

            + Zelle Payment Request ID(13 digits)  


               The example value might not be fully valid!

         -->

         <TxId>2022050400123456780BP2PFGB123456789</TxId> 
      </Envlp>
   </SplmtryData>
</CdtTrfTxInf>
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 4
 
Known Issues

134752
Financial Transaction Manager is not showing the TCH RTP screen on the Participant Directory details screen even when the correct Roles are assigned.
(additional fix)

Use the following file to insert values:

3.2.9.0_ifix4_OTW_134752.ddl

It can be downloaded from Fix Central at 3.2.9-FTM-DP-MP-Documents.

 
Feature changes

None.
 

 
Migration

None.

Back to top
                       3.2.9.0 interim fix 3
 
Known Issues

133468
Financial Transaction Manager is not showing the TCH RTP screen on the Participant Directory details screen even when the correct Roles are assigned.  

 
After deployment, this fix will require the FrameworkUI.ear file to be updated manually.  

Here are the instructions:  

 
After deployment is complete, go to the WebSphere Application Server console.
WebSphere enterprise Applications -> check box next to FrameworkUI_EAR
Select Update.
Select Replace, Add, or Delete multiple files.
Select Choose path:
Find the location of the install.
Go to the FrameworkUI folder -> v329\pfs\FrameworkUI\console\frameworkui\lib\FrameworkUI_EAR_Update
Select Next.
Select Ok.
Select Save.
 

 
Feature changes

None.
 

 
Migration

None.

  
Back to top
                       3.2.9.0 interim fix 2
 
Known Issues

None.
 

 
Feature changes

127300
The customer acknowledgment (pacs.002) is missing when Digital Payments fails to notify Immediate Payments to process the Initiate Credit Transfer or Initiate Request for Payment.
The following web services have a new optional input parameter called distributionTimeout.

-  Create Initiate Credit Transfer V1 (Web Services API).
-  Create Initiate Request for Payment V1 (Web Services API).
 
The following Liberty Web Services have a new optional input parameter called distribution_timeout:
 
-  Create Initiate Credit Transfer V2 (Liberty Web Services API).
-  Create Initiate Request for Payment V2 (Liberty Web Services API).
If the distribution timeout value is specified, the Immediate Payment will trigger an internal event to wait for the Digital Payment's distribution notification. If such notification does not occur within the timeout, the Immediate Payment will issue a pacs.002 with status of RJCT.

If Digital Payment's distribution notification is received after timeout, the Immediate Payment continues processing as normally. So, it’s possible that the client may receive the pacs.002 indicating a timeout reject, then successful pacs.002 after Immediate Payment sends the pain.001 or pain.013 to TCH.
If the distribution timeout value is not provided, the behavior of the web services as well as corresponding Immediate Payment process will remain as is.
 
Initial Request for Payment V1 processing has slightly been changed. Previously, the Digital Payment's transaction was used as a place holder. Such was used to build the master distributed transaction which is notified to the Immediate Payment to send to TCH. In this release, the Digital Payment's transaction became the master directly and the Immediate Payment will use the same transaction to send to TCH.
 

 
Migration

None.

 

  
Back to top
                       3.2.9.0 interim fix 1
 
Known Issues

None.
 

 
Feature changes

None
 

 
Migration

None.

 

  
Back to top
3.2.9.0 Release
   
Compatibility Matrix

Because the development of releases and interim fixes for maintenance are done in parallel, a later release might not contain every interim fix that was created for an earlier release. The following table shows which releases and interim fix levels can be successfully upgraded to V3.2.9.0.

In the following table, the "If you're on version" column shows you the releases that can be upgraded successfully. The latest release or interim fix level that can be upgraded for each release is shown in the "To successfully upgrade to V3.2.9.0, your version must be no higher than version" column. If the release that you are upgrading from is at an interim fix level higher than the release or fix level shown in the right column, you can't upgrade the release without losing some changes. The upgrade needs to occur at the next release.

For more information about the individual changes in a release or interim fix, see the fix list for this version.
If you’re on version To successfully upgrade to V3.2.9.0, your version must be no higher than version
3.0.2.0 3.0.2.0 interim fix 2
3.0.2.1 3.0.2.1 interim fix 23
3.0.4.0 3.0.4.0 interim fix 3
3.0.4.1 3.0.4.1 interim fix 1
3.2.0.0 3.2.0.0 interim fix 1
3.2.0.1 3.2.0.1 interim fix 2
3.2.1.0 3.2.1.0 interim fix 3
3.2.2.0 3.2.2.0 interim fix 5
3.2.2.1 3.2.2.1 interim fix 3
3.2.3.0 3.2.3.0 interim fix 5
3.2.4.0 3.2.4.0 interim fix 9.1
3.2.5.0
3.2.5.0 interim fix 4
3.2.6.0 3.2.6.0
3.2.6.1 3.2.6.1 interim fix 5
3.2.7.0 3.2.7.0 interim fix 1.1
3.2.8.0 3.2.8.0
3.2.8.1 3.2.8.1 interim fix 1

Known Issues


Potential issue with Cancel Request For Payment

When the Log Transaction setting on the "Request To CSM" Channel configuration is updated to Yes (Y) in FTM for Immediate Payments, the Cancel Request For Payment Web Service could fail when trying to correlate transactions.  It is recommended that the Log Transaction setting for the "Request To CSM" Channel configuration remain set to No (N).

SchedulePaymentModel issue
If the SchedulePaymentModel web service is being used to create a TCH RTP transaction then the Instruction for destination field in the web service call must not be used. TCH RTP has placed schema restrictions on the Instructions for Creditor Agent that are not supported by the web service at this time.

Held files might be incorrectly flagged as duplicate.
Transmissions that are held or pending (based on the error code or rule set configuration) might be incorrectly flagged as duplicates.  The held or pending transmission “duplicate” is resolved if the transmission is accepted (from held or pending).
 

Outbound physical transmissions page might provide more restrictive results to users without entitled access

When a restrictive entitlement is configured, users must be configured to have that entitlement before they can view the entitled data. The outbound physical transmissions page incorrectly restricts the data based on the inbound data fields. So, nonentitled users have a more restrictive view of the outbound physical transmission page.



Feature changes


49844

The NACHA Edits DSU configurations were updated to reflect the supported 2021 NACHA Guidelines (from 2017/2016).  All installs should now support Business Rules Validation NACHA 2021 and no longer support Business Rules Validation NACHA 2017 or 2016.


77318

Response to Request for Information (camt.028)

A new Response to Request For Information web service was created. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

Usage

Post http://localhost:57107/transactions/responsetorfi

Asynchronous mode example

Request

POST http://localhost:57107/transactions/responsetorfi HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: zzz

x-ftm-audit-host: aaa

Content-Length: 363

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

     "asynchronous": true,

     "ftm_transaction_id": 142826,

     "appl_name": "xxxxxx",

     "ws_id": 2021081715553000000000002,

     "comment_and_contact": {

          "comment": "The user-defined comment that is used for auditing",

          "contact_name": "John Doe",

          "contact_phone": "13424454224"

     },

     "initiator_type": "Customer",

     "ustrd": [

          "aaa", "bbb", "ccc", "ddd"

     ],

     "timeout": 8000

}

Response

{

   "reason_code": "Customer",

   "response_status_report": [{"request_information_and_status":    {

      "ftm_transaction_id": 142826,

      "ftm_transaction_status": "Request For Information Complete"

   }}],

   "timeout": false

}

Synchronous mode example

Request

POST http://localhost:57107/transactions/responsetorfi HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: zzz

x-ftm-audit-host: aaa

Content-Length: 364

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

     "asynchronous": false,

     "ftm_transaction_id": 142826,

     "appl_name": "xxxxxx",

     "ws_id": 2021081715553000000000002,

     "comment_and_contact": {

          "comment": "The user-defined comment that is used for auditing",

          "contact_name": "John Doe",

          "contact_phone": "13424454224"

     },

     "initiator_type": "Customer",

     "ustrd": [

          "aaa", "bbb", "ccc", "ddd"

     ],

     "timeout": 8000

}

Response

{

   "reason_code": "Customer",

   "response_status_report": [   {

      "request_information_and_status":       {

         "ftm_transaction_id": 142826,

         "ftm_transaction_status": "Request For Information Complete"

      },

      "response_information_and_status":       {

         "ftm_transaction_id": 21028,

         "ftm_transaction_status": "Request For Information Response Complete",

         "ftm_transmission_id": 141018

      }

   }],

   "timeout": false

}


119500

Two new optional parameters were added to four of the Transaction Services web services.  These two parameters are application name and web service ID.  These two parameters if present will be added as extended values to the transactions. 

The Web Service ID, if used, should be a unique ID that the caller can use to identify the transaction being created by the web service. The PFSServer get transactions web service can be used to get the transaction associated with the web service ID. 

The application name is currently only use to identify the application that called the web service.

The PFSTransactionServer web services that use the new fields are:

        initiateCreditTransfer
        paymentAcknowledgment
        remittanceAdvice
        RespondtoRFI

In later releases, more web services will support these optional fields.


119503

Cancel a Request for Payment (camt.056)

A new Cancel Request for Payment web service was created. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

Usage

POST http://localhost:57107/transactions/cancelrequestforpayment

Asynchronous mode example

Request

POST http://localhost:57107/transactions/cancelrequestforpayment HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json;charset=UTF-8

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 358

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": true,

  "ftm_transaction_id": 19014,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "reason_code": "CUST",

  "additional_info": "some info",

  "timeout": 8000

}

Response

{

   "action": "Expiry",

   "reason_code": "CUST",

   "response_status_report": [{"request_information_and_status":    {

      "ftm_transaction_id": 19014,

      "ftm_transaction_status": "Wait for Request for Payment Response",

      "ftm_transmission_id": 19013

   }}],

   "timeout": false

}

Synchronous mode example

Request

POST http://localhost:57107/transactions/cancelrequestforpayment HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json;charset=UTF-8

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 359

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": false,

  "ftm_transaction_id": 10090,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "reason_code": "CUST",

  "additional_info": "some info",

  "timeout": 8000

}

Response

{

   "action": "Expiry",

   "reason_code": "CUST",

   "response_status_report": [   {

      "request_information_and_status":       {

         "ftm_transaction_id": 10090,

         "ftm_transaction_status": "Wait for Request for Payment Response",

         "ftm_transmission_id": 10089

      },

      "response_information_and_status":       {

         "ftm_transaction_id": 17023,

         "ftm_transaction_status": "Outgoing Request for Payment Cancel Complete",

         "ftm_transmission_id": 23004

      }

   }],

   "timeout": false

}


119592

Payment acknowledgment (camt.035)

A new payment acknowledgment web service was created. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

Usage

POST http://localhost:57107/transactions/paymentacknowledgment

Asynchronous mode example

Request

POST http://localhost:57107/transactions/paymentacknowledgment HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 358

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": true,

  "ftm_transaction_id": 17002,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "initiator_type": "Customer",

  "additional_info": null,

  "timeout": 8000

}

Response

{

   "action": "ACK",

   "reason_code": "Customer",

   "response_status_report": [{"request_information_and_status":    {

      "ftm_batch_id": 17001,

      "ftm_transaction_id": 17002,

      "ftm_transaction_status": "Credit Transfer Complete",

      "ftm_transmission_id": 17000

   }}],

   "timeout": false

}

Synchronous mode example

Request

POST http://localhost:57107/transactions/paymentacknowledgment HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 359

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": false,

  "ftm_transaction_id": 19002,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "initiator_type": "Customer",

  "additional_info": null,

  "timeout": 8000

}

Response

{

   "action": "ACK",

   "reason_code": "Customer",

   "response_status_report": [   {

      "request_information_and_status":       {

         "ftm_batch_id": 19001,

         "ftm_transaction_id": 19002,

         "ftm_transaction_status": "Credit Transfer Complete",

         "ftm_transmission_id": 19000

      },

      "response_information_and_status":       {

         "ftm_transaction_id": 23000,

         "ftm_transaction_status": "Payment Acknowledgment Complete",

         "ftm_transmission_id": 10009

      }

   }],

   "timeout": false

}


119594

Remittance Advice (remt.001)

A new Remittance Advice web service was created. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

Usage

POST http://localhost:57107/transactions/remittanceadvice

Asynchronous mode example

Request

POST http://localhost:57107/transactions/remittanceadvice HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 971

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": true,

  "ftm_transaction_id": 29002,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "rmt_advc": "<RmtAdvc><GrpHdr><MsgId>M2021101902001000099BFFF00000000032</MsgId><CreDtTm>2021-10-19T03:04:30</CreDtTm><InitgPty><Id><OrgId><Othr><Id>123456780</Id></Othr></OrgId></Id></InitgPty><MsgRcpt><Id><OrgId><Othr><Id>987654320</Id></Othr></OrgId></Id></MsgRcpt></GrpHdr><RmtInf><RmtId>20211019INFOABCD00000000031</RmtId><OrgnlPmtInf><Refs><InstrId>2021101902001000099BFFFF00000000031</InstrId><EndToEndId>E2E-TxPrefix20160513223041391000000</EndToEndId><TxId>2021101902001000099BFFFF00000000031</TxId></Refs><Amt><InstdAmt Ccy=\"USD\">321.98</InstdAmt></Amt><CdtrAcct><Id><Othr><Id>12000194212199001</Id></Othr></Id></CdtrAcct></OrgnlPmtInf></RmtInf></RmtAdvc>",

  "timeout": 8000

}

Response

{

   "response_status_report": [{"request_information_and_status":    {

      "ftm_batch_id": 29001,

      "ftm_transaction_id": 29002,

      "ftm_transaction_status": "Credit Transfer Complete",

      "ftm_transmission_id": 29000

   }}],

   "timeout": false

}

Synchronous mode example

Request

POST http://localhost:57107/transactions/remittanceadvice HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 972

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": false,

  "ftm_transaction_id": 29005,

  "appl_name": "xxxxxx",

  "ws_id": 2021081715553000000000002,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "rmt_advc": "<RmtAdvc><GrpHdr><MsgId>M2021101902001000099BFFF00000000032</MsgId><CreDtTm>2021-10-19T03:04:30</CreDtTm><InitgPty><Id><OrgId><Othr><Id>123456780</Id></Othr></OrgId></Id></InitgPty><MsgRcpt><Id><OrgId><Othr><Id>987654320</Id></Othr></OrgId></Id></MsgRcpt></GrpHdr><RmtInf><RmtId>20211019INFOABCD00000000031</RmtId><OrgnlPmtInf><Refs><InstrId>2021101902001000099BFFFF00000000031</InstrId><EndToEndId>E2E-TxPrefix20160513223041391000000</EndToEndId><TxId>2021101902001000099BFFFF00000000031</TxId></Refs><Amt><InstdAmt Ccy=\"USD\">321.98</InstdAmt></Amt><CdtrAcct><Id><Othr><Id>12000194212199001</Id></Othr></Id></CdtrAcct></OrgnlPmtInf></RmtInf></RmtAdvc>",

  "timeout": 8000

}

Response

{

   "response_status_report": [   {

      "request_information_and_status":       {

         "ftm_batch_id": 29004,

         "ftm_transaction_id": 29005,

         "ftm_transaction_status": "Credit Transfer Complete",

         "ftm_transmission_id": 29003

      },

      "response_information_and_status":       {

         "ftm_transaction_id": 25044,

         "ftm_transaction_status": "Outgoing Remittance Advice Complete",

         "ftm_transmission_id": 10020

      }

   }],

   "timeout": false

}


122195

When running Java applications in a time zone that adheres to Daylight Saving Time (EST for example), the conversion between EST to UTC will always have a "gap" during the 5-hour window of Daylight Saving Time switch over on the night that Daylight Saving Time occurs.  The conversions within the JVM will always have inconsistent results when that switchover occurs.

To alleviate this issue, it is recommended that all J2SE applications should run in UTC.

The J2SE Applications (Business Rules Server, Distribution Manager, Gateway Server, and Transaction Server) startup scripts were updated to run under UTC time zone by default. 

The "-Duser.timezone=UTC" JVM option should be added to all J2SE application startups if not replaced with "out of the box" startup scripts.  Console output for the J2SE applications will show UTC timestamps instead of timestamps in the local time zone.

All DSU, Transaction Server scheduler, etc. configuration should still reflect the operational time zone that is wanted by the FI.  There should be no requirement to perform any time zone "math" to adjust any configuration to UTC.  Updates were made to accommodate those conversions within the applications.


122387

Updates were made to FTM's sample Business Rules configuration so that same day endpoint assignments are made on a $1 million limit after 3/18/2022.  With the change, same day endpoint assignments before 3/18/2022 still reflect the current $100K same day limit.


122881

The WebSphere Liberty server was upgraded to 21.0.0.6.

The following list shows the server versions and JARs as a result of the upgrade.

wlp-base-all-21.0.0.6.jar
wlp-base-embeddable-21.0.0.6.zip

com.ibm.websphere.appserver.api.basics_1.4.53.jar
com.ibm.websphere.appserver.api.kernel.service_1.0.53.jar
com.ibm.websphere.appserver.api.security_1.3.53.jar
com.ibm.websphere.appserver.api.ssl_1.4.53.jar
com.ibm.websphere.javaee.jsp.tld.2.2_1.2.53.jar


123124

A new return transaction type column was added to the return reason codes xref database table that reflects the type of transaction that the return reason code applies to. The new column has a default of ALL transaction types. The value of the new column is defined per return message standard.
 

When a single transaction is returned, the reason code selection includes return reasons that are configured to be for All transaction types and the return codes that are configured to be for that specific transaction type. The potential transaction types are credit and debit. In the return reason codes xref database table, the new return transaction type has 'C' for Credit, 'D' for Debit, and 'A' for all.

When multiple transactions are returned, if the transactions have the same transaction type, the same rules as a single transaction apply. If the selected transactions have the different transaction types, the reason code selection includes All return reasons including debit and credit only.  If a debit or credit only reason code is selected, the reason code validation on the dialog highlights that the reason code selected is not valid for all the transaction types selected.


123508

Entitlements support

Starting with v3.2.9.0, FTM supports entitlement configuration by using the Control Center user interface. Entitlements are a way to enforce restrictions/entitlements on users and groups. Based on the configuration, entitlements can restrict/enable users from seeing certain sensitive data on user interface pages. For 3.2.9.0, the following features were added:

  • Entitlement configuration is now available from Control Center user interface.
  • Configuration pages can be accessed from the main menu: Administration -> Security -> Entitlements.
  • Configuration only supports "Global UI Runtime Grid" for Resource value, which applies the entitlements globally across the following payment data user interface pages.
    • Inbound: Physical Transmissions, Transmissions, Batches, Processing Batches, and Transactions
    • Outbound: Physical Transmissions, Transmissions, and Batches.
  • Entitlement Condition configuration only supports "Global Bank Id" for Criteria value, which will apply to the following columns on the user interface pages:
    • Inbound: Sender ID, Processor ID and Sender Alias, Processor Alias (where available).
    • Outbound Physical Transmissions: Sender ID, Processor ID
    • Outbound: Receiver
  • Entitlement Condition configuration only supports "Equals" and "Not Equals" for Operator values.
  • Entitlements can be assigned to a group by using the new action icon on the Groups page.

User interface screen captures

Entitlements:

image-20211213234026-1

image-20211213234026-2

Entitlement Conditions

To get to Entitlement Conditions page, click the “Manage Conditions” button on the top of the Entitlements Grid.

image-20211213234026-3

image-20211213234026-4

Group Entitlement Assignments dialog

image-20211213234026-5

Permissions

Permissions for Entitlement pages, including the Entitlement Condition pages, can be configured as shown in the following figure:

image-20211213234026-6

The new Entitlement assignment action on the groups grid, to assign an Entitlement to a group, has separate permissions and can be configured as shown in the following figure:

image-20211213234026-7


124496

FTM was upgraded to the 4.3 EWS WSDL for Zelle processing. No API changes or upgrades are related to this new WSDL within the FTM product. The upgrade to the new version of EWS is to allow for possible future enhancements without the required WSDL version upgrade.


124723

Send payments/payment requests to a Zelle tag

EWS has mandated that participants should be able to send payments and payment requests to “Zelle Tag” tokens by April 2022.  Zelle Tag tokens are a new type of token being added/supported by EWS.

FTM is being updated so that payments and payment requests can be sent to Zelle recipients that have a registered Zelle tag token.  This process will be identical to sending transactions to mobile and email Zelle tokens.

Also, users will be able to add Zelle Tag token recipients (like mobile and email tokens) to their Zelle recipients.

The updated APIs specific to Zelle Tag support are documented in the entitled documentation.


125245

The customization for the ISO20022 message types to ISF conversion process was enabled.
The current supported message type is pain.001 and pain.013 only.


125618

The intitateCreditTransfer API version 2 (ICT-v2, Liberty-based web service) is used for real-time payments (retail transactions) as well as batch transactions.  The real-time transaction will have the caller waiting for the transaction to complete, while the batch transactions will not.  For this reason, the real-time transactions should have priority over the batch transactions.
Three new optional fields were added to its signature: calling application name (appl_name), webServiceId (ws_id) and priority (between 0 the lowest and 100 the highest).


Example:
{

  "asynchronous": false,
  "audit_source": "The source for the audit info",
  "comment_and_contact": {
    "comment": "The user-defined comment that is used for auditing.",
    "contact_name": "John Doe",
    "contact_phone": "13424454224"
  },
  "outbound_message_type": "pain.001",
  "processing_bank_code": "123456780",
  "credit_transfer": "<pain.001>",
  "ref_transaction_id": null,
  "ref_payment_id": null,

  "appl_name": "abcdefg",
  "ws_id": "2021081715553000000000002",
  "priority": 51,

  "timeout": 8000
}


In this way the real-time payments will be routed to an endpoint associated with a high priority channel and batch transactions will be routed to an endpoint associated with a low-priority channel. 
The messages passed between PFSTransactions, Transaction Server and Gateway will be inserted to the corresponding message queues using the priority of the ICT-v2 request.

The three new fields in the web service call are loaded to the database.  The calling application name is added to the obj_value table, webServiceId is added to the ID_REFERENCE table and priority is stored in the obj_base table in the TECH_PRIORITY column.

Logic must be added to the PaymentMethodOut Node to test if the ibmNprEndpoint assigned is TCHORIG and the ibmNprMessagePriority is less than 6 (for example) then the endpoint will be changed to TCHBATCH.  If the ibmNprMessagePriority is null then no change is made. Details in DSUMigrationBR_v3.2.9 release notes.


125847

Zelle Reminder notification for senders with unknown payments about to expire

The Zelle User Experience Guide is being updated to change the optionality of the use case: “Payment Sent to Unknown Recipient, Reminder(s) - Notify Sender” to a mandatory use case. The modification to this use case notification is intended to aid in reducing expired Payments by notifying the Sender to contact the Unknown Recipient to remind them to enroll in Zelle in order for the Unknown Recipient to receive the Payment.

Two new Zelle notification API methods have been added to the Zelle notification interface:

  • public void sendExpirationReminder(CXCPayment cxcPayment)
  • public void sendExpirationReminder(CXCPaymentRequest cxcPaymentRequest)

The FI can implement the details of these methods in order to send a proper upcoming expiration reminder to the originator of the transactions.

The CXCExpirePaymentsTask has been updated to include an optional parameter for “Notification reminder days prior to expiration”:

image-20220505124839-1

When the “Notification reminder days prior to expiration” parameter is set, the expiration task will determine which transactions (Payment or Payment Request) are within the configured interval.  For those transactions, the task will call the above notification UX methods to allow the correct expiration reminder to be sent.


127056

Initiate Credit Transfer V2

A new version (V2) of the Initiate Credit Transfer web service was created.  The existing web service API was marked as deprecated. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

V1 versus V2

Initiate Credit Transfer V1 is using the traditional WebSphere Application Server, for example, on a local install:

http://localhost:58080/ws/svc/initiatecredittransfer

Initiate Credit Transfer V1 is being deprecated.

Initiate Credit Transfer V2 is using WebSphere Application Server Liberty and Digital Payments FTM:

http://localhost:57107/transactions/initiatecredittransfer_v2

While V1 and V2 use the same content for the request payload and the response, V1 is using the camel case while V2 is using the snake case naming convention.

Initiate Credit Transfer V2 is using 3 new optional fields: priority, appl_name, ws_id.

Usage

POST http://localhost:57107/transactions/initiatecredittransfer_v2

Synchronous mode example

Request

POST http://localhost:57107/transactions/initiatecredittransfer_v2 HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: The source for the audit info

x-ftm-audit-host: 10.22.108.433

Content-Length: 3060

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

  "asynchronous": false,

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing.",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "outbound_message_type": "pain.001",

  "processing_bank_code": "123456780",

  "credit_transfer": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pain.001.001.09\"><CstmrCdtTrfInitn><GrpHdr><MsgId>1234567890123456789012345678901234</MsgId><CreDtTm>2019-06-05T07:07:00</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>109</CtrlSum><InitgPty><Nm>ABC Corporation</Nm><PstlAdr><StrtNm>Times Square</StrtNm><BldgNb>7</BldgNb><PstCd>NY 10036</PstCd><TwnNm>New York</TwnNm><Ctry>US</Ctry></PstlAdr><Id><OrgId><Othr><Id>123456780</Id><SchmeNm><Prtry>Value</Prtry></SchmeNm></Othr></OrgId></Id></InitgPty></GrpHdr><PmtInf><PmtInfId>Chan_PmtInfId__00000109</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SDVA</Cd></SvcLvl><LclInstrm><Prtry>STANDARD</Prtry></LclInstrm><CtgyPurp><Prtry>CONSUMER</Prtry></CtgyPurp></PmtTpInf><ReqdExctnDt><Dt>2019-06-05</Dt></ReqdExctnDt><Dbtr><Nm>Moon River</Nm><PstlAdr><StrtNm>Times Square</StrtNm><BldgNb>7</BldgNb><PstCd>NY 10036</PstCd><TwnNm>New York</TwnNm><CtrySubDvsn>NW236373</CtrySubDvsn><Ctry>US</Ctry><AdrLine>2199 JW Clay Blvd</AdrLine></PstlAdr><Id><OrgId><LEI>A1113456091873457293</LEI></OrgId></Id></Dbtr><DbtrAcct><Id><Othr><Id>1200019421210007</Id></Othr></Id><Prxy><Id>P9828282</Id></Prxy></DbtrAcct><DbtrAgt><FinInstnId><ClrSysMmbId><MmbId>123456780</MmbId></ClrSysMmbId></FinInstnId></DbtrAgt><UltmtDbtr><Nm>Chandler Bing</Nm><PstlAdr><StrtNm>Senator Royall Drive</StrtNm><BldgNb>2109</BldgNb><PstCd>28262</PstCd><TwnNm>Charlotte</TwnNm><CtrySubDvsn>147</CtrySubDvsn><Ctry>US</Ctry><AdrLine>2109 Summertime Drive</AdrLine></PstlAdr><Id><OrgId><LEI>A1113456091873457567</LEI></OrgId></Id></UltmtDbtr><CdtTrfTxInf><PmtId><InstrId>Chan_InstrId__00000109</InstrId><EndToEndId>Chan_E2E__00000109</EndToEndId></PmtId><Amt><InstdAmt Ccy=\"USD\">109</InstdAmt></Amt><ChrgBr>SLEV</ChrgBr><CdtrAgt><FinInstnId><ClrSysMmbId><MmbId>987654320</MmbId></ClrSysMmbId></FinInstnId></CdtrAgt><Cdtr><Nm>DEF Electronics</Nm><PstlAdr><StrtNm>Mark Lane</StrtNm><BldgNb>55</BldgNb><PstCd>EC3R7NE</PstCd><TwnNm>London</TwnNm><CtrySubDvsn>87RT</CtrySubDvsn><Ctry>GB</Ctry><AdrLine>9872 Univ Blvd.</AdrLine></PstlAdr><Id><OrgId><LEI>A1113456091873457568</LEI></OrgId></Id></Cdtr><CdtrAcct><Id><Othr><Id>12000194212188888</Id></Othr></Id><Prxy><Id>5656565656</Id></Prxy></CdtrAcct><InstrForDbtrAgt>ChanRef:abc123459</InstrForDbtrAgt><Purp><Cd>GDDS</Cd></Purp><RltdRmtInf><RmtId>2020013116264838R008txuc4_rmt_good.</RmtId></RltdRmtInf><RmtInf><Strd><RfrdDocInf><Tp><CdOrPrtry><Cd>CINV</Cd></CdOrPrtry></Tp><Nb>4562</Nb><RltdDt>2006-09-08</RltdDt></RfrdDocInf></Strd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>",

  "ref_transaction_id": null,

  "ref_payment_id": null,

  "appl_name": "abcdefg",

  "ws_id": "2021081715553000000000002",

  "priority": 51,

  "timeout": 8000,

  "validate_schema": true

}

Response

[{

   "amount": 109,

   "batch_id": 141021,

   "creditor_name": "DEF Electronics",

   "debtor_name": "Moon River",

   "original_create_date_time": "2019-06-05T07:07:00",

   "original_message_identification": "1234567890123456789012345678901234",

   "payment_status_information": "COMPLETE",

   "timeout": false,

   "transaction_id": 141022,

   "transaction_status":    {

      "cid": "Chan_InstrId__00000109",

      "ftm_transaction_status": "ACTC",

      "payment_id":       {

         "identifier": 1,

         "int_identifier": 0,

         "type": 6,

         "descriptor": "PMTID"

      },

      "pres_status": "Complete",

      "presentment_group_id":       {

         "identifier": 1,

         "int_identifier": 0,

         "type": 1,

         "descriptor": "PRGRPID"

      },

      "presentment_id":       {

         "identifier": 2,

         "int_identifier": 0,

         "type": 2,

         "descriptor": "PRESID"

      },

      "received": "2021-12-03T00:51:22.189Z[UTC]",

      "txn_status": "Accepted",

      "uid": "Chan_InstrId__00000109",

      "validation_count": 0,

      "validation_results": []

   },

   "transmission_id": 141020

}]

Asynchronous mode example

Request

{

  "asynchronous": true,

  "audit_source": "The source for the audit info",

  "comment_and_contact": {

    "comment": "The user-defined comment that is used for auditing.",

    "contact_name": "John Doe",

    "contact_phone": "13424454224"

  },

  "outbound_message_type": "pain.001",

  "processing_bank_code": "123456780",

  "credit_transfer": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- \n    Licensed materials - Property of IBM\n\n    5655-FIN 5655-Y11\n    5724-D96 5725-F79\n\n    (C) Copyright IBM Corp. 2011, 2012\n-->\n\n<Document xmlns=\"urn:iso:std:iso:20022:tech:xsd:pain.001.001.09\">\n<CstmrCdtTrfInitn>\n<GrpHdr>\n<MsgId>Chan_MsgId__00000109</MsgId>\n<CreDtTm>2019-06-05T07:07:00</CreDtTm>\n<NbOfTxs>1</NbOfTxs>\n<CtrlSum>109</CtrlSum>\n<InitgPty>\n<Nm>ABC Corporation</Nm>\n<PstlAdr>\n<StrtNm>Times Square</StrtNm>\n<BldgNb>7</BldgNb>\n<PstCd>NY 10036</PstCd>\n<TwnNm>New York</TwnNm>\n<Ctry>US</Ctry>\n</PstlAdr>\n<Id>\n<OrgId>\n<Othr>\n<Id>123456780</Id>\n<SchmeNm>\n<Prtry>Value</Prtry>\n-- <Cd>pain</Cd> -->\n</SchmeNm>\n</Othr>\n</OrgId>\n</Id>\n</InitgPty>\n</GrpHdr>\n<PmtInf>\n<PmtInfId>Chan_PmtInfId__00000109</PmtInfId>\n<PmtMtd>TRF</PmtMtd>\n<PmtTpInf>\n<SvcLvl>\n<Cd>SDVA</Cd>\n</SvcLvl>\n<LclInstrm>\n<Prtry>STANDARD</Prtry>\n</LclInstrm>\n<CtgyPurp>\n<Prtry>CONSUMER</Prtry>\n</CtgyPurp>\n</PmtTpInf>\t\t\t\n<ReqdExctnDt>\n<Dt>2019-06-05</Dt>\n</ReqdExctnDt>\n<XpryDt>\n<Dt>2099-12-31</Dt>\n</XpryDt>\n<Dbtr>\n<Nm>Moon River</Nm>\n<PstlAdr>\n<StrtNm>Times Square</StrtNm>\n<BldgNb>7</BldgNb>\n<PstCd>NY 10036</PstCd>\n<TwnNm>New York</TwnNm>\n<CtrySubDvsn>NW236373</CtrySubDvsn>\n<Ctry>US</Ctry>\n<AdrLine>2199 JW Clay Blvd</AdrLine>\n</PstlAdr>\n<Id>\n<OrgId>\n<LEI>A1113456091873457293</LEI>\n</OrgId>\n<!-- <PrvtId>\n\t<DtAndPlcOfBirth>\n\t<BirthDt>1969-06-28</BirthDt>\n\t<CityOfBirth>City</CityOfBirth>\n\t<CtryOfBirth>US</CtryOfBirth>\n\t</DtAndPlcOfBirth>\n\t<Othr>\n\t<Id>9230012</Id>\n\t<SchmeNm>\n\t<Cd>CUST</Cd>\n\t</SchmeNm>\n\t<Issr>Bank</Issr>\n\t</Othr>\n</PrvtId> -->\n</Id>\n</Dbtr>\n<DbtrAcct>\n<Id>\n<Othr><Id>1200019421210007</Id></Othr>\n</Id>\n<Prxy>\n<Id>P9828282</Id>\n</Prxy>\n</DbtrAcct>\n<DbtrAgt>\n<FinInstnId>\n<ClrSysMmbId>\n<MmbId>123456780</MmbId>\n</ClrSysMmbId>\n</FinInstnId>\n</DbtrAgt>\n<UltmtDbtr>\n<Nm>Chandler Bing</Nm>\n<PstlAdr>\n<StrtNm>Senator Royall Drive</StrtNm>\n<BldgNb>2109</BldgNb>\n<PstCd>28262</PstCd>\n<TwnNm>Charlotte</TwnNm>\n<CtrySubDvsn>147</CtrySubDvsn>\n<Ctry>US</Ctry>\n<AdrLine>2109 Summertime Drive</AdrLine>\n</PstlAdr>\n<Id>\n<OrgId>\n<LEI>A1113456091873457567</LEI>\n</OrgId>\n</Id>\n</UltmtDbtr>\n<CdtTrfTxInf>\n<PmtId>\n<InstrId>Chan_InstrId__00000109</InstrId>\n<EndToEndId>Chan_E2E__00000109</EndToEndId>\n</PmtId>\n<Amt>\n<InstdAmt Ccy=\"USD\">109</InstdAmt>\n</Amt>\n<ChrgBr>SLEV</ChrgBr>\n<CdtrAgt>\n<FinInstnId>\n<ClrSysMmbId>\n<MmbId>987654320</MmbId>\n</ClrSysMmbId>\n</FinInstnId>\n</CdtrAgt>\n<Cdtr>\n<Nm>DEF Electronics</Nm>\n<PstlAdr>\n<StrtNm>Mark Lane</StrtNm>\n<BldgNb>55</BldgNb>\n<PstCd>EC3R7NE</PstCd>\n<TwnNm>London</TwnNm>\n<CtrySubDvsn>87RT</CtrySubDvsn>\n<Ctry>GB</Ctry>\n<AdrLine>9872 Univ Blvd.</AdrLine>\n</PstlAdr>\n<Id>\n<OrgId>\n<LEI>A1113456091873457568</LEI>\n</OrgId>\n</Id>\n</Cdtr>\n<CdtrAcct>\n<Id>\n<Othr><Id>12000194212188888</Id></Othr>\n</Id>\n<Prxy>\n<Id>5656565656</Id>\n</Prxy>\n</CdtrAcct>\n<!--\t<InstrForCdtrAgt>\n\t<InstrInf>OurRef:xyz9876541</InstrInf>\n</InstrForCdtrAgt> -->\n<InstrForDbtrAgt>ChanRef:abc123459</InstrForDbtrAgt>\n<Purp>\n<Cd>GDDS</Cd>\n</Purp>\n<RltdRmtInf>\n<RmtId>2020013116264838R008txuc4_rmt_good.</RmtId>\n</RltdRmtInf>\n<RmtInf>\n<Strd>\n<RfrdDocInf>\n<Tp>\n<CdOrPrtry>\n<Cd>CINV</Cd>\n</CdOrPrtry>\n</Tp>\n<Nb>4562</Nb>\n<RltdDt>2006-09-08</RltdDt>\n</RfrdDocInf>\n<!--RfrdDocAmt><DscntApldAmt><Tp><Prtry>NICK</Prtry></Tp><Amt>98700</Amt></DscntApldAmt></RfrdDocAmt-->\n</Strd>\n</RmtInf>\n</CdtTrfTxInf>\n</PmtInf>\n</CstmrCdtTrfInitn>\n</Document>",

  "ref_transaction_id": null,

  "ref_payment_id": null,

  "appl_name": "abcdefg",

  "ws_id": "2021081715553000000000002",

  "priority": 71,

  "timeout": 8000

}

Response

[{

   "amount": 109,

   "batch_id": 141027,

   "creditor_name": "DEF Electronics",

   "debtor_name": "Moon River",

   "original_create_date_time": "2019-06-05T07:07:00",

   "original_message_identification": "Chan_MsgId__00000109",

   "timeout": false,

   "transaction_id": 141028,

   "transmission_id": 141026

}]


127253

Request for Information V2 (camt.026)

A new version (V2) of the Request For Information web service was created.  The existing web service API was marked as deprecated. For more information, refer to the openapi-transactions-3.2.9.yaml that is included in the entitled documentation.

V1 versus V2

Request for Information V1 is using the traditional WebSphere Application Server, for example, on a local install:

http://localhost:58080/ws/svc/reqinfotrans/

Request for Information V2 is using WebSphere Application Server Liberty and Digital Payments FTM:

http://localhost:57107/transactions/reqinfotrans_v2

While V1 and V2 use the same content for the request payload and the response, V1 is using the camel case while V2 is using the snake case naming convention.

Usage

POST http://localhost:57107/transactions/reqinfotrans_v2 where uow_value is the transaction ID of the inbound credit transfer (pacs.008).

Example

Request

POST http://localhost:57107/transactions/reqinfotrans_v2 HTTP/1.1

Accept-Encoding: gzip,deflate

Content-Type: application/json

x-ftm-audit-source: aaa

x-ftm-audit-host: bbb

Content-Length: 243

Host: localhost:57107

Connection: Keep-Alive

User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

Authorization: Basic ZnhoYWRtaW46ZnhocGFzcw==

{

   "uows": [   {

      "uow_type": "TRANSACTION_ID",

      "uow_value": 15055

   }],

   "justifications": [   {

      "information": "test1",

      "type": "IncorrectNarrativeInformation"

   }],

   "initiator_type": "Financial Institution"

}

Response

{"15055": {

   "message": "Successfully created",

   "uow":    {

      "uow_type": "TRANSACTION_ID",

      "uow_value": 15055

   },

   "status": "200"

}}


127942

Payment profile IDs reduced to lengths that are fewer than 34 characters

When integrated with TCH, registered Zelle tokens are restricted to a maximum of 34 characters per the EWS technical documentation. FTM previously created a unique 36-character UUID for each token that was newly registered. 

An example of a generated profile ID looks something like this: 91fb2605-1926-3b7d-a181-f8eab29a666b

FTM is being updated to remove the dashes from the generated payment profile ID.  This will reduce the length of the generated profile ID to 32 characters. 

So, the previous profile ID now looks like this: 91fb260519263b7da181f8eab29a666b

Currently, no changes are required for all existing 36-character payment profile IDs.  This change affects only newly registered tokens going forward.


Migration 

Refer to the following documents for migration details:
  • DSUmigration_v3.2.9.pdf
  • DSUMigrationBR_v3.2.9.pdf
 

These documents are provided in the entitled documentation fix pack. The entitled documentation fix pack for Digital Payments can be downloaded from Fix Central by using the following link:

3.2.9-FTM-DP-MP-Documents.


[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSPKQ5","label":"IBM Financial Transaction Manager"},"ARM Category":[{"code":"a8m50000000ClaTAAS","label":"Product Documentation"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"3.2.9"}]

Document Information

Modified date:
24 February 2023

UID

ibm16517458