TPS Day - 1 (New)
TPS Day - 1 (New)
2
Preferable prerequisites for this course
3
4
End of Day 1 – Learning objectives will be met.
5
TPH is Payment Hub built on Global payment process which enables Banks / Financial
Institutions move to a sophisticated centralized infrastructure that operates Any
format, any channel to any destination.
6
Message Mapping Component interprets the external payment messages from native
format(i.e. SWIFT) to Neutral Payment Object in order to map the messages into TPH
specific format and to create payment order transaction.
7
TPH Payment Processing Flow Diagram
8
TPH componentized solution caters to accommodate emerging changes in the
market. (i.e. Highly Parametrical Solution). All components put together process a
payment transaction as per configuration done.
9
Pending and Processed Enquiry provides details of the processed payments and
current status of the payment.
10
It is used for Manual payments input by Bank operator i.e. Client initiated payment
through Non-STP channels like FAX or to capture the payment transaction of STP
failures etc.
11
Payment transactions resulted into repair due to incorrect data or payments
validation failure can be repaired using this screen
12
Audit Trail option provides the details of transaction processed by respective
components and its’ outcome.
13
14
Payment Transaction related data capture table known as “POR” Tables which are
updated by TPH during the processing considering the Static Data maintenance and
Received Message data or User Input.
• POR Table (Transaction details captured by the system)
POR tables (payment order tables)
POR.TRANSACTION
POR.ACCOUNTINFO
POR.ADDITIONALINF
POR.ADVICE
POR.APPLIEDFEE
POR.CLIENTCONDITIONS
POR.DEBITBANKCONDITIONS
POR.CREDITBANKCONDITIONS
POR.XXXCONFIRMATIONS (SMS/POST etc)
POR.INFORMATION
POR.PARTYCREDIT
POR.PARTYDEBIT
POR.POSTINGLINE
POR.STATEMENTLINE
POR.HISTORYLOG
15
Process incoming MT103
16
T24 Bank – Account with Institution / Beneficiary Customer
TPH – Payment Processing company / Branch
17
Flow of MT 103 message.
18
Incoming message received from SWIFT channel
19
Using menu option “Payment Hub -> Received Files” Message status and received
message details can be viewed.
20
POR.TRANSACTION captures payment transaction details processed by TPH along
with current status of the payment.
21
22
Quick Reference Guide for party roles. TRMINS
Contains party role name, description and tag Third Reimbursement Institution
from which value will be retrieved for the party 55A, B or D
INSPTY SENDER
Instructing Party Sender
50 C or L IMPDBT
ORDPTY Implied Debit Account
Ordering Party INTINS
50 A, F, G, H or K Intermediary Institution
SNDINS 56 A, C or D
Sending Institution ACWINS
51A Account with Institution
ASVINS 57 A, B, C or D
Account Servicing Institution BENINS
52A or C Beneficiary Institution
ORDINS 58 A or D
Ordering Institution BENFCY
52A or D Beneficiary
SNDCBK 59A or no letter option
Sender’s Correspondent Bank IMPCDT
53A, B or D Implied Credit Account
RCVCBK RECVER
Receiver Institution of the MT103
message
23
Receiver’s Correspondent Bank
54A, B or D
23
• There are a set of basic tables that need to be configured for payments to be
processed in TPH.
• These tables are termed as static tables and are usually the first set of tables to be
defined during an implementation.
24
Company is a legal entity / Enterprise (i.e. Financial Institution / Bank / Branch)
Companies which can send and receive messages in TPH need to be defined. These
should be valid companies defined in T24 in table COMPANY.
25
Each company which is defined in order to participate in processing messages via TPH
will possess number of attributes. These are defined per company. Only a company
defined in PP.COMPANY can have its properties set here.
Each company needs to have a BIC, a currency, a region to which it belongs to etc.
Such properties are defined per company.
26
• This holds the list of all currencies that can be transacted per company.
• One company could transact in multiple currencies.
27
• Source is the place from where the message originated. Channel is the path
through which the message reached TPH or the one which gives the message to
TPH.
• All payment order in TPH must have an originating source.
• Source maintenance identifies the channel through which payment message will
be received for processing in TPH.
• Source of the payment is one of the important field that influences selection of
payment product which in turn influences fees, client agreements etc.
28
• Channel is the path through which the message reached TPH or the one which
gives the message to TPH.
• A message can come through a channel from various different sources
• To sum it up, a channel can be used by multiple sources.
• SWIFT Channel is used by Sources like CHATS, TARGET, CHAPS etc.,
29
• Every country needs to belong to a region.
• This is for grouping countries in a region
30
• This table stores all the status codes that a payment might pass through during
payment processing life cycle.
• Status code details the current stage of the payment transaction. Status codes are
assigned from the beginning of the transaction till payment completion stage and
also records to status passed through the stages of transaction.
• Payment will pass through multiple status codes during its lifecycle and each status
code indicates payment’s position and current status in the flow. Logical end of
every stage is updated with status codes (Customer validation, Balance
verification, Product determination, Filtering completion, message generation and
payment completion etc.)
• Status code ‘999’ signifies that payment is completed.
• It acts as an input or selection criteria for payment workflow to process by
subsequent and appropriate payment components for payments completion.
• The status codes of a payment transaction are fixed and cannot be changed. The
business logic behind the GUI will validate an entered status code against the
available values. The table Status Code does not have Start Date and End Date for a
record.
31
For a payment to be processed, number of internal activities need to happen on the
payment. The activities are listed and each of them are impact payment processing in
a specific way. This is explained in detail as we proceed.
32
As a payments hub, TPH can receive single as well as bulk messages. Messages once
receives are stored in the database so that no message is lost. Once the message is
accepted and successfully validated, TPH performs what is called ‘mapping’ which
maps the data received on to various internal TPH tables which ease payments
processing.
Being a payments hub, there would be a number of different message formats that
need to be consumed. In order to cater to this, TPH exposes a XML schema to accept
credit transfer as well as direct debit messages.
Hence, once the messages are mapped to this XML schema and sent, TPH, on
successful validation will store the message as well as map them. The XML schema
can accept both single as well as bulk messages.
33
What can TPH do with messages that it receives?
Receive message from any Channel - Channel agnostic
As the name implies, Message Acceptance denotes accepting messages from any
channel.
Can receive single or bulk messages
Messages can be single messages or bulk messages.
Interpret/Validate messages
Messages such as SWIFT need to be interpreted to obtain message formats whereas
messages such as Batch messages need to validated for content. Hence, both
interpretation and validation of messages are performed when a message is accepted
Accept or reject messages
Once a message is received, basic message validation such as to check if it is
supported message type, supported channel etc need to be performed. Based on
validations set at the channel level/message level, message is either accepted for
further processing or rejected.
Mark messages to be repaired and resubmitted
If messages result in an error, facility to resubmit the message is available.
Forward messages
There could be messages that are received by TPH which aren’t meant for processing
within TPH, such messages can be identified and forwarded to a per-determined
queue. (This is only provided for messages in 1 and 2 series). Banks are expected to
route the correct messages to TPH.
34
Check for technical duplicates
In order to avoid messages getting processed more than once, duplicate processing is
enabled at TPH level for bulk messages.
Send ACK/NACK responses
Once a message is received, ACK (Acknowledgement) or NACK (Negative
acknowledgement) can be sent to a pre-configured queue
Transform messages to neutral format (Mapping)
Messages received in any format can be transformed (mapped) into a Payment
Engine generic internal format so that TPH can perform further processing. The
message is parsed into individual fields.
Create Payment Order
Based on the parsed message, a payment order is created and stored in the database.
Messages can be accepted 24/7
Messages can be accepted from any channel at any time – even while SODEOD
process is in progress in T24
Messages can be mapped only when TPH is online
Messages can be mapped only when the system is online (Not while SODEOD is in
progress)
34
How to view the status of a message once it has been posted to TPH
Using menu option “Payment Hub -> Received Files” Message status and received
message details can be viewed.
35
TPH, then, the only way would be to make the corrective action (If any) and re-send
the message to TPH.
REPAIR
Message is a supported format but is an erroneous message. A message in REPAIR
can be resubmitted post corrective action. Message need not be re-pumped in.
FORWARDED
Message has been forwarded to another queue.
35
Define the message formats to be used
For TPH to be able to pick up and process messages, it needs to know the valid
message formats that it can process else it would have to reject them.
All recognized message formats need to be defined.
The key is the Message Format and inside it contains a descriptive text of the
message format.
Any message which has a format other than the ones listed as part of this table will
be rejected by TPH
Any incoming message will have the message format as part of the message.
36
while processing messages from a specific queue and hence the key is the queue
name.
Various types of messages would come into TPH. For instance,
• It can be message to process salaries for all employees is received. Such a message
would be a bulk message as there would be multiple credits and one debit.
• It can be a single SWIFT message (For instance 101)
• It can be a single credit message from Payment Router channel
• It can be a BACS local clearing file
How will TPH know
Whether it is a single or a bulk message?
Which channel these types of messages can originate from?
Whether an acknowledgement needs to be sent once the message has been
accepted or a negative acknowledgement needs to be sent of the message is
incorrect (ACK/NACK)?
If ACK/NACK needs to be sent, where should such return messages be placed?
Should any API be triggered to validate/interpret the message?
Should technical duplicates be checked for?
All such details are defined in here.
Key to the records here is always a channel from which the message comes in.
36
Define the message types to be used
All valid message types need to be defined in PP.MSGPAYMENTTYPE
Define which message type can come via which channel
While there can be numerous message types and number of channels, certain
message types can be dealt only be certain channels. Hence, message types need to
be linked to channels for ease of processing. This is defined in
PP.MSGPAYMENTTYCHANNEL
37
For instance, the API shown above will distinguish if the incoming message is a CHAPS
or FPS based on the sender’s BIC.
37
A global payment engine receives a number of payments throughout the day and has
to process all of them as quickly and efficiently as possible. Hence, once a message is
accepted, before any financial processing can commence on the message, it is vital to
check if there are characteristics in the Payment Message that will influence payment
processing.
This weight refers to an overall classification of the payment on a very broad level.
Weight can be defined as a categorisation of a payment instruction with a purpose to
influence flavour of processing.
The more complex the payment attributes are and more combinations they can have,
the higher the weight they need to posses..
38
Can there be specific weights based on attributes of a message?
Yes, this is possible.
Most payments can be grouped under one of the 3 high level weights. But there
could be expectation for special treatment for smaller sets of payments which is not
covered directly by the high level weights.
Specific weight can be understood as the categorisation through which customised
treatment of those payments can be provided. However, all specific weights have to
relate to a high level weight. Specific weight is specialisation of high level weight.
In order to understand how weights are assigned to messages, let’s use the table
shown above.
Rank dictates the which record will be used if multiple records are chosen (Rank 1 will
have the highest priority)
The ‘*’ in the above table means that the value in that place can be wild-carded. This
can be used when a bank may want to assign a particular weight to all the messages
from a particular Originating Source or all the sources for a particular Message Type.
39
No. Every message needs to have a weight defined. Else, system will throw an error
and processing will stop.
39
Flexibility to make a decision whether a specific processing within the payment
engine needs to be invoked for a payment leading to reduction in processing time
Some processing may not be applicable to certain payments. This distinction can be
done based on weight. Table to be used to configure this is
PPL.PROGRAMSPERWEIGHT.
A specific weight code “CLM” is created for CLAIM functionality which is an internal
process for creation of MT191 message by creating new transaction as part of
payment transaction demands to send charge claim. This type of transaction need
not to process all payment programs hence irrelevant programs are skipped using this
functionality.
40
For a payment to be processed, number of internal activities need to happen on the
payment. The activities are listed and each of them are impact payment processing in
a specific way. This is explained in detail as we proceed.
41
Codewords are added as part of the payment message to convey payment processing
information for financial institutions. ‘SWIFT codewords’ are codes wherein SWIFT has
defined and detailed the meaning of each codeword along with the method to read
and interpret these codes. This is to ensure that various financial institutions process
these codes in a consistent manner.
Banks / financial institutions can also make special agreements and come up with
codewords to trigger bilateral agreements amongst themselves, the presence of
these codewords can trigger special payment processing as agreed between the
banks. These are termed as ‘Bilaterally agreed codewords’.
Note!
The use of Codewords to identify specific processing requirements is not limited to
SWIFT messages. Any other message sources may also supply codewords as part of
the payment request.
42
Inbound codewords are codewords which are received in the payment instruction as
part of the SWIFT fields. Below are the tags where codewords may be present in a
SWIFT message.
13C, 23E, 72, 77B and 56/57/58 for //RT
These are read by the Mapper and stored in a payment object. These codewords are
then input for Inbound Codeword processing module.The input / inbound codewords
are searched in the Inbound Codeword table to see if a match for that particular
codeword is available.
If a match is not found, then for Inbound Codeword Processing , TPH ignores the
codeword in the payment object and does not act on it. i.e. the codeword will not be
considered for payment processing
Configure the output results based on the received inbound codewords here. The
output results impact the overall payment processing. If a payment has more than
one inbound code word, for each code word this table is looked up iteratively. At last,
only one inbound code word is selected for product determination based on
CodeWordPriorityForPD.
Once a record is selected, applicable output results are considered for payment
processing. For example in the above screenshot, the codeword will impact the
message priority as specified under ‘Adjusted Message Priority’. The code word does
not influence Non STP indicator and conditional fees. The code word is also not
considered for Outbound codeword processing. Here there is no mentioning about
‘Processing sequence number’ which ranges from number 1 to 5.
42
Model Bank > PAYMENTS > TPH > Parameters >Inbound Codewords> Processing
Sequence
Processing Sequence is a set of pre-defined steps (methods) that influences the
payment processing by setting various flags and indicators that are subsequently read
and taken into consideration for payment processing by the impacted modules within
the payment engine.
If there are multiple code words, Processing Sequences (If any) for all of them are
executed and only then is the final code word arrived at.
Detail
Codewords can stimulate special processing rules for each payment, these are then
defined as Processing Sequence. Processing Sequence detail out the set of pre-
defined processing steps that result in certain flags and indictors being set in the
payment object. These flags/ indicators are subsequently read by the impacted
payment engine module which in turn influences the processing of the payment
within the payment engine.
Processing Sequence related details are stored in a separate database table.
Processing sequence will always be referred to with a number.
43
44
Service Level Agreement (SLA) is an agreement that a bank provides to its
correspondent banks defining the various levels of service in payments processing
that it would offer. The SLA will influence the process of payment in payment engine
such as applying special bank conditions and Routing and settling the payment in a
different manner.
When correspondent bank wishes to use an agreement for a particular message, then
in the payment message, special code words agreed for this purpose should be
mentioned. The SLA determination component will determine the SLA for the
payment based on the SLA configuration with respect to the code words specified in
the message.
The output of the SLA determination can be used as a key for further payment
processing (like Bank conditions and Routing and settlement)
Overview
The Service level agreement with the counterparty banks applies a special behaviour
of a message in the payment engine. The agreement can be a general agreement
with the bank or specific level agreements which are linked to specific bi-laterally
agreed code words. The code words can be a standard swift code words or bilaterally
agreed code words
SLA generation
45
The prime responsibility of SLA determination is to generate a SLA ID for a payment
order that results in triggering different processing conditions for a payment. SLA
Determination will be done only once for a payment in its life cycle. The determined
SLA will be used mainly to determine:
The debit and credit bank conditions.
Bank charges for the payment.
Code words
The sending bank, wishing to use a specific level agreement for a particular message,
will specify the agreed code words in the payment message. SLA Determination
component will determine the SLA reference for the payment from the code word
provided in the message. When there is no code word in the message, the generic
SLA agreed with the counterparty bank if exist will be used or the default SLA will be
used for the payment. SLA configurations are specific to a company.
Note!
The SLA determination is always based on the original code words supplied with the
payment order message along with the message priority for a company. It is never
based on the result of the code word determination.
A correspondent bank may supply multiple code words in a message, but only a
single SLA can be applied to a single payment. The SLA configuration will allow to
define priority of possible SLA’s to be specified in such cases. Single or a collection of
code words will lead to one SLA based on the priority of SLAs.
Weight
SLA determination may not be required for all type of messages. This can be
controlled in this component by the weight assigned for the payment by the Assign
Weight component. In this case SLA for the payment will not be populated.
For most payments the decision to continue SLA determination or not can be decided
based on the Overall weight of the payment. However, in certain cases overall weight
might not be the right call to make the decision. So the combinations of Overall
weight and Specific Weight will be used to continue the SLA determination process
Model Bank > PAYMENTS > TPH > Parameters > SLA per CodeWord > SLA per
CodeWord List
45
For a payment to be processed, number of internal activities need to happen on the
payment. The activities are listed and each of them are impact payment processing in
a specific way. This is explained in detail as we proceed.
46
TPS has now been Integrated with external Automated Repair Engine - STeP using
Integration Framework
STP Payments in TPS can now be sent to Auto Repair Engine – STeP for Enrichments
based on Rule Engine built inside STeP. This would facilitate automatic repair of STP
Payments with Erroneous Inputs reducing manual Intervention and thereby
Increasing the STP Hits
TPS has the ability to send Payment Instruction Details to an external Auto Repair
Engine - STeP for enrichment and then take the enrichments back and continue
processing the Payment Instruction.
When enrichment happens, it should be possible for the User to see the changes
introduced in Audit Trails. The return codes indicating the nature of enrichment
should be visible in an Audit Trail and they should be available for decisions on repair-
fees
Integration of TPS with External Automated Repair Engine STeP will help reduce the %
of manual Interventions for STP Payments
47
48
49
50
51
First Level to enable Automated Repair Functionality in TPS is to have Programs Per
Weight Configured for STP Payments. Depending on the requirement, User can
enable it for Heavy Weight Payments Or Light Weight Payments. Programs Per Weight
Records for both Heavy Weight and Light Weight is delivered for Automated Repair
with Program Skip Indicator as ‘N’ which means Automated Repair Tool is enabled.
The user has to Authorize these records to complete Programs Per Weight Setup. If
Automated Repair Functionality is not required for STP Payments, then set Program
Skip Indicator as ‘Y’. (Please note that Programs Per Weight Records are Company
Specific and this procedure has to be repeated for the Companies that require
Automated Repair Functionality)
52
Purpose
The Debit Authority component is responsible for verifying whether authority can be
granted to payments for which the debit party is in the books of the processing bank.
This is to prevent fraudulent behaviour from third parties as they have to specify the
correct debit party/account in the payment message. By interpreting various payment
characteristics the DA component is able to determine whether authority can be
granted to the transaction.
Overview
Debit Authority is required for a Credit Transfer for which the debit party resides in
the books of the processing bank requires a valid netting agreement. A netting
agreement is a 3-party agreement between the sending bank, the processing bank
and the customer. It states whether another bank is allowed to request a payment
transfer, or send a payment instruction, specifying the debit account of the customer
that is serviced by the processing bank. It is the responsibility of Debit Authority to
validate whether the party requesting a payment transfer, or sending a payment
instruction, has the authority to mention a specific third party as the debit party for
the payment.
53
Netting Agreement
Store the netting agreements which usually state which sender of the payment
instruction has the authority to mention a third party as the debit party for the
payment here. Whenever a message type of a company is not specified under NoDA
list, a lookup is performed on this table for the type of message received from the
specific sending bank. The agreement also holds the exact debit account in the
processing bank for which a debit instruction can be carried out by the sending bank.
NoDA List
Define the list of message types of a company which do not require any authority to
be processed here. If a record is present in this table, the payment will be authorized
straight forward. If not, the transaction is not authorized directly. Rather the
transaction is subjected to further processing such as a look up for valid agreements
between the sending bank and the processing bank to authorize such payments.
54
PURPOSE:
The purpose of Debit Party Determination in TPH is as follows.
• Determine the correct debit account based on the information contained with the
debit parties present in the payment instruction. If the account is already
determined, the process is skipped.
• Pass debit account details to Account and Customer interface for validation.
• Interpret and update the payment file according to the output returned by the
Account and Customer interface.
• Delete debit charge details only on request from STP flow.
OVERVIEW:
Debit Party Determination ensures that the right debit account is assigned in the
payment file. If the debit account is already determined, the determination process
can be skipped and the account can directly be validated with the Account &
Customer database.
This component plays a very important role in the payment flow as the determined
debit account will be used for determining the message characteristics of the
payment (e.g. client agreement with Bank and payment charges) and also for booking
the transaction amount against the debit account in the General Ledger.
55
As the name implies, the next step is to determine the party to be debited.
For instance, when processing a 103, it is imperative to note that the ordering party
has already been debited in the books of the ordering party’s bank. When the 103
reaches us, we need to know whom we need to debit in our books.
A 103 can be sent to us directly from the sender or it can be sent via various parties
as listed below.
While determining the debit party, system will always check if the nearest party to
the receiver is the actual party to be debited. Hence, will check
If a Third party reimbursement institution is present in the message in tag 55A, then,
he is the party to be debited. Search for debit party ends here.
If Receiver’s correspondent is present in the message in tag 54A, then, he is the party
to be debited. Search for debit party ends here.
If Sender’s correspondent is present in the message in tag 53A, then, he is the party
to be debited. Search for debit party ends here.
If the account of the sender is present in the message in tag 53B, then, that is the
account to be debited. Search for debit party ends here.
If none of the above is present, then, sender of the payment (Which will be available
in the header) is the party to be debited.
Whenever a BIC is determined as the debit party (In cases 1,2, 3 and 5), it is assumed
that the determined debit party has either a LORO or a NOSTRO relationship with us.
56
Hence, we extract the appropriate account for the BIC and mark that as that as the
debit account.
In our case, as part of the message, we neither have 55A, nor 54A, nor 53A nor 53B.
Hence, system would extract the sender from the message header and obtain the
LORO/NOSTRO account of the sender
To determine the debit party, no specific configuration is required expect the
definition of the appropriate LORO or NOSTRO accounts (using table
PPL.LORONOSTROACCOUNT)
It is also possible for payments to come in with a forced debit party/account. This is
done during the mapping phase of the payment. In such a case, validation of the
debit account is what is required rather than determining the debit account.
56
Store the accounts of the correspondent banks with which the bank shares a LORO
and NOSTRO relationship here. This table is linked with the BIC table. As the BIC table
is company specific, this table is also company specific. This table is also used in the
credit account determination step.
57
PURPOSE:
Bank Conditions or Correspondent bank conditions, define the way in which a
payment should be processed in the payment engine for a correspondent bank.
Bank conditions of the correspondent bank involved in the payment will influence
mainly Straight through processing of the payment in the payment engine. This will
also allow customizing banks’ charge account, statements and advices.
The Bank conditions component allows the behaviour of the payment engine to
configure at a flexible level where debit or credit party (or both parties) in the
payment is a bank.
In simple terms, the scope of the Bank conditions is to define the conditions for
warehouse, advices, charge account, statement narrative in postings and STP flow.
OVERVIEW:
• Special conditions can be agreed and applied on the payments for specific sending
or receiving banks when payments are received from or sent to them respectively.
• The bank can have a generic conditions and/or Service Level Agreement (SLA)
based conditions with the correspondent banks.
• Bank conditions can be applied at a number of different levels, ranging from bank
(BIC) code to combinations of bank, specific SLA’s and transaction currency.
• If no agreement exists between the banks then default bank conditions will be
applied on the payment.
• In case of customer transfer, bank condition will be applicable for the bank side of
the payment where bank is involved.
58
CompanyID : It is the company code for which the Bank Conditions record is created.Valid value from
PP.COMPANY table .
CorrespondentBIC : This field refers to the BIC corresponding bank (Sender or Receiver).
Currency Code : It refers to the transaction currency of the payment. Valid value from PP. Currency
table OR ‘*’ (‘*’ value means it can match all the currency code).
Start Date Bank Conditions : It is the date from when this record is active.
Credit Special Instruction : It defines the text that will be displayed on the repair screen when the
payment is in repair queue. This text in this field will be displayed when bank conditions is read for the
receiving bank (credit side).
Debit Special Instruction : It defines the text that will be displayed on the repair screen when the
payment is in repair queue. This text in this field will be displayed when bank conditions is read for the
sending bank (Debit side).This field can only be filled when BTRNonSTPIndicator is set to ‘N’
LanguageID : This indicates the language the corresponding bank would like to have the statement
narratives (including charge description) in SWIFT advice and account statements. If this field is empty,
then the language defined at company level will be used. Valid value from PP.LANGUAGE table or
blank.
CreditStmtFormatName : This field indicates the preferred statement format to use when the
corresponding bank’s account is credited. Statement format defines a set of statement narratives that
will be used when an account is debited/credited in the ledger. If this field is empty, then the
statement format defined at posting line level or company level (if not defined in posting scheme) will
be used. Valid value from PP.STATEMENT.FORMAT OR blank.
DebitStmtFormatName : This field indicates the preferred statement format to use when the
corresponding bank’s account is debited. Statement format defines a set of statement narratives that
will be used when an account is debited/credited in the ledger.If this field is empty, then the
statement format defined at posting scheme or company level (if not defined in posting scheme) will
be used. Valid value from PP.STATEMENT.FORMAT OR blank.
59
FXSpread : This field defines the preferential rate to be used while determining the spread for a
currency exchange. The rate mentioned is a percentage of the standard spread.
EndDateBankConditions :It is the date till when this record is active.
ChargeAccountIndicator : This field indicates that Bank requires separate charge account or charge
accounts for different transaction currency. This field is only required for GUI validation. It is not stored
in database.Y or N
TransactionCurrency : This field indicates the currency that will be the transaction currency for the
payment. Valid entry in PP. Currency table or ‘*’
ChargeAccountCompanyID : This field indicates the company ID of the Charge Account Number
defined.
This should be a valid record in the PP.COMPANY. Input to this field can only be provided if Separate
charge Account Indicator is set to Yes
ChargeAccountNumber : This field indicates the account number from which the charges has to be
collected.
ChargeAccountCurrency : This field indicates the currency of the Charge Account Number defined.
This should be a valid currency code. If left blank, this will be wild carded.
AdviceIndicator : This field provides details on the applicability of AdviceIndicator Y or N
SequenceNumber : This field is system generated
DebitCreditAdvice : This field indicates whether a debit or credit or Charge Advice confirmation needs
to be generated.
D(debit)
C(credit)
CH(Charge Advice)
Input to this field can only be provided, if Advice Indicator is set to Yes
CTRBTRIndicator : This field defines the transfer type of the payment.
Transfer type can be customer or bank transfer.
C - Customer Transfer
B - Bank Transfer
InitiatedByOthers : This field indicates if Advices are generated by Bank Conditions or can be initiated
by others.
Y (Yes)
N (No)
B (Both)
AmountCurreny : This field indicates the currency that is associated with the amount
FromAmount :This field along with ToAmount field indicates the amount range of the transaction for
the product.
This field indicates the start amount of the range.
Number must be defined.
Default : 0
ToAmount :This field along with FromAmount field indicates the amount range of the transaction for
the product.
This field indicates the end amount of the range.
Range is defined in the transaction currency
Number must be defined.
Default : 999999999999999.00
DeliveryMethod : This field indicates through which channel advice can be sent to customer
SWIFT / POST/ EMAIL / PHONE / FAX / SMS
59
Telephonenumber : This field holds the phone number, used for confirmations
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is 'Phone'
EmailID : This field holds Email address to send advices to customer through Email
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘EMAIL’
BICAddress : This field holds the valid BIC
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘SWIFT’
SMSNumber : This field holds Phone number to send advices to customer as SMS
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘SMS’
FaxNumber : This field holds Fax Machine Number to send advices to customer through FAX.
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘FAX’
PostName : This field holds the street address2 and advices generated will be sent to through Postal
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘POST’
PostAddress1 : This field holds the street address3 and advices generated will be sent to through
Postal
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘POST’
PostAddress2 : This field holds the street address4 and advices generated will be sent to through
Postal
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘POST’
PostAddress3 : This field holds the street address4 and advices generated will be sent to through
Postal
Input to this field can only be provided, if Advice Indicator is 'Yes' and Delivery Method is ‘POST’
Attention : Indicates useful information relating to the delivery methods and the person whom to
contact.
E.g. In case of a Phone confirmation, the attribute can hold information on the name of contact and
the preferred contact time and/or the language.
AllowSpecialCharacterSet : This field indicates if special characters are allowed Y or N
CodePageSet : This field specifies against which code page the special characters have to be validated.
The value inputted by the user in this field will be validated against the ASCII.VAL.TABLE
Possible Values:
STANDARD.SW for LATIN or STANDARD.GR for GREEK
59
60
How does Dates impact Payment Warehousing?
Payment Warehousing is performed when the payment has a future Requested Due
Date or Requested Credit Value Date.
The difference between these two dates can be explained with the help of an
example as below.
61
Payment Warehousing is usually called for payment which consists future due date.
As explained earlier, Payments with a Future Requested Due Date will be
warehoused immediately on understanding that customer has requested a future
execution date. i.e. Customer requests for payments with future due date are always
warehoused.
And, Payments with a Future Requested Credit Value Date will be processed to an
extent, so that R&S is able to figure the route, which is then taken into consideration
while defining the Due Date / Credit Value Date.
In both the cases, such Payments are parked with Payment Warehouse.
Also, these payments will undergo complete STP re-processing as and when they are
released from the warehouse.
Why does a Payment released from Payment Warehouse needs to
undergo STP re-processing?
The reason being that, during the time the payment was in warehouse, certain
payment processing information could have undergone change for e.g. the static data
(BIC table), client condition, R&S agreements etc.
Thus, it is important to process these payments again.
61
Bank Condition decides whether to warehouse payments or not
If Bank condition says NO Warehousing, then payment will never fall in warehouse
Release of Payment from Warehouse
On the exact Release Date (i.e. Processing date / Send date), payments are released
back to the respective payment engine flows / components.
Release of Payment to STP Flow
When the Processing Date <= Current Business Date of the processing company, At
SOD the payment is released from warehouse back to the STP flow.
Release of Payment to Payment Flow / Output Generation
When the Send Date = Current Business Date of the processing company, At SOD the
payment is released from warehouse back to Payment flow.
61
When a payment gets processed by the payment engine, after the debit party is
identified, the payment date would be checked to see if it is future dated or not.
If it is future dated and the sender bank has opted to warehouse a future dated
payment, system will mark the payment as ‘To be warehoused’.
Payment Warehousing - Releasing payments from warehouse on the due date for
further payment processing.
Sending warehoused payments to the Filtering Module to perform daily checks
Output Warehousing - Releasing payment to the Clearing systems in order to honour
the Credit Value Date (CVD)
Cancellation / Amendment of warehoused
62
Purpose
Balance Check, as the name suggests, is considered as a vital component as it is
imperative for the Bank to ensure that the Debit account has enough funds for the
payment to be processed.
If the required balance is available for the transaction then the DDA (Demand Deposit
Account) carries out a Reservation on the Debit account.
This Reservation implies that the Transaction amount is earmarked for the payment.
Balance Check
The Balance Check Component within the payment engine covers the functionality
for two major facets
Funds Authorization
Funds Authorization is the process of checking whether the Debit Account has
enough funds for the payment to be processed and if present then Reserving
(Earmarking) the funds for the same.
Cancel Reservation
Cancel Reservation is the process of removing a reservation that is already
applied on an account. This is required when a payment is Cancelled and it
has a valid reservation applied on the debit account. Or in cases wherein the
debit account is changed and the old debit account had a reservation applied
on it.
63
Note!
The check for Debit Authority and Debit Party determination is completed before the
call to the Balance Check Component. Balance Check Component will use the debit
account determined by Debit Party Determination for the Reservation.
63
Funds Authorization – Funds Authorization is the process of checking whether the
Debit Account has enough funds for the payment to be processed and if present then
Reserving (Earmarking) the funds for the same.
The Balances and Limits (if applicable) for an Account are stored in the DDA (T24) and
therefore a check on whether the Debit account has enough funds for the payment to
be processed is carried out by the DDA. If the required balance is available for the
transaction then the DDA carries out a Reservation on the Debit account. This
Reservation implies that the Transaction amount is Earmarked for the payment. Any
payment thereafter processed for this account would consider the earmarked
amount while computing the available balances and limits.
The DDA also provides a provision with which a Manual Reservation can be carried
out. This can be carried out in two scenarios –
When Funds Authorization request that was sent by the payment engine was rejected
by the DDA and the CAO officer carries out a Manual Reservation for the payment.
CAO officer can choose to carry out a Manual Reservation even before the Funds
Authorization request was sent to the payment engine.
The DDA provides a Manual Reservation Key for such reservations. This Manual
64
Reservation key as provided by the DDA can be entered on a payment through an OE
/ Repair screen of the payment engine. (This manual reservation key is called as Pre-
Authorization key within the payment engine.) If provided through the OE / Repair
screen then the DDA is only expected to validate this pre-authorization key with the
Manual Reservation stored within its database. The check on limits / balances for the
account were carried out at the time of making a manual reservation.
The payment engine will generate and send a Cancel Reservation request to the DDA.
The DDA carries out the removal of the reservation and thereafter the payment
engine should process the response from the DDA for that request.
64
Field highlighted in the above TPH payment created the Locked amount in
AC.LOCKED.EVENTS. The Record Id for AC.LOCKED.EVENTS is Balance Reservation
Number of the payment.
65
TPH, when processing payments, has the capability to reserve the transaction
amount on the debit account and then execute the various rules based payments
processing. This capability to reserve the balance in an account can be controlled
based on configuration and can be switched off too. For instance, it would not be
required to perform balance check and reserve balance on a Nostro account if it is
the debit account.
Balance Reservation is currently done for the Transaction Amount converted to the
Debit Account Currency using mid-rate. If the debit account and the transaction
amount are in different currencies, a mid rate is applied and balance is reserved.
Balance is reserved by sending a request to the DDA. DDA then validates the account
(checks for restrictions), checks for balance availability and if available, reserves the
balances and returns the reservation key. TPH then processes the payment and after
posting the accounting entries for the account, unwinds the reservation keys.
66
Turn on or turn off balance check using the table PP.BALANCECHECKREQUIRED. Do
not turn on or off using PP.PROGRAMSPERWEIGHT.
Fields highlighted in blue influence balance check. Based on values in these fields,
balance check can be turned on/off etc.
When processing local clearing payments, based on the Clearing Nature Code
variations in balance check could be required.
When processing a settlement transaction, variation could be required in performing
balance check. Some bank may not wish to perform balance check when processing
settlement transactions.
All fields that influence balance check are available in POR.TRANSACTION.
Balance Check Required Flag – Use this field to turn on or turn off balance check.
67
Some banks would want to check for balance only during authorisation. In this case,
set this field to ‘Authorise’
Usually this field is set to ‘STP’ when the system is implemented in a stand alone
mode. In a stand alone implementation, during submit or authorise, an asynchronous
call to an external DDA will not be possible and hence this option is made available.
Note : For standalone, this has to be set to ‘STP’
Hold Balance For Future Processing Date – Assume that balance has been reserved
for a payment. System then computes that the payment needs to be processed on a
future date (Future processing date). In this case, payment would be sent to the
‘Future due date warehouse’. When parking in the future due date warehouse,
whether the balance that has been reserved should be retained or should be
unreserved is controlled using this field.
Approval code indicates when payments are parked in the insufficient funds queue
with a specific business state, such requests can be approved by a Credit Risk Officer
or balance can be reserved by Recycler.
If the payment received with approval code, than Action field indicates whether the
funds to be retain or cancel.
67
FX threshold is defined in PP.COMPANYPROPERTIES
FX premium or discount is defined in PP.COMPANYPROPERTIES.
68
If balance check has been configured to be done along with charges, then, this
configuration allows us to define the following
1. If a separate charge account is used for charges, then, should balance check be
done on the charge account
2. Note – If separate charge account is not configured and balance check is to be
done with charges, then, this field will have no significance. Debit account will be
checked to see if there is sufficient balance for transaction amount plus charges.
69
70
Manual Auth Required List
Define the Manual Auth Reqd Flag based on the characteristics of the payment such
as Business Line, Originating Workflow, Originating Source, Message Priority, Banking
Priority, Transaction Amount Limit, Incoming Message Type and Clearing Nature Code
here.
The Manual Authorization Required flag is not checked for Funds Authorization
requests with a Pre-Authorization key. Such requests are never sent for manual
approval within the DDA.
If this flag is set to ‘Y’ then a Manual Authorization can be requested within the DDA
if the debit account does not have the required balance for the reservation to go
through.
If this flag is set to ‘N’ then a Manual Authorization cannot be requested even if the
debit account does not have the required balance for the reservation to go through.
Such a payment would get a ‘Reject’ response
The entries in this table are searched for a match in the order of its Ranking. The
Manual Auth Reqd Flag is retrieved from the first entry that matches the payment
characteristics. If no entry meets the match criteria then a default value of ‘Y’ is
considered.
71
Reject Response Action
Defines the Reject Response Action Flag based on the characteristics of the payment
such as Business Line, Originating Workflow, Originating Source, Message Priority,
Banking Priority, Transaction Amount Limit, Incoming Message Type and Clearing
Nature Code here.
The Reject Response Action flag is not checked for the responses received against a
Funds Authorization requests with a Pre-Authorization key.
If this flag is set to ‘R’ then the payment for which a Funds Authorization response of
‘Rejected’ is received is to be sent to Repair.
If this flag is set to ‘C’ then the payment for which a Funds Authorization response of
‘Rejected’ is received is to be sent for Cancellation.
The entries in this table are searched for a match in the order of its Ranking. The
Reject Response Action flag is retrieved from the first entry that matches the
payment characteristics. If no entry meets the match criteria then a default value of
‘R’ is considered.
Note that the fields in this table are the same as the entries for the Manual
Authorization Required table. Defining a new table for Reject Response action (and
not using the same as Manual Authorization Required) gives the user an ease in
operationally maintaining the tables
72
When a payments lands in the queue for manual approval, the officer can approve
the overdraft or can choose to reject/cancel the payment.
73
Pre-authorisation key can only be used for OE and Repair payments as it needs the
key to be keyed-in. It cannot be supplied as part of a message. When the account is
insufficient funds the system throws override before you commit the record.
74
When we try to process the payment with transaction amount greater than pre-
authorization key amount than system will throw an error stating “Pre-Authorization
Key is insufficient. Account could be overdrawn in case balance is insufficient.”
75
Overview
When a payment is processed, it is imperative for the system to know the direction of
the payment. This would influence further processing of the payment.
In general, 4 different types of direction can be identified for payments not
originating from Order Entry and Repair:
Incoming: the Originating Party of the payment does not reside in the
processing bank’s ledger, the Beneficiary Party of the payment resides in the
processing bank’s ledger
Outgoing: the Originating Party of the payment resides in the processing
bank’s ledger, the Beneficiary Party of the payment does not reside in the
processing bank’s ledger
Redirect: neither the Originating Party nor the Beneficiary Party of the
payment resides in the processing bank’s ledger
Book: both the Originating Party and the Beneficiary Party of the payment
reside in the processing bank’s ledger
For instance, if it is an outgoing or a redirect payment, we need to find out how best
to reach the final beneficiary (Account with institution).
The direction of a payment is based on the following criteria:
Originating source of the payment instruction
Incoming message type of the payment instruction
Debit account type
Presence of certain code words
76
Whether the ultimate beneficiary of the payment resides in the processing
bank’s ledger (On us / Off us)
The nature of the transfer (Bank or Customer transfer) can also influence the
payment processing. For example, conditions differ between banks and customers
and so will the charges and floats. Therefore, it is important to distinguish between
these two types of transfers.
Whether the payment is a bank or client transfer is based on the following criteria:
Originating source of the payment instruction
Incoming message type of the payment instruction
The direction (I, O, R, and B) and transfer type (B, C) must be determined for every
payment otherwise the payment cannot be properly processed.
76
There are 4 types of possible directions
Incoming
Outgoing
Redirect
Book
Direction component not only determines Direction but also Transfer type of a
payment.
There are two types of Transfer type
Bank transfer
Customer Transfer
If both the ultimate parties are Bank then it is Bank transfer.
If either one of the parties are Customer ( or can be both) then it is Customer
Transfer.
77
Each payment can only be one of the following two types:
Customer transfer: either the originating party or the beneficiary party is a
customer (or both)
Bank transfer: both the originating party as well as the beneficiary party is a
bank
It is vital that a payment can only be a customer transfer or bank transfer, it can never
be both.
The table above shows the Transfer Type indicator for all payments that are relevant
for the Payment Engine.
Note!
* The transfer type for Order Entry/Repair payments does not have to be determined
here as the operator will already have set the Transfer Type indicator via the input
screen or direction is already determined before the payment is put to the Repair
queue.
Note** : BATCH and clearing payments will be covered later on in the course and
these will be explained in detail then. Information provided for high level overview.
78
79
80