Professional Documents
Culture Documents
Project Guides:
Shri. G. Raghuraj Garu Shri. Sudhir Jha Garu
General Manager Manager
IDRBT, Hyderabad IFTAS, Hyderabad
Project Trainees:
Pranavi Jalapati Satya Naraparaju
GNITS, Hyderabad GNITS, Hyderabad
Page |2
Certificate
This is to certify that Ms. Pranavi Jalapati & Ms. Satya Naraparaju,
pursuing B.Tech course at G. Narayanamma Institute of Technology and
Science (GNITS), in the Department of Computer Science (CSE) have
undertaken a project as an intern at the Institute for Development and
Research in Banking Technology (IDRBT), Hyderabad from May 25 to July 25,
2016.
They were assigned the project “API (Application Program Interface) for
File Transfer between CBS and SFMS” under the guidance of Mr. G. Raghuraj.
During the course of the project they have designed and developed an API for
file transfer between CBS and SFMS. They have understood the concept and
structured a workable model which can be deployed in production with local
configuration adjustments.
We place on record their application to the project and keen sense of
enquiry and focus.
G. Raghuraj
(Project Guide)
General Manager
IDRBT, Hyderabad.
Page |3
ACKNOWLEDGEMENT
Table of Contents
Abstract ................................................................................................................................................... 5
Objectives ............................................................................................................................................... 5
Introduction ............................................................................................................................................. 5
Definitions, acronyms and abbreviations ................................................................................................ 6
SFMS and INFINET ............................................................................................................................... 7
SFMS architecture .............................................................................................................................. 7
Bank API Server ............................................................................................................................. 8
Bank API Client .............................................................................................................................. 8
Messages flow..................................................................................................................................... 8
Outgoing message flow................................................................................................................... 8
Incoming Message Flow ................................................................................................................. 9
Payment Systems .................................................................................................................................. 10
Key Features: ................................................................................................................................ 10
NEFT .................................................................................................................................................... 10
Types of messages in NEFT system: ................................................................................................ 11
Sender Functionality: ........................................................................................................................ 11
Receiver Functionality: ..................................................................................................................... 11
RTGS .................................................................................................................................................... 12
Overview of the Project Progress ......................................................................................................... 14
Process flow of the existing system: ..................................................................................................... 14
Process flow of the designed system: ................................................................................................... 15
Code ...................................................................................................................................................... 20
ClientSend: ........................................................................................................................................ 20
ClientReceive: ................................................................................................................................... 20
Tools and software’s used: ................................................................................................................... 21
Conclusion ............................................................................................................................................ 22
Page |5
Abstract
Banking technology has emerged into an essential medium having considerably made
inroads into most of banking activities but the journey of reaching all citizens is not yet
complete. It is estimated that a majority of the 1.3 billion Indians today, have no access to
financial services, and have to resort to cash payments for all transactions. There have been
significant developments in the way trading and business are conducted especially in terms of
e-commerce through digitisation. Most trade associated with currency has to pass through an
online transaction at some stage of the processing cycle. Though, relatively convenient,
efficient and fast, online transactions are no exceptions in avoiding impediments. In the last
decade, India has seen a shift from traditional payment methods, i.e., cash/paper-based
payments to modern electronic payment systems. According to the current statistics, 3% of
payment transactions for public and private sector banks are paper based. Some of the main
issues associated with such systems are ensuring security and convenient access to better
automation.
This project focuses on the later aspect by providing an API (Application Programme
Interface) which enables bridging the gap between a banks internal CBS platform and the
external messaging interface. Every interbank transaction initiated at the source level (CBS)
is a message that carries the required information to the intermediary destination (Hub). The
project aims to develop an API which generates a corresponding file for the message at the
bank CBS and pushes it onto the SFMS server. The API ensures secure file transfer by
leveraging network protocols and files encryption along the transfer path and has added
features like transmitting multiple files.
Objectives
The objectives of this project are as follows:
Generation of file containing the messages received from the CBS of banks.
To build an interface that generates, processes and transfers NEFT transaction
messages and uploads the files on to the SFMS ‘member interface’.
Introduction
Trade is one of the primary revolutions in the progress of the human race. It has
evolved all the way from barter system in which goods are traded for goods to the modern
trade where goods are traded for money. With the increase in frequency and volume of trade,
efficient and automated processes are continuously innovated and established. With the
advent of electronics, it has lead to the development of banking technology.
The RBI (Reserve Bank of India) is the central bank of India which frames the
monitory policy for the country. Institute for Development and Research in Banking
Technology (IDRBT) an autonomous institution for research was established by the RBI in
1996. The IDRBT developed and implemented the SFMS.
Page |6
The Structured Financial Messaging System (SFMS) which runs on the closed user
group network, INFINET is one of the major contributions of the IDRBT to the Indian
Banking sector as a secure financial messaging platform.
In the recent past, the RBI has taken multiple steps to promote e-payment systems such as:
Framing the Payment & Settlement Systems Act, 2007 to provide for the regulation
and supervision of payment systems in India
Providing robust RTGS/NEFT platform, establishing National Payments Corporation
of India (NPCI) to act as an umbrella institution for all the retail payment systems
Regulation and promotion of acceptance channels including ATMs, POS and payment
gateway policy
Issuance guidelines and security measures for all card transactions.
Page |7
SFMS architecture
SFMS is customized and deployed in a multi-tier architecture consisting of a central
HUB, Bank Gateways and the Branch Front-ends. The branch front-ends have been
consumed after all banks implemented centralised accounting through their core banking
Page |8
The security structures embedded in the SFMS enables the RBI and the banks to
leverage this messaging platform for funds or trade-based applications such as National
Electronic Funds Transfer (NEFT), Real Time Gross Settlement System (RTGS), Delivery
Versus Payments (DVP), the now defunct Centralized Funds Management System (CFMS),
letters of credit and bank guaranty.
Bank API Server validates incoming messages (IFN N06 in the case of NEFT
outward messages) and acknowledges the receipt to the Bank API Client.
Bank API server validates user signature with Block 4 content of the SFMS message.
After successful validation, the message is processed.
In case the validation fails, transaction is aborted and an error message is displayed.
Bank API Server sends set of messages to Bank API client in case the client requests
for a message.
Messages flow
The message flow from SFMS Bank API server to external applications is as follows:
External Application invokes SFMS Bank API Server with message as a string or a
file passed as an argument. At a time, only one message is allowed from the Bank API
client to the Bank API server.
SFMS Bank API Server process running at SFMS Online server validates message
and populates the data into SFMS Online Server on successful validation and also
sends corresponding response message.
During the validation of the message, system verifies for the User Signature (UMAC).
If a message is not signed, then that message will be kept in “PENDING
AUTHORIZATION” state. The user needs to authorize the message at SFMS online /
server manually (using SFMS Application).
If the message is signed, on successful verification of UMAC the message will be
kept in “TO BE SENT” state in SFMS. If the verification fails, SFMS API returns the
error code to the external application.
Payment Systems
Payments Systems witnessed frequent changes, post 1991, due to the market
dynamics and increasing consumer demands. The reliability on payment systems
infrastructure is based on the four vital components, including, safety, security, soundness
and efficiency. Furthermore, RBI established IDRBT’s Closed User Group Network
(INFINET) which provides a communication channel to participating member banks and
financial institutions a stringently managed system to enable high value financial message
transmission.
Key Features:
3-tier architecture which can be extended to n-tier with Central Hub, Bank level and
Branch Level modules connected with intra and inter-bank financial messaging.
Establishment of powerful as well as user configurable payments infrastructure.
Template builder for creation of new message types and modification of
existing message types.
Inter and Intra-bank Secure file transfer.
Automated and centralized proliferation of changes to message versions.
Centralized message syntax and rule engine.
Centralized addition of new banks and branches and management directory services.
Interfacing with other payment structure components such as settlement systems of
RTGS, NEFT, etc.
Store and forward principle at each module with complete traceability of messages.
Multiple network connectivity options-, MPLS, leased line, VSAT and ISDN.
End-to-end PKI based security thereby encompassing confidentiality.
NEFT
Nation Electronic Fund Transfer (NEFT) facilitates individuals, firms and corporate
to electronically transfer funds especially retail remittances. It is available 24x7x365 for a
retail customer without any limit of amount. It is a cost and time effective way to transfer
funds without at geographical restrictions across the country. The NEFT rides on the SFMS
messaging platform. Being a financial transaction system, the format of the message which
holds the details required, has a mandated structure.
IFN 298N08 Nil Transaction or Nil Rejection Transaction Message from RBI to
destination banks (298N08 Message).
Sender Functionality:
This functionality constructs the messages meant for Core Banking Interface based on
the Receiver bank IFSC Code and Application Identifier in a pre-defined BlockA and Block4
which are part of the message format. The messages are stored in the corresponding Queue of
MQ connecting the CBS.
Receiver Functionality:
This functionality continuously polls on the MQ queue connected to the CBS and gets
the available messages. It also verifies and validates the messages and updates the same in the
SFMS database. After verification and validation of the messages, they are forwarded to the
next processing stage or if the validation fails it is returned with the reason for failure. The
return messages are sent in a pre-defined message format to the corresponding CBS.
The flow of N06 message in a typical NEFT transaction is as follows:
P a g e | 12
Step1: Each settlement participating bank creates 298N06 Message in the CBS and
sends it to the service centre.
Step2: At service Centre, all 298N06 Messages from the branches are consolidated
and converted to bank-level 298N06 Messages which contain a maximum of 10
NEFT transactions in one 298N06 Message. This Message is sent to RBI-SFMS-MI-
NEFT module through the IDRBT Hub.
Step3: Once Message reaches at RBI-SFMS-MI-NEFT centre, it gets net settled
according to the settlement batch-time (8.00 AM to 7.00 PM, twelve settlements in
all). The net settlement is forwarded to the RBI’s CBS (e-Kuber) maintained by the
Deposit Accounts Department for accounting purposes.
Step4: After accounting in the RBI’s books a confirmation Message is sent to RBI-
SFMS-MI-NEFT system.
Step5: On receiving the message, RBI-SFMS-MI-NEFT system sends 298N02
Messages to destination bank’s service centres which further passes on the message
with details of the beneficiary accounts to the bank’s CBS for credit to the respective
accounts.
Step6: 298N02 Message is consolidated and grouped branch-wise at the destination
bank service centre and sent to the respective branches.
Step7: At every batch-end and day end, every bank service centre is sent a 298N04
Message which consists of all details about the hourly settlements of the day. The
receiving banks process the remittance messages and after credit to the beneficiaries'
accounts the net position is tallied with the CBS balances.
RTGS
In the area of wholesale and Inter Bank payments the legacy system suffered from a
lack of scalability and features needed for the current banking and treasury operations. In this
context, RBI decided to implement a new RTGS system that would be scalable, interoperable
with other National Banking Systems and across the globe. Real-time gross settlement
systems (RTGS) are specialized funds transfer system in which the transfer of money takes
place from one bank to another on a “real time” and “gross” basis. In other words, payment
transaction is not subjected to any waiting period nor the amount of the transaction is netted
with any other amount.
The transaction is settled on one to one basis without bundling or netting with any
other transaction and once they are processed, the payments are irrevocable. Hence, this
payment system is generally used for high-value transactions that require immediate clearing.
Under normal circumstances the beneficiary branches are expected to receive the funds in
real time as soon as funds are transferred by the remitting bank and settlement process is
completed in the Reserve Bank of India. The beneficiary bank has to credit the beneficiary's
account immediately on receiving the funds transfer message. There are penalties for delayed
credit or delayed return.
P a g e | 13
NEFT operates on a Deferred Net Settlement (DNS) basis which settles transactions
in batches. In DNS, the settlement takes place with all transactions received till the particular
cut-off time. These transactions are netted (payable and receivables) in NEFT whereas in
RTGS the transactions are settled individually. Moreover, in DNS any transaction initiated
after a designated settlement time will be kept on hold till the next designated settlement time
Contrary to this, in the RTGS, transactions are processed continuously throughout the RTGS
business hours. RBI decided to implement ISO-20022 standard messages and use the
dependable SFMS platform provided by IDRBT as the messaging backbone of the new
RTGS.
Once the connection is established, the client object with two primary functionalities
is called using the BankAPIClient object. The functionalities of a client object are
‘Send’ and ‘Receive’.
P a g e | 15
The send function initiates a message transfer at the Client-side. The server accepts
messages only if they are in the file (i.e. .txt) format.
To initiate the transaction at the Client-side, the command given must be in a specific
structure maintaining the package hierarchies, the source location (of the message)
and the corresponding password for the AppId of the initiated transaction.
The receive function initiates a message transfer at the Server-side. The client can
accept messages either in the file format or as a string.
If the transfer is aborted due to any failure, the server acknowledges with a NAK
(negative acknowledgment).
If the access is authenticated, the user can choose between Send and Receive
functions which create the ClientSend and ClientReceive objects respectively.
acknowledged after which the port is closed and connection is terminated. The
transaction is logged using SQL database.
The login details are logged in a log file located at C:\FileTransfer\Login.log.
Also the transactions are logged in MySql database and a text file located at
C:\FileTransfer\File_Log.txt. This makes the API portable and also compatible with
systems not using MySql database.
P a g e | 19
Code
ClientSend:
ClientSend() constructor initializes the GUI for transferring the files. In general, to detect when the
user clicks an onscreen button (or does the keyboard equivalent), a program must have an object
that implements the Action Listener interface.
ClientReceive:
ClientReceive() initializes the GUI for receiving the files. In general, to detect when the user clicks an
onscreen button (or does the keyboard equivalent), a program must have an object that implements
the Action Listener interface.
P a g e | 21
Conclusion
The application is a user friendly and cost effective solution that facilitates the client with a
user interface. The Multiple transfer facility enhances the current methodology by saving
time. The API ensures secure file transfer by leveraging network protocols offered by
transport layer and files encryption along the transfer path and has added features like
transaction logging. Currently, some banks are using manual creation of RMI interface to
transfer the messages received from the CBS to SFMS hub. The API is targeted for such
banks to provide a better user interface supplemented by multiple file transfer and transaction
logging.
-=^=-
P a g e | 23