Prefunded batch and account user exit
Prefunding verifies that the accounts involved, for either an individual or a batch of payments, have the necessary funds available to successfully complete the transactions. The accounts are tested, and possibly posted, to ensure that they have the funds that are needed. Since testing or posting an account is usually done by a process external to FTM, a user exit is called.
The user exit calls back-end account management and posting applications to do the business logic necessary to handle the prefunding requests. Sample source code to use as a template for a new prefunded batch and account user exit is provided by Risk Management.
- For account prefunding, the account number from a transaction that matches one of the prefunded account numbers for the originating partner is used.
- For batch (ICL) prefunding, either the account that is configured for the message type of the batch (ICL) or the default account for the originator of the batch (ICL) is used.
To do account prefunding checks, the user must indicate that an account is a prefunded account when it is defined. When the Risk Management engine finds a prefunded account during transaction level checking, it calls the prefunded batch and account user exit. This user exit is used to do any business logic that is specific to the customer and to indicate whether the risk check passed or failed based on that custom logic. For more information about the order in which risk checking occurs and what happens when risk checks pass or fail, see Risk workflow.
To do batch (ICL) prefunding checks, define an exposure limit monitor as a prefunded batch monitor. Prefunded batches (ICLs) are monitored by calling the prefunded batch and account user exit. For more information about defining the monitor, see Exposure Limit Monitors Page.
Calling the prefunded batch and account user exit
- account prefunding requests is
prefundedAccountCheck - batch (ICL) prefunding requests is
prefundedBatchCheck
When the prefunded batch and account user exit is called, it receives an instance of
RiskPrefundedInterface. The RiskPrefundedInterface includes information
about the batch (ICL) and the transaction that the user exit uses to determine whether its risk checking
passes or fails.
RiskPrefundedReturnObject, which has a pass field to indicate whether the user exit risk
checks passed or failed. If the risk checking that is done by the user exit fails, the user exit returns a
RiskPrefundedReturnObject with the pass field set to false and the errorCode and errorMessage
fields set. If the risk checking that is done by the user exit passes, the user exit returns a
RiskPrefundedReturnObject with the pass field set to true. - RSKPF001K - account prefunding request
- RSKPF003K - account prefunding response
- RSKPF002K - batch (ICL) prefunding request
- RSKPF004K - batch (ICL) prefunding response
When the risk checking that is done by the user exit fails, the user exit returns an error code. If the error code is configured to automatically retry the prefunded user exit, the unit of work is retried. For more information, see Automated retry of Risk prefund errors.
Creating a prefunded batch and account user exit
The prefunded batch and account user exit must implement the
RiskPrefundingProcessorInterface class by extending the
RiskPrefundingProcessor class. Extending the RiskPrefundingProcessor class
protects the user exit from any future changes to RiskPrefundingProcessorInterface.
SamplePrefundedAccount is included in the JAR files that are installed with
Risk Management, rename any new user exits that are created from the sample. This renaming
ensures that the new user exit is called instead of the one provided with Risk Management.Installing a prefunded batch and account user exit
The fully qualified name of the prefunded batch and account user exit is specified on the general
properties page of the Risk Management user interface. By default, the name of the user exit is
com.ibm.paydir.risk.userexit.samples.SamplePrefundingProcessor.
The user exit must also be visible to the Risk Management engine. The JAR file for the user exit needs to be installed in the shared library path for the engine.
Canceling batches (ICLs) and prefunding
When a batch (ICL) is canceled, the batch (ICL) can contain a combination of transactions that were and were not delivered. Batch (ICL) cancellation identifies the transactions that have yet to be delivered and checks to see whether batch or account prefunding requests were made.
- account prefunding requests is
cancelAccountPrefunding - batch (ICL) prefunding requests is
cancelBatchPrefunding
- RSKPF005K - account cancellation request
- RSKPF007K - account cancellation response
- RSKPF006K - batch (ICL) cancellation request
- RSKPF008K - batch (ICL) cancellation response