Payment Lifecycle Management Interfaces
Payment Lifecycle Management Interfaces
payments
/**
*The [Link] class enables the implementor to attach behaviour to
events in a payment life cycle.
*/
public class PaymentLifecycle {
/**
* This interface enables the developer to generate and return a bulk payment
reference which is used to identify multiple payments transfered in the same
message.<br>
* The interface is invoked at the output stage of the payment lifecycle.<br>
* This interface is invoked by the routines
OutwardMappingFramework.generatePacs002, [Link],
[Link],
[Link], [Link] and
[Link].<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br>
* The T24 field specifying this hook is the BulkFileRefAPI field in
[Link].<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the outgoing payments will be generated with
the default bulk reference.<br>
* <br>
* @param clearingTransactionType String : The clearing transaction type. In T24
terms this is a valid Id to the [Link] table.<br>
* @param companyBic String : The Bank Identifier Code of the processing
company. In T24 terms this is a valid Id to the [Link] table.<br>
* @param outgoingMessageType String : The outgoing message type of a payment.
In T24 terms this is a valid Id to the [Link] table.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return String : the bulk reference of the outgoing payment<br>
*/
public String getBulkPaymentReference(String clearingTransactionType, String
companyBic, String outgoingMessageType,
[Link]
transactionContext){}
/**
* This interface allows the developer to override the routing product for a
payment <br>
* The interface is invoked at the product determination stage of a payment
lifecycle.
* The interface will be used to directly control the routing of a payment based
on the beneficiary BIC.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked by the routine
[Link] <br>
* The T24 field specifying this hook is the ChangeProductAPI field in
[Link].<br>
* The resulting information will be stored in a field RoutingProduct, in table
[Link] by the system.<br>
* If an exception is thrown by the implementing class, the error will be
recorded in the [Link] and processing will continue using the default
routing product.
* <br>
* @param beneficiaryBic String : This holds the Beneficiary BIC of the
payment.<br>
* @param routingProductContext
[Link] :
Contains information needed to identify the routing product<br>
* @return String : A valid ID to the routing product table [Link].
If an empty string is returned the system will use the default routing product in
field 'RoutingProduct' in table [Link].<br>
*/
public String getRoutingProductId(String beneficiaryBic,
[Link]
routingProductContext){}
/**
* This interface enables the implementer to return the account for the credit
side of the current transaction.<br>
* This interface is invoked during the determination phase of the payment
lifecycle from the [Link] and
[Link] methods.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* If an exception is thrown in the implementing class a default credit account
will be determined by the [Link]
routine.<br>
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param creditTransaction
[Link] : Credit
transaction details for the current payment.<br>
* @return [Link] : The
Account for the credit side of the transaction.<br>
*/
public [Link]
getCreditAccount([Link]
text transactionContext,
[Link]
creditTransaction){}
/**
* This interface enables the developer to get a field with multi and sub values
to be mapped to an external request.<br>
* The interface is invoked at the output stage of standalone payment processing
to populate field data for an application while creating a request to an external
system.<br>
* The interface is invoked once for each field routine defined for the
application against this request type.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]<br>
* The T24 field specifying this hook is the Routine field in
[Link]. <br>
* This interface is invoked from
[Link] routine. <br>
* If an exception is thrown by the implementing class the returned value will
be an empty string and the exception will be recorded in the [Link]
table.
* <br>
* @param requestType String : The value of the RequestType field in
[Link]. The possible values come from the virtual table
[Link] in the [Link] table, for example AccountInquiryCredit,
CancelReservation or ReserveFunds.<br>
* @param applicationName String : Name of the application currently being
processed. This will be one of [Link], [Link],
[Link], [Link] or
[Link].<br>
* @param fieldName String : The name of the field from the applicationName
application currently being processed.<br>
* @param record TStructure : Record currently being processed. The record type
is defined by the application name.<br>
* @param isValueMandatory TBoolean : This indicates whether it is mandatory to
return a non-empty value for the field.<br>
* @param externalRequestContext
[Link] :
Contains details related to the current request.<br>
* @return [Link] : Field
with multi and sub values for the external request. If this is returned as an empty
string and isValueMandatory is true then payment will be moved to the repair
queue.<br>
*/
public [Link]
getExternalRequestField(String requestType, String applicationName, String
fieldName, TStructure record, TBoolean isValueMandatory,
[Link]
externalRequestContext){}
/**
* This interface enables the developer to get a file name for the outgoing
payment message.<br>
* The interface is invoked at the clearing stage of a payment lifecycle.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* This interface is invoked by the routines
[Link],
[Link],
[Link], [Link],
[Link],
[Link],
[Link] <br>
* The T24 field specifying this hook is the PhysicalFileNameAPI field in
[Link].<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and processing will continue using the default
file name.<br>
* @param paymentRecord
[Link] : This is payment
record details (In T24 terms, this is [Link] details)<br>
* @param fileInformation
[Link] : This is
general information of recieved file such as file reference, file format, version,
clearing id etc<br>
* @return String : <br>
*/
public String
getFileName([Link]
paymentRecord, [Link]
fileInformation){}
/**
* This interface allows the developer to decide whether to post a request to an
external system using the returned boolean value.<br>
* The developer can also modify some of data that is passed via the parameters
(paymentRecord, supplementaryInfo, agreementAdvice, postingAndConfirmation,
auditTrail and paymentApplicationUpdate).
* It should be noted that data modified via the parameters is used solely to
pass to the external system and is subsequently discarded. These changes are not
used to control subsequent payment processing.
* The interface is invoked while processing a specific status change from an
originating source for a payment.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked by the routine
[Link] <br>
* The T24 field specifying this hook is the ProgramName field in
[Link].<br>
* If an exception is thrown in the implementing class, the exception message
will be stored in the [Link] table and the integration event will not
be posted.
* <br>
* @param statusAction
[Link] : Details of the
Status that have triggered this event.<br>
* @param companyProperties
[Link] : This
record holds properties related to a company in the payments hub.<br>
* @param commonData
[Link] : Data common to
payment processing.<br>
* @param cancelRequest
[Link] : If we are
posting cancellation request then this will be populated with cancellation
details.<br>
* @param paymentContext
[Link] : Contains
details about the current context of the Payment.<br>
* @param paymentTransactionRecord
[Link] : The payment
transaction record. In T24 terms, this is the [Link] table.<br>
* @param supplementaryInformationRecord
[Link] : This
record is used to store details captured during original payment processing. In T24
terms, this is the [Link] table.<br>
* @param agreementAndAdviceRecord
[Link] :
This record is used to store all information related to the payment conditions and
advices. In T24 terms, this is the [Link] table.<br>
* @param postingAndConfirmationRecord
[Link]
rd : This record is used to store the charges applied to a transaction and the
confirmations. In T24 terms, this is the [Link] table.<br>
* @param auditTrailRecord
[Link] : This record used to
store errors on transactions and history log details of a payment. In T24 terms,
this is the [Link] table.<br>
* @return TBoolean : a boolean value that controls whether the request is
posted to the external system on return.<br>
*/
public TBoolean
postRequestToExternalSystem([Link]
tusAction statusAction,
[Link]
companyProperties, [Link]
commonData, [Link]
cancelRequest, [Link]
paymentContext, [Link]
paymentTransactionRecord,
[Link]
supplementaryInformationRecord,
[Link]
agreementAndAdviceRecord,
[Link]
rd postingAndConfirmationRecord,
[Link] auditTrailRecord){}
/**
* This interface allows the developer to define a request to update core
records to be posted asynchronously.<br>
* The interface is invoked during the paymentLifecycle when a payment changes
status.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked by the routine
[Link] <br>
* The T24 field specifying this hook is the ProgramName field in
[Link].<br>
* The invoker writes the request into the [Link] table.
* The [Link] service must be running to process the message.
* If an empty or invalid [Link] is supplied then the message will not be
processed.
* If an exception is thrown in the implementing class, the exception message
will be stored in [Link] table and no update will be posted.<br>
* @param statusAction
[Link] : The status
Action details<br>
* @param companyProperties
[Link] : This
record holds properties related to a company in the payments hub.<br>
* @param cancelRequest
[Link] : If we are
posting cancellation request then this will be populated with cancellation
details.<br>
* @param paymentTransactionRecord
[Link] : The payment
transaction record. In T24 terms, this is the [Link] table.<br>
* @param supplementaryInformationRecord
[Link] : This
record is used to store details captured during original payment processing. In T24
terms, this is the [Link] table.<br>
* @param agreementAndAdviceRecord
[Link] :
This record is used to store all information related to the payment conditions and
advices. In T24 terms, this is the [Link] table.<br>
* @param postingAndConfirmationRecord
[Link]
rd : This record is used to store the charges applied to a transaction and the
confirmations. In T24 terms, this is the [Link] table.<br>
* @param auditTrailRecord
[Link] : This record used to
store errors on transactions and history log details of a payment. In T24 terms,
this is the [Link] table.<br>
* @param paymentContext
[Link] : Contains
details about the current context of the Payment.<br>
* @param transactionData
List<[Link]> : List of the
transaction data to post the request<br>
* @param records List<TStructure> : A list of records for the data at the
corresponding index in transactionData.<br>
*/
public void
postUpdateRequest([Link]
statusAction,
[Link]
companyProperties,
[Link] cancelRequest,
[Link]
paymentTransactionRecord,
[Link]
supplementaryInformationRecord,
[Link]
agreementAndAdviceRecord,
[Link]
rd postingAndConfirmationRecord,
[Link] auditTrailRecord,
[Link] paymentContext,
List<[Link]> transactionData,
List<TStructure> records){}
/**
* GetAPI for retrieving Payment Credit Party Details for Extensibility
Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return
List<[Link]> : <br>
*/
public List<[Link]>
getPaymentCreditPartyDetails(String iNeutralMessage){}
/**
* This interface enables the developer to get a field value to be mapped to an
external request.<br>
* The interface is invoked at the output stage of standalone payment processing
while creating a request for an external system.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked from
[Link] routine. <br>
* The T24 field specifying this hook is the Routine field in
[Link]. <br>
* If an exception is thrown by the implementing class the returned value will
be an empty string and the exception will be recorded in the [Link]
table.
* <br>
* @param requestType String : The value of the RequestType field in
[Link]. The possible values come from the virtual table
[Link] in the [Link] table, for example AccountInquiryCredit,
CancelReservation or ReserveFunds.<br>
* @param applicationName String : Name of the Application. This will be one of
[Link], [Link], [Link],
[Link] or [Link].<br>
* @param fieldName String : The name of the field from the applicationName
application currently being processed.<br>
* @param record TStructure : Record currently being processed. The record type
is defined by the application name.<br>
* @param isValueMandatory TBoolean : This indicates whether it is mandatory to
return a non-empty value for the field.<br>
* @param externalRequestContext
[Link] :
Contains details related to the current request.<br>
* @return String : Field Value for the external request. If this is returned as
an empty string and isValueMandatory is true then payment will be moved to the
repair queue.<br>
*/
public String getExternalRequestFieldValue(String requestType, String
applicationName, String fieldName, TStructure record, TBoolean isValueMandatory,
[Link]
externalRequestContext){}
/**
* GetAPI for retrieving Payment Debit Party Details for Extensibility
Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return List<[Link]>
: <br>
*/
public List<[Link]>
getPaymentDebitPartyDetails(String iNeutralMessage){}
/**
* This interface enables the developer to get the source from which the payment
message originated and is invoked for the SWIFT channel.<br>
* The interface is invoked at the initial stage of the payment lifecycle from
the [Link] method.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the SourceTypeAPI field in
[Link].<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the source will be determined from the
received source or originating channel .
* <br>
* @param creditParties
List<[Link]> : Information about
the parties on the credit side of transaction<br>
* @param debitParties
List<[Link]> : Information about the
parties on the debit side of transaction<br>
* @param coverMessages
List<[Link]> : Cover messages
relating to the payment<br>
* @param debitAuthorityInformtion
[Link] : Details of
the debit authority<br>
* @param headerInformation
[Link] : Header details
including the service type identifier and end to end reference<br>
* @param remittanceInformation
[Link] : Remittance
details of the payment<br>
* @param historyLog List<[Link]>
: Audit trail details<br>
* @param directDebitInitiation
[Link] : Details only
applicable to direct debits<br>
* @param paymentWorkFlowInformation
[Link] : Details
relating to payment flow through the system<br>
* @param statusInformation
[Link] : Details relating to
the current status of payment<br>
* @param transactionContext
[Link] : Context
relating to the payment transaction<br>
* @param informationLine
List<[Link]> : A list of
information lines each relating to a SWIFT tag.<br>
* @param additionalInformation
List<[Link]> :
A list of additional information lines each relating to a non-mandatory SWIFT
tag.<br>
* @param mappingContext
[Link] : Context
relating to mapping phase of a payment<br>
* @return String : The source from which the message originated. In T24 terms
this is a valid id to the [Link] table.<br>
* @deprecated use [Link] instead<br>
*/
public String
getSwiftSource(List<[Link]>
creditParties, List<[Link]>
debitParties, List<[Link]>
coverMessages, [Link]
debitAuthorityInformtion,
[Link] headerInformation,
[Link]
remittanceInformation, List<[Link]>
historyLog, [Link]
directDebitInitiation,
[Link]
paymentWorkFlowInformation,
[Link] statusInformation,
[Link]
transactionContext,
List<[Link]>
informationLine,
List<[Link]>
additionalInformation,
[Link] mappingContext)
{}
/**
* This interface enables the implementer to get a charge response for the
transaction, this can be either calculated charge amount or a boolean value
indicating that the system default calculation is to be used.<br>
* This interface is invoked during the processing phase of the payment
lifecycle from the [Link] method.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* The T24 field specifying this hook is the FeeAPI field in [Link]
application.<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and the system default calculation will be
used.<br>
* <br>
* @param chargeCriteria
[Link] : The criteria
for the charge calculation including transaction amount, currency and country.<br>
* @return [Link] :
ChargeResponse containing either an amount or useSystemCharge set to true if amount
is to be ignored and system calculation is to be used.<br>
*/
public [Link]
getChargeResponse([Link]
a chargeCriteria){}
/**
* GetAPI for retrieving Payment Direction and Type for Extensibility
Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return
List<[Link]> : <br>
*/
public List<[Link]>
getPaymentDirectionType(String iNeutralMessage){}
/**
* This interface allows the developer to get the location of the account
validation system and corresponding demand deposit account system for the payment
account.<br>
* The interface is invoked at the account validation stage of a payment
lifecycle.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked from
[Link],
[Link] and
[Link] routines. <br>
* The T24 field specifying this hook is the AccountValidationHookAPI field in
[Link]. <br>
* If an exception is thrown by the implementing class, the error will be
recorded in [Link] and processing will continue using 'T24' as a
default value.
* <br>
* @param accountDetails
[Link] : Holds details
about the account.<br>
* @param accountLocationContext
[Link] : Place
holder variable to allow additional information to be passed in future, if
necessary.<br>
* @return [Link] :
AccountLocation containing the location of the account validation system and the
demand deposit account system.<br>
*/
public [Link]
getAccountLocation([Link]
ls accountDetails,
[Link]
accountLocationContext){}
/**
* This interface enables the developer to determine the request type which is
used by the transaction recycler to determine which entries need to be stored for
recycling when the payment is occuring after the cutoff time. <br>
* The request type is then used to override the [Link] field of
the [Link] table. <br>
* This interface is invoked from the
[Link] method after the balance check has been
made if the payment is occuring after the cutoff time. <br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br>
* The T24 field specifying this hook is the RecyclerLookupAPI field in
[Link] application.<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and processing will continue with the request type
defaulted from the origination source of the payment.
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param debitTransaction
[Link] : Debit
transaction details for the current payment.<br>
* @param creditTransaction
[Link] : Credit
transaction details for the current payment.<br>
* @param transaction
[Link] : Contains
information about the transaction .<br>
* @param processSequence
[Link] : The process
sequence controls how the incoming payment is processed.<br>
* @param product [Link] :
Contains product information which can be updated to control the processing of the
payment .<br>
* @param channelControl
[Link] : Controls when
the channel can be used.<br>
* @param paymentDate
[Link] : Contains all date
related information of the payment processing.<br>
* @param batchPayment
[Link] : Contains
information related to batch payment transaction.<br>
* @return String : the request type for use by transaction recycler, must be
valid id to the [Link] table. e.g. PP,PP-SWIFT.<br>
*/
public String
getRequestType([Link]
xt transactionContext,
[Link]
debitTransaction,
[Link]
creditTransaction, [Link]
transaction, [Link]
processSequence, [Link]
product, [Link]
channelControl, [Link]
paymentDate, [Link]
batchPayment){}
/**
* GetAPI for retrieving Payment Flow Data for Extensibility Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return List<[Link]> : <br>
*/
public List<[Link]>
getPaymentFlowData(String iNeutralMessage){}
/**
* This interface enables the implementer to return the Account Restriction
Details.<br>
* This interface is invoked during payment lifecycle from the [Link]
methods while posting Accounting Entries.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link] under the Recordkey PostingInterface.<br>
* If an exception is thrown in the implementing class, the exception message
will be stored in [Link] table and the entry posting process will
continue.<br>
* <br>
* @param AccountDetails
[Link] : The Account
details including the companyMnemonic , accountNumber ,
accountCurrency ,fundsTransferId & accountCompany .<br>
* @return
[Link] : The
Account restrictions that can affect the payment entry posting.<br>
*/
public [Link]
getPostingRestriction([Link]
tails AccountDetails){}
/**
* GetAPI for retrieving [Link] data<br>
* @param iTransactionId String : Incoming Message in neutral format<br>
* @return
List<[Link]> : <br>
*/
public
List<[Link]>
getPaymentSupplementaryInfo(String iTransactionId){}
/**
* This interface enables the developer to validate the artifacts generated
during payment processing and return an error to cancel processing and place the
payment to the repair queue.<br>
* The transactionId within transactionContext should be used to access any data
records.
* The interface is currently invoked at the output stage of the payment
lifecycle.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* This interface is invoked by the [Link]
method for a [Link] record with an Id of "Posting".<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the payment moved to the repair queue.
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return [Link] : the
Response. If the Response is populated on return processing will be cancelled and
the payment will be placed in repair queue. <br>
*/
public [Link]
validatePayment([Link]
ext transactionContext){}
/**
* This interface enables the developer to get the source from which the payment
message originated and is invoked for the SWIFT channel.<br>
* The interface is invoked at the initial stage of the payment lifecycle from
the [Link] method.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the SourceTypeAPI field in
[Link].<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the source will be determined from the
received source or originating channel .
* <br>
* @param creditParties
List<[Link]> : Information about
the parties on the credit side of transaction<br>
* @param debitParties
List<[Link]> : Information about the
parties on the debit side of transaction<br>
* @param coverMessages
List<[Link]> : Cover messages
relating to the payment<br>
* @param debitAuthorityInformtion
[Link] : Details of
the debit authority<br>
* @param headerInformation
[Link] : Header details
including the service type identifier and end to end reference<br>
* @param remittanceInformation
[Link] : Remittance
details of the payment<br>
* @param historyLog List<[Link]>
: Audit trail details<br>
* @param directDebitInitiation
[Link] : Details only
applicable to direct debits<br>
* @param paymentWorkFlowInformation
[Link] : Details
relating to payment flow through the system<br>
* @param statusInformation
[Link] : This consist of
status related information like code ,process id<br>
* @param transactionContext
[Link] : Context
relating to the payment transaction<br>
* @param informationLine
List<[Link]> : A list of
information lines each relating to a SWIFT tag.<br>
* @param additionalInformation
List<[Link]> :
A list of additional information lines each relating to a non-mandatory SWIFT
tag.<br>
* @param localReferenceInformation
List<[Link]> : This is a list of
Local Reference information<br>
* @param mappingContext
[Link] : Context
relating to mapping phase of a payment<br>
* @return String : The source from which the message originated. In T24 terms
this is a valid id to the [Link] table.<br>
*/
public String
getSwiftOriginatingSource(List<[Link]
ty> creditParties, List<[Link]>
debitParties, List<[Link]>
coverMessages, [Link]
debitAuthorityInformtion,
[Link] headerInformation,
[Link]
remittanceInformation, List<[Link]>
historyLog, [Link]
directDebitInitiation,
[Link]
paymentWorkFlowInformation,
[Link] statusInformation,
[Link]
transactionContext,
List<[Link]>
informationLine,
List<[Link]>
additionalInformation,
List<[Link]>
localReferenceInformation,
[Link] mappingContext)
{}
/**
* This interface enables the implementer to return a PaymentDate object which
impacts when the payment is processed.<br>
* This interface is invoked during the determination phase of the payment
lifecycle from the [Link] routine.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and the paymentDate will be calculated using the
core default method.<br>
* <br>
* @param transaction
[Link] : Contains
information about the transaction .<br>
* @param channelControl
[Link] : Controls when
the channel can be used.<br>
* @param debitBankConditions
List<[Link]> : Bank
condition to be applied on debit side.<br>
* @param creditParties
List<[Link]> : Credit
party details of the current payment process.<br>
* @param paymentAccounts
List<[Link]> : The
debit, credit and charge accounts of the payment.<br>
* @param payment [Link] :
Data related to the processing of a payment.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return [Link] :
PaymentDate containing the processing date, Credit Value date and Debit value
date.<br>
*/
public [Link]
getPaymentDate([Link]
transaction, [Link]
channelControl,
List<[Link]>
debitBankConditions,
List<[Link]>
creditParties,
List<[Link]>
paymentAccounts, [Link]
payment, [Link]
transactionContext){}
/**
* This interface enables the implementer to get the narrative which will be
updated in the statement lines of [Link] table.<br>
* This interface is invoked during the output phase of the payment lifecycle
from the [Link] method.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br>
* The T24 field specifying this hook is the UserTokenAPI field in
[Link].<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and the narrative will not be updated in the
statement lines.<br>
* <br>
* @param fundTransferId String : The funds transfer id of the payment.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return String : the statement narrative, a description of the payment for
the statement line.<br>
*/
public String getStatementNarrative(String fundTransferId,
[Link]
transactionContext){}
/**
* This interface enables the developer to populate the transaction code details
to be used while posting the payment.<br>
* The interface is invoked at the posting stage of payment processing.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* This interface is invoked from the
[Link] routine.<br>
* The T24 field specifying this hook is the TransactionCodeAPI field in
[Link].<br>
* If an exception is thrown from the implementing class, it will be recorded in
exception log.
* <br>
* @param paymentRecord
[Link] : This is payment
record details (In T24 terms, this is [Link] details)<br>
* @param supplementaryInfo
[Link] : This
record is used to store input details of a payment. (In T24 terms, this is
[Link] details)<br>
* @param paymentPostingContext
[Link] : Context
related to payment posting<br>
* @return [Link] :
the TransactionCode containing the debit and credit transaction codes for the main
transaction and its charges.<br>
*/
public [Link]
getTransactionCode([Link]
paymentRecord,
[Link]
supplementaryInfo,
[Link]
paymentPostingContext){}
/**
* This interface enables the implementer to update the processing sequence and
decide whether to include the codeword for special processing or not.<br>
* This interface is invoked during the processing phase of the payment
lifecycle from the [Link] method.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the ProcessingSequenceRoutineName field
in [Link].<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table, the process sequence remains unchanged and the
codeword will be required .<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param inboundCodeword
[Link] : codeword for
the incoming process.<br>
* @param processSequence
[Link] : The process
sequence can be modified here and controls how the incoming payment is
processed.<br>
* @param isCodewordRequired TBoolean : If isCodewordRequired is true then
corresponding codeword is included for special processing<br>
*/
public void
updateProcessSequence([Link]
onContext transactionContext,
[Link]
inboundCodeword,
[Link]
processSequence, TBoolean isCodewordRequired){}
/**
* This interface allows the developer to update a request to an external core
system.<br>
* The interface is invoked while processing a specific status change from an
originating source for a payment.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked by the routine
[Link] <br>
* The T24 field specifying this hook is the ProgramName field in
[Link].<br>
* If an exception is thrown in the implementing class, the exception message
will be stored in [Link] table and the integration event will be
cancelled.<br>
* @param statusAction
[Link] : This is the
status Action details<br>
* @param paymentRecord
[Link] : This is payment
record details (In T24 terms, this is [Link] details)<br>
* @param paymentContext
[Link] : Contains
details about the current context of the Payments<br>
* @param supplementaryInfo
[Link] : This
record is used to store input details of a payment. (In T24 terms, this is
[Link] details)<br>
* @param agreementAdvices
[Link] :
This record is used to store all information that are derived during payment
processing. (In T24 terms, this is [Link] details)<br>
* @param postingAndConfirmations
[Link]
rd : This record is used to store the charges applied for a transaction. (In T24
terms, this is [Link] details)<br>
* @param auditTrail
[Link] : This record used to
store errors on transactions and history log details of a payment (In T24 terms,
this is also [Link] details)<br>
* @param companyProperties
[Link] : This
record holds properties related to a company in the payments hub.<br>
* @param commonData
[Link] : Common data<br>
* @param cancelRequest
[Link] : Cancel
Request<br>
* @param flags [Link] :
Flags for indicating the functionality required<br>
* @param paymentApplicationUpdate
[Link] :
Modifiable Data<br>
* @deprecated use [Link] instead<br>
*/
public void
updateRequestToExternalCoreSystem([Link]
[Link] statusAction,
[Link] paymentRecord,
[Link] paymentContext,
[Link]
supplementaryInfo,
[Link]
agreementAdvices,
[Link]
rd postingAndConfirmations,
[Link] auditTrail,
[Link]
companyProperties, [Link]
commonData, [Link]
cancelRequest, [Link] flags,
[Link]
paymentApplicationUpdate){}
/**
* This interface enables the developer to modify outgoing payment records for
handoff to the integration framework, the developer can additionally choose whether
to commit the updates back to the core transaction tables.<br>
* The interface is invoked at the output stage of the payment lifecycle.<br>
* This interface is invoked by the routine
[Link].<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].<br>
* The T24 field specifying this hook is the EnrichOutMessageAPI field in
[Link].<br>
* If an exception is thrown in the implementing class the error will be
recorded in the [Link] and the payment records will be handed off to
the integration framework unchanged.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param paymentTransactionRecord
[Link] : The payment
transaction record which can be updated for hand off to the integration framework.
If updateCorePaymentTransactionRecord is true the record will also be updated to
the [Link] table. In T24 terms this is a record from the [Link]
table.<br>
* @param supplementaryInformationRecord
[Link] : The
supplementary information record which can be updated for hand off to the
integration framework. If updateCoreSupplementaryInformationRecord is true the
record will also be updated to the [Link] table. In T24 terms this
is a record from the [Link] table.<br>
* @param queriesAnswerRecord
[Link] : The queries
answer record which can be updated for hand off to the integration framework. If we
are posting cancellation request then this will be populated with cancellation
details. In T24 terms this is a record from the [Link] table.<br>
* @param updateCorePaymentTransactionRecord TBoolean : If this is true changes
made to the payment transaction record will be written to the [Link] table
otherwise the changes are only handed off on the integration framework.<br>
* @param updateCoreSupplementaryInformationRecord TBoolean : If this is true
changes made to the payment transaction record will be written to the
[Link] table otherwise the changes are only handed off on the
integration framework.<br>
* @param logText TString : The text to be logged to the [Link] table
if present. If no logText is supplied the audit trail will not be updated.<br>
*/
public void
updateOutgoingPaymentRecords([Link]
ansactionContext transactionContext,
[Link]
paymentTransactionRecord,
[Link]
supplementaryInformationRecord,
[Link]
queriesAnswerRecord, TBoolean updateCorePaymentTransactionRecord, TBoolean
updateCoreSupplementaryInformationRecord, TString logText){}
/**
* This interface enables the implementer to validate the party on the credit
side of the current transaction.<br>
* This interface is invoked during the determination phase of the payment
lifecycle from the [Link] and
[Link] methods.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* If an exception is thrown from the implementing class then it will be
recorded in the [Link] table and processing will continue.<br>
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param creditTransaction
[Link] : Credit
transaction details for the current payment.<br>
* @return [Link] : the
Response. If the [Link] is populated on return the payment will be placed in
repair queue. <br>
*/
public [Link]
validateCreditParty([Link]
Context transactionContext,
[Link]
creditTransaction){}
/**
* This interface enables the implementer to return the account for the debit
side of the current transaction.<br>
* This interface is invoked during the determination phase of the payment
lifecycle from the [Link] and
[Link] methods.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* If an exception is thrown in the implementing class a default debit account
will be determined by the [Link]
routine.<br>
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param debitTransaction
[Link] : Debit
transaction details for the current payment.<br>
* @return [Link] :
The Account for the debit side of the transaction.<br>
*/
public [Link]
getDebitAccount([Link]
ext transactionContext,
[Link]
debitTransaction){}
/**
* This interface enables the implementer to determine which grouping criteria
are to be used to group a bulk payment.<br>
* This interface is invoked during the output phase of the payment lifecycle
from the [Link],
[Link] and
[Link] methods.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* The T24 field specifying this hook is the BulkingCriteriaAPI field in
[Link] application.<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and output message will be generated without any
grouping.<br>
* <br>
* @param paymentCriteria
[Link] : The payment
criteria contains data from an outgoing payment instruction which will be used in
deciding how to group it into a bulk payment.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return
[Link] : the
GroupingCriteria specifying which grouping criteria are to be used to group a bulk
payment.<br>
*/
public [Link]
getGroupingCriteria([Link]
eria paymentCriteria,
[Link]
transactionContext){}
/**
* GetAPI for retrieving Payment Charge Details for Extensibility Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return
List<[Link]> : <br>
*/
public List<[Link]>
getPaymentChargeDetails(String iNeutralMessage){}
/**
* This interface enables the implementer to validate the party on the debit
side of the current transaction.<br>
* This interface is invoked during the determination phase of the payment
lifecycle from the [Link]
routine.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and processing will continue.<br>
* <br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @param debitTransaction
[Link] : Debit
transaction details for the current payment.<br>
* @return [Link] : the
Response. If the [Link] is populated on return the payment will be placed in
repair queue.<br>
*/
public [Link]
validateDebitParty([Link]
ontext transactionContext,
[Link]
debitTransaction){}
/**
* This interface enables the implementer to define up to five additional custom
grouping values used to group outgoing payments.<br>
* These values are later passed to the getGroupingCriteria interface which
assesses which criteria are to be included for grouping a specific payment.<br>
* This interface is invoked prior to the clearing phase of the payment
lifecycle from the [Link],
[Link],
[Link],
[Link],
[Link],
[Link], [Link],
[Link],
[Link],
[Link], [Link] and
[Link] methods.<br>
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* The T24 field specifying this hook is the CriteriaConfigurationAPI field in
the [Link] application.<br>
* If an exception is thrown in the implementing class then it will be recorded
in the [Link] table and the processing will continue with no additional
custom grouping values.<br>
* <br>
* @param clearingTransactionType String : The clearing transaction type. In T24
terms this is a valid Id to the [Link] table.<br>
* @param cancellationId String : The cancellation payment's message reference.
In T24 terms this is a valid Id to the [Link] table.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return List<String> : A list of up to five additional custom grouping values
used to group outgoing payments, any additional values beyond the first five will
be ignored .<br>
*/
public List<String> getCustomGroupingValues(String clearingTransactionType,
String cancellationId,
[Link]
transactionContext){}
/**
* This interface enables the developer to get the source from which the payment
message originated and is invoked for channels other than SWIFT.<br>
* The interface is invoked at the initial stage of the payment lifecycle from
the [Link] method.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the SourceTypeAPI field in
[Link].<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the source will be determined from the
received source or originating channel .
* <br>
* @param senderBic String : Bank Identifier Code of the sender's bank. A valid
id to the [Link] table.<br>
* @param mappingContext
[Link] : Context
relating to mapping phase of a payment<br>
* @return String : The source from which the message originated. In T24 terms
this is a valid id to the [Link] table.<br>
*/
public String getSource(String senderBic,
[Link] mappingContext)
{}
/**
* This interface allows the developer to validate a payment to be processed by
a clearing system.<br>
* The interface is invoked prior to the clearing stage of a payment lifecycle.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link]
* This interface is invoked from the
[Link] and
[Link] routines. <br>
* The T24 field specifying this hook is the ValidateAPI field in
[Link].<br>
* If an exception is thrown from the implementing class, the payment will
receive an invalid response and exception log is updated
* <br>
* @param inputChannel
[Link] : Input Channel
Details<br>
* @param creditParty
List<[Link]> : Credit
party Details<br>
* @param debitParty
List<[Link]> : Debit party
Details<br>
* @param clearingContext
[Link] : Context
related to payment clearing<br>
* @return
[Link] : a
ValidationResponse if a message code is present the payment will be moved to the
repair queue otherwise it will be processed for clearing.<br>
*/
public [Link]
validatePaymentForClearing([Link]
tChannel inputChannel,
List<[Link]> creditParty,
List<[Link]> debitParty,
[Link]
clearingContext){}
/**
* This interface allows the developer to override product related information
including the routing product <br>
* The interface is invoked at the product determination stage of a payment
lifecycle.
* The interface will be used to directly control the routing of a payment based
on the product installed.
* <br><b>T24 Details:</b> The [Link] hooks used by this interface are
[Link] and [Link].
* This interface is invoked by the routines
[Link] and
[Link]. <br>
* The T24 field specifying this hook is the ChangeProductAPI field in
[Link] and [Link].<br>
* The updated product information will be used to control the processing of the
payment.<br>
* The routing product will be stored in the RoutingProduct field in
[Link] and [Link] by the system.<br>
* If an exception is thrown by the implementing class, the error will be
recorded in the [Link] and processing will continue with the product
information unchanged.<br>
* @param routingProductContext
[Link] :
Contains information needed to identify the routing product .<br>
* @param transaction
[Link] : Contains
information about the transaction .<br>
* @param product [Link] :
Contains product information which can be updated to control the processing of the
payment .<br>
*/
public void
updateProduct([Link]
text routingProductContext,
[Link] transaction,
[Link] product){}
/**
* This interface enables the developer to decide whether to skip the generation
of the swift output message.<br>
* The interface is invoked at the output stage of a payment lifecycle.
* <br><b>T24 Details:</b> The [Link] hook used by this interface is
[Link].
* The T24 field specifying this hook is the HookAPIName field in
[Link].<br>
* This interface is invoked by the [Link] method for
the [Link] record with the Id "SwiftOutService".<br>
* If an exception is thrown in the implementing class, the error will be
recorded in the [Link] and the outgoing swift message is generated.
* <br>
* @param transaction
[Link] : Contains
information about the transaction .<br>
* @param charge [Link] :
Sender and receiver charge details.<br>
* @param currencyExchangeInstruction
[Link] :
currency exchange instruction includes amount, currency and exchange rate of a
currency exchange.<br>
* @param payment [Link] :
Data related to the processing of a payment.<br>
* @param creditTransaction
[Link] : Credit
transaction details for the current payment.<br>
* @param debitTransaction
[Link] : Debit
transaction details for the current payment.<br>
* @param transactionContext
[Link] : The
transaction context including the company, transaction id and business date.<br>
* @return TBoolean : a boolean value true to to skip the generation of the
swift output message.<br>
*/
public TBoolean
skipMessage([Link]
transaction, [Link] charge,
[Link]
currencyExchangeInstruction,
[Link] payment,
[Link]
creditTransaction,
[Link]
debitTransaction,
[Link]
transactionContext){}
/**
* GetAPI for retrieving Payment Dates for Extensibility Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return List<[Link]> : <br>
*/
public List<[Link]>
getPaymentDates(String iNeutralMessage){}
/**
* GetAPI for retrieving Routing Info for Extensibility Framework<br>
* @param iNeutralMessage String : Incoming Message in neutral format<br>
* @return List<[Link]> :
<br>
*/
public List<[Link]>
getPaymentRoutingInfo(String iNeutralMessage){}