Table of Contents
Table of Contents
Table of Contents _____________________________________________________________________________________________ 1
Introduction____________________________________________________________________________________ 3
1.1 Executive Summary ____________________________________________________________________________________3
1.2 Audience _________________________________________________________________________________________________3
1.3 Document Details ______________________________________________________________________________________3
AEPS Transactions on NPCI Network ______________________________________________________ 4
2.1 Architecture Diagram _________________________________________________________________________________4
2.2 Transaction Timeout Parameters ___________________________________________________________________4
Message Format _______________________________________________________________________________ 5
3.1 Authentication Transaction __________________________________________________________________________6
3.2 BFD transaction ________________________________________________________________________________________7
3.3 Demographic transaction _____________________________________________________________________________8
Data Element Definition _____________________________________________________________________ 9
Settlement and Reconciliation ___________________________________________________________ 18
References ____________________________________________________________________________________ 18
Sample Message Dumps ___________________________________________________________________ 18
Documents Details
Author
Gaurav Garg
Initial Publish Date
10, Jan 2014
Version
1.2
Total Page number
Document classification
Confidential
Document History
10/01/2014 1.2 Response Message tag added to allow banks to see the reason 10/01/2014
for failure. Can be ignored by bank.
Gaurav Garg
Date
Reviewed By:
Suchet Shenoy
Sateesh Palagiri
Introduction
1.1 Executive Summary
National Payments Corporation of India (NPCI) is formed as an umbrella institution for all the retail payments
systems in the country. The core objective is to consolidate and integrate the multiple systems with varying
service levels into nation-wide uniform and standard business process for all retail payment systems. The other
objective was to facilitate an affordable payment mechanism to benefit the common man across the country
and help financial inclusion. Vision and formation of NPCI is backed by the regulator and Indian Banks
Association (IBA). NPCI has defined business lines to process in country interbank transactions for ATM, POS,
24x7 Remittance, ACH and CTS.
Government of India has initiated Unique Identification Project for citizens of India. It is envisaged to use the
UID schema and infrastructure for the financial inclusion in India. To enable the customers to use AADHAAR for
the financial transaction across the payment networks in the country, NPCI proposes to facilitate routing of
transactions to the central id repository of UIDAI for user authentication through a single interface.
This interface document is targeted to achieve inter-operability between banks for Aadhaar based payment
transactions. NPCI shall allow banks to connect using this interface. It is also possible that banks may position
their respective financial inclusion service provider to connect on their behalf to NPCI central infrastructure with
the respective member bank.
With the Introduction of XML it will be easy for the banks to formulate messages as compared to the complexity
involved in the formation of ISO 8583 message.
1.2 Audience
This document is a property of NPCI and should be not be circulated to external party without prior approvals
of NPCI management team.
This document will be circulated to NPCI management team, Technical Advisor Committee, Business user group
formed from member banks.
(I) AEPS Intra-Bank Transaction Flow (Authentication, BFD, Demographic, e-KYC, OTP )
Figure 1
4. The Timeout parameter on the Originating channel should be around 90 seconds i.e. if the Originating
system doesn’t receive response from Acquirer system, Originating channel should decline the transaction
and show appropriate message to the operator.
Message Format
This section deals with Request and Response Message in accordance to the transaction type which needs to be
followed by bank.
1. NPCI will form the final auth xml request by encoding the encrypted data received from bank.
2. For Demographic based transaction only <uses> tag will vary based on the scenario.
<Request_bfd> <Response_bfd>
<TransactionInfo> <TransactionInfo>
<Pan></Pan> <Pan></Pan>
<Proc_Code></Proc_Code> <Proc_Code></Proc_Code>
<Transm_Date_time></ Transm_Date_time > <Transm_Date_time></ Transm_Date_time >
<Stan></Stan> <Stan></Stan>
<Local_Trans_Time></Local_Trans_Time> <Local_Trans_Time></Local_Trans_Time>
<Local_date></Local_date> <Local_date></Local_date>
<Mcc></Mcc> <AcqId></AcqId>
<Pos_entry_mode></Pos_entry_mode> <RRN></ RRN>
<Pos_code></Pos_code> <ResponseCode></ResponseCode>
<AcqId></AcqId> <ResponseMsg></ResponseMsg>
<RRN></RRN> <CA_Tid></CA_Tid>
<CA_Tid></CA_Tid> <CA_ID></CA_ID>
<CA_ID></CA_ID> <CA_TA></CA_TA>
<CA_TA></CA_TA> </TransactionInfo>
</TransactionInfo> <BfdRes code=”” txn=”” err=”” ts=”” actn=”” msg=””>
<Bfd uid=”” tid=”” ac=”” sa=”” ver=”” txn=”” lk=””> <Ranks>
<Meta udc=”” fdc=”” pip=”” lot=”G|P” lov=””/> <Rank pos=”” val=””/>
<Skey ci=”” ki=””>encrypted and encoded session </Ranks>
key</Skey> </BfdRes>
<Data type=”X|P”>encrypted RBD block</Data> </Response_bfd>
<Hmac>SHA-256 Hash of RBD block, encrypted and then
encoded </Hmac>
</Bfd>
</Request_bfd>
<Request_demo> <Response_demo>
<TransactionInfo> <TransactionInfo>
<Pan></Pan> <Pan></Pan>
<Proc_Code></Proc_Code> <Proc_Code></Proc_Code>
<Transm_Date_time></ Transm_Date_time > <Transm_Date_time></ Transm_Date_time >
<Stan></Stan> <Stan></Stan>
<Local_Trans_Time></Local_Trans_Time> <Local_Trans_Time></Local_Trans_Time>
<Local_date></Local_date> <Local_date></Local_date>
<Mcc></Mcc> <AcqId></AcqId>
<Pos_entry_mode></Pos_entry_mode> <RRN></ RRN>
<Pos_code></Pos_code> <ResponseCode></ResponseCode>
<AcqId></AcqId> <ResponseMsg></ResponseMsg>
<RRN></ RRN> <CA_Tid></CA_Tid>
<CA_Tid></CA_Tid> <CA_ID></CA_ID>
<CA_ID></CA_ID> <CA_TA></CA_TA>
<CA_TA></CA_TA> </TransactionInfo>
</TransactionInfo> <AuthRes ret=”y|n” code=”” txn=”” err=”” ts=””
<Auth uid=”” tid=”” ac=”” sa=”” ver=”” txn=”” lk=””> info=””>
<Uses pi=”” pa=”” pfa=”” bio=”” bt=”” pin=”” otp=””/> </AuthRes>
<Tkn type=”” value=””/> </Response_demo>
<Meta udc=”” fdc=”” idc=”” pip=”” lot=”G|P” lov=””/>
<Skey ci=”” ki=””>encrypted and encoded session
key</Skey>
<Data type=”X|P”>encrypted & encoded PID
block</Data>
<Hmac>SHA-256 Hash of Pid block, encrypted and then
encoded</Hmac>
</Auth>
</Request_demo>
Transactioninfo Attributes
(Mandatory) PAN: Aadhaar Number of the resident (mandatory)
Format: LLVAR
Type n..19
PAN must be populated with the combination of IIN and the resident Aadhaar
number.
B B B B B B I U U U U U U U U U U U U
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Elements Description
Elements Description
Elements Description
Elements Description
NPCI UIDAI
Sr.
Error Error Description
No.
Code Code
1 00 - Successful Transaction
NPCI doesn’t get any response from Issuer after sending the
2 91 -
request
Elements Description
23 UB 710 Missing “Pi” data as specified in “Uses”
Time Out for the request sent to UIDAI from NPCI beyond 10
30 UI -
seconds (like response not received for Authentication Request
Invalid "dob" value in "Pi" element. Invalid dates are one which
are not of the format YYYY or YYYY-MM-DD, or have a year value
35 UN 902 such that residents age is less than 0 or more than 150 years, or
contains value which cannot be parsed e.g. alphabetic strings,
invalid dates such as 31-Feb, etc
38 UQ 912 Invalid "ms" value in "Pa" (If match strategy other than E is used)
39 UR 913 Both Pa and Pfa are present (Pa and Pfa are mutually exclusive)
Elements Description
Request expired (“Pid->ts” or “Rbd->ts” value is older than N
47 V0 561
hours where N is a configured threshold in authentication server)
Elements Description
76 VT 501 Invalid certificate identifier in “ci” attribute of “Skey”.
Elements Description
ResponseMsg: Response Message (mandatory in Response)
Format: Variable
Type: an..80
Mandatory element in the response.
References
UIDAI released Documents which needs to be referred for Encryption Logics and parameters are explained
which need to be passed while forming the Auth message based on Transaction
aadhaar_authentication_api_1_6
aadhaar_otp_request_api_1_5
aadhaar_BFD_request_api_1_6
<Request_bfd>
<TransactionInfo>
<Pan>607066*********2521</Pan>
<Proc_Code>110000</Proc_Code>
<Transm_Date_time>0726094813</ Transm_Date_time >
<Stan>206661</Stan>
<Local_Trans_Time>151813</Local_Trans_Time>
<Local_date> 0726 /Local_date>
<Mcc>6012</Mcc>
<Pos_entry_mode>019</Pos_entry_mode>
<Pos_code>05</Pos_code>
<AcqId>200002 </AcqId>
<RRN>320715206661</ RRN>
<CA_Tid> public</CA_Tid>
<CA_ID>UCO000000006000</CA_ID>
<CA_TA>CSB, NERUL MUMBAI MHIN</CA_TA>
</TransactionInfo>
<Bfd uid=”xxxxxxxxxxxxxx” tid=”public” ac=”STGCORPBNK” sa=”STGCORPBNK” ver=”1.6"txn=”206661”
lk=”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”>
<Meta udc=”UCO000000006000” fdc=”INTF88INN” pip=”NA” lot=”P” lov=”560064”/>
<Skey ci=”20151110” >xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Skey>
<Data type=”P”>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Data>
<Hmac>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Hmac>
</Bfd>
</Request_bfd>
==================================================================================================
<Response_bfd>
<TransactionInfo>
<Pan>607066*********2521</Pan>
<Proc_Code>110000</Proc_Code>
<Transm_Date_time>07260 94813</ Transm_Date_time >
<Stan>206661</Stan>
<Local_Trans_Time>151813</Local_Trans_Time>
<Local_date> 0726 /Local_date>
<AcqId>200002 </AcqId>
<RRN>320715206661</ RRN>
<Responsecode>00</Responsecode>
<ResponseMsg>Successful</ResponseMsg>
<CA_Tid> public</CA_Tid>
<CA_ID>UCO000000006000</CA_ID>
<CA_TA>CSB, NERUL MUMBAI MHIN</CA_TA>
</TransactionInfo>
<BfdRes code=”” txn=”206661” ts=”2013-07-29T17:52:58.416+05:30” actn=”00” msg=”No action necessary”>
<Ranks>
<Rank pos="RIGHT_INDEX" val="-1"/><Rank pos="LEFT_MIDDLE" val="7"/><Rank pos="LEFT_THUMB" val="6"/><Rank
pos="LEFT_RING" val="5"/><Rank pos="RIGHT_LITTLE" val="8"/><Rank pos="RIGHT_RING"
val="4"/><Rankpos="RIGHT_MIDDLE" val="3"/><Rank pos="RIGHT_THUMB" val="2"/><Rank pos="LEFT_LITTLE"
val="9"/><Rank pos="LEFT_INDEX" val="11"/>
</Ranks>
</BfdRes>
</Response_bfd>
==================================================================================================
<Response_demo>
<TransactionInfo>
<Pan>6070950xxxxxxxx49</Pan>
<Proc_Code>120000</Proc_Code>
<Transm_Date_time>1226061400</Transm_Date_time>
<Stan>000539</Stan>
<Local_Trans_Time>114400</Local_Trans_Time>
<Local_date>1226</Local_date>
<AcqId>200035</AcqId>
<RRN>336011000539</RRN>
<ResponseCode>00</ResponseCode>
<ResponseMsg>Successful</ResponseMsg>
<CA_Tid> public</CA_Tid>
<CA_ID>IDD919999999999</CA_ID>
<CA_TA>IDBIBANK C.B.D BELAPUR NAVI MUMBAI MHIN</CA_TA>
</TransactionInfo>
<AuthRes ret="y" code="03bd3c2e8f344d91bb554892e7052702" txn="000539"
info="01a02ab898e48c7ad66b0bd6d976d236ccd93c340826a1578651685c151865882c63af88988e17b86b21572449d276
87ed9d86ceb8b7003c25ec77c52f84bf9f15190000000000" ts="2013-12-26T11:44:06.189+05:30"/>
</Response_demo>