Nadl RFP
Nadl RFP
Administrative Office:
NESL Asset Data Limited(NADL)
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Phone: - 080 -25580360,022- 22446619
e-mail:- [email protected]
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 1 of 109
RFP SCHEDULE
RFP. No: NADL/Account Aggregation/2018/001 Date: 28th June 2018
Last Date and Time of receiving pre- 04th July 2018, 1700 Hrs
bid vendor queries in writing
Date and Place of Pre-bid Meeting 11th July, 2018, 1100 Hrs
National E-Governance Services Ltd
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Last Date and Place of submission of 25th July, 2018, 1500 Hrs
Bids National E-Governance Services Ltd
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Date, Time and Place of Technical 27th July, 2018, 1100 Hrs
Presentation National E-Governance Services Ltd
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Date, Time and Place of opening of 31st July, 2018, 1530 Hrs
Technical Bids National E-Governance Services Ltd
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Date, Time and Place of opening of 03rd August, 2018, 1100 Hrs
Commercial Bids(Tentative) National E-Governance Services Ltd
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Application Fee Rs. 2360/- in the form of Demand Draft drawn in favour of NESL
Asset Data Limited., payable at Bengaluru.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 2 of 109
DEFINITIONS
● "Bank" means - a banking company; or a corresponding new bank; or the State Bank of India;
or a subsidiary bank; or such other bank which the Bank may, by notification, specify for the
purposes of these directions; and a co-operative bank as defined under clause (cci) of section
5 read with section 56 of the Banking Regulation Act, 1949 (10 of 1949)
● “business of an account aggregator” means the business of providing under a contract, the
service of, retrieving or collecting such financial information pertaining to its customer, as may
be specified by the Bank from time to time; and consolidating, organizing and presenting such
information to the customer or any other financial information user as may be specified by
the Bank;
● The Central Registry provides the FIP and AA public key information so ecosystem components
can validate the digital signatures of these entities.
● “Company” means a company registered under section 3 of the Companies Act, 1956 or a
company registered under sub section (20) of section 2 of the Companies Act, 2013;
● The Corporate Identity Number is a unique 21-digit alpha-numeric number given to all Private
Limited Company, One Person Company, Limited Company, Section 8 Company, Nidhi
Company and Producer Company registered in India.
● A consent artefact is a machine-readable electronic document that specifies the parameters
and scope of data sharing that a user consents to in any data sharing transaction.
● “Financial information user” means an entity registered with and regulated by any financial
sector regulator; FIU can request, retrieve and store financial information based on the
Customer consent.
● “Depository” means a company which has been granted a certificate of registration under
sub-section (1A) of section 12 of the Securities and Exchange Board of India Act, 1992;
Bank deposits including fixed deposit accounts, savings deposit accounts, recurring
deposit accounts and current deposit accounts,
Deposits with NBFCs
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 3 of 109
Structured Investment Product (SIP)
Commercial Paper (CP)
Certificates of Deposit (CD)
Government Securities (Tradable)
Equity Shares
Bonds
Debentures
Mutual Fund Units
Exchange Traded Funds
Indian Depository Receipts
CIS (Collective Investment Schemes) units
Alternative Investment Funds (AIF) units
Insurance Policies
Balances under the National Pension System (NPS)
Units of Infrastructure Investment Trusts
Units of Real Estate Investment Trusts
Any other information as may be specified by the Bank for the purposes of these
directions, from time to time;
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 4 of 109
● “Financial information user” means an entity registered with and regulated by any financial
sector regulator;
● “Financial Sector Regulator” for the purpose of these directions, shall mean the Reserve Bank
of India, Securities and Exchange Board of India, Insurance Regulatory and Development
Authority and Pension Fund Regulatory and Development Authority
● “Customer” for the purpose of these directions means a ‘person’ who has entered into a
contractual arrangement with the Account Aggregator to avail services provided by the
Account Aggregator
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 5 of 109
TABLE OF CONTENTS
No Contents Page
SECTION – I: INVITATION OF RFP
1 Background 9
2 Contact Information 9
3 Pre-bid meeting 9
4 How to Apply 9
5 Submission of Proposals 11
6 Validity of Bids 11
7 Last Date of Submission of RFP Document 12
8 Opening of RFP 12
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 7 of 109
ANNEXURES
ANX –A: Covering Letter 97
ANX – B: Letter of Authority 98
ANX – C: List of Manpower on Roll 99
ANX – D: Existing Cloud IT Infrastructure 100
ANX – E: Proforma of Performance Bank Guarantee 101
ANX - F: Feature compliance checklist 105
ANX – G: Document Checklist 106
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 8 of 109
SECTION – I: INVITATION OF RFP
1. Background
National e-Governance Services Limited (NeSL) is India’s first Information Utility and is registered
with the Insolvency and Bankruptcy Board of India (IBBI) under the aegis of the Insolvency and
Bankruptcy Code, 2016 (IBC). The company has been set up by leading banks and public institutions
and is incorporated as a union government company.
NESL Asset Data Limited (NADL), a Non-Banking Financial Company is a wholly owned subsidiary
of NESL. NADL proposes to provide the services of an Account Aggregator duly retrieving,
collecting, consolidating, organizing and presenting financial information pertaining to customers,
whereby customers would benefit from single view of their financial information
NADL invites proposals from eligible vendors for Design, Development, Installation, Integration,
Configuration, Support & Maintenance of Account Aggregation software (hereafter referred as
Design and Deployment) as given in Section – IV: Schedule of Requirements.
2. Contact Information
3. Pre-Bid Meeting
The pre-bid meeting will be held at address and on dates as given in the RFP schedule above, to
sort out/resolve queries raised by the prospective bidder regarding the scope, terms & conditions,
etc. The prospective bidders requiring any clarification on the RFP document may send their
queries in writing through email. NADL will respond to these queries during the pre-bid meeting.
The queries/doubt/clarifications etc. must be sent before the date and time given in RFP schedule
above. After the stipulated date and time, no queries would be entertained.
4. How to Apply
The documents as listed below (but not limited to) should be submitted in the four respective
SEALED envelopes, as given below.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 9 of 109
Envelope – 1:
ii. Demand Draft of Rs. 3,20,000/- (Rs. Three Lakh Twenty Thousand only) towards Earnest
Money Deposit or the valid documents, if any exemption from payment of EMD is claimed.
Envelope – 2:
iv. The copies of the audited Profit and Loss Account or a certificate from a Chartered
Accountant, showing the annual turnover and profit for each of the financial years 2016-2017,
2015-2016 and 2014-2015.
v. Copies of PAN and GST registration certificates.
vii. Other documents necessary in support of eligibility criteria (Section - II, para 4), product
catalogues, brochures, etc.
Envelope – 3:
i. List of clients for whom the bidder has developed and deployed the application software of
similar nature, in last five years.
ii. The details of application software developed and deployed by the bidder in last five years,
giving details like technology platform used, the scope, volume, spread of software, the size
of data, number of transactions, speed / latency, key features, etc.
iii. Copies of at least three supply orders / deployment reports, in support of sub-para 6 of para
4 (Eligibility Criteria) in Section – II.
iv. List of Technical and Administrative personnel on roll of the bidder, giving details of their
educational qualifications (with specializations, if any), experience in the specific area as
required for this project, etc. (Annexure – C)
v. Technical Proposal including (but not limited to) understanding about the project,
implementation Methodology, team composition, work schedule, PERT and Activity
Schedule, interactions / visits, Data safety/ security measures, Quality Control, modular
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 10 of 109
structure, escalation hierarchy, technologies /platforms to be used, requirements from NADL/
clients.
vi. The technical proposal should detail the technical architecture and explain the platform
scalability for various transaction volumes, flexibility towards modifications, etc. It should also
detail the mapping of the proposed technology platform onto the Infrastructure detailed in
Annexure – D
vii. A statement as per Annexure - F, showing bidder’s compliance with the technical
requirements covering all the parameters (but not limited to) stipulated at para 3: Application
Software Requirements, page 32 to 94, Section -IV of this document. The bidder may please
note that simply complying with the requirements does not automatically make the bidder
technically qualified.
viii. The details required for technical evaluation of bids, pertaining to parameters mentioned
onpage 16 to 18, Section - II, at para 8 ii (tables A to D), in tabular form.
Envelope – 4:
All applications must be sent to the contact address as given in the RFP schedule. The applications
should be in a sealed envelope. All the four envelopes should be put in a large outer envelope. The
outer cover of the envelope should be sealed and super scribed with the following.
_______________________________________________________________________________
NADL: Technology Platform for Development and Deployment of Account Aggregation Software
RFP No. NADL/Account Aggregation/2018/001, dated 28th June, 2018.
_______________________________________________________________________________
This submission should reach NADL on or before the last date of submission of RFP as given in the
RFP schedule. NADL will not take any liability for proposals received late, for any reasons. If the
last date for the receipt of applications mentioned above gets declared a Public Holiday, the last
date will be the next working day.
6. Validity of Bids:
The bids submitted against this RFP shall be valid for a period of 90 days from the last date of
submission mentioned in the RFP schedule
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 11 of 109
7. Last Date of submission of RFP Documents
Last date for submission of RFP documents is given in the RFP schedule. The documents can be
submitted in person or can be sent through mail/ courier, so as to reach on or before the last date
and time stipulated in this document. NADL shall not be responsible for postal / courier delay, if
any, or any other reason for non-receipt of document in the specified time and will result in
disqualification / rejection of the bid.
The RFP Documents will be opened, in the presence of the bidders or their authorized
representatives, who choose to attend, on the date as given in RFP schedule, at the address given
at para 2 above. The representatives (maximum two, with an authority letter from the applicant)
of interested parties are welcome to attend the opening of the RFP documents.
(END OF SECTION-I)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 12 of 109
SECTION II: INSTRUCTIONS TO BIDDERS (ITB)
At the Datacentre and Disaster Recovery sites of NADL and their client locations within India.
2. Project Timelines:
The successful bidder should complete the process of Design, Development, Installation,
Integration and Configuration of Account Aggregation software at NADL within a period of 6
months from the date of placement of order. Subsequent to the above successful deployment, the
bidder will be required to provide warranty and maintenance services for the warranty period
mentioned in the order.
The order will initially cover the warranty, technical support and maintenance period of 2 years,
after successful deployment of the software. However, NADL may extend this period with mutual
consent on the same terms and conditions by another 3 years(maximum). The extension shall be
for a period of one year at a time.
3. Order Placements:
The Supply Order and payments shall be released by:
4. Eligibility Criteria:
1. The bidder must satisfy the eligibility criteria stipulated below. However, fulfilling the eligibility
criteria does not automatically mean that their bid is qualified.
2. The bidder should submit the financial instruments, documents and information stipulated at
para 4, “How to Apply”, Section – I.
3. The annual sales turnover of bidder in the last two financial years should be at least Rs.20
Crores.
4. The bidder must have at least 5 years of experience in the area of development of software
and providing IT services, etc. to clients from financial sector.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 13 of 109
5. The bidder should be a profit making company (profit after tax) in at least last financial year
6. Bidder should have executed at least 3 IT projects in the BFSI space, with each project worth
Rs. 1 Crore or above. Statutory auditors certificate by the bidder should be relied upon.
7. The bidder must have the qualified manpower having relevant experience and in requisite
number, on their rolls, as listed in Annexure – C.
8. The bidders must have Office and Service Centre at Bengaluru. The bidder shall enclose the
relevant documents in support of this requirement, indicating local address and contact
number.
9. Fit and proper criteria as per normal regulatory dispensation, and that there have been no
regulatory actions initiated / pending against the bidder by any public authority. Suitable
declaration to this effect has to be provided.
10. The bidder shall not be permitted to do/attempt any reverse engineering of the software
developed and / IT service, up to a period of two years from the date of completion of the
project delivery and acknowledged by NADL of satisfactory receipt. The IPR of the Account
Aggregation technology developed shall vest with NADL perpetually. The bidder must submit
an undertaking to this effect as per format given in Annexure - A.
11. The bidder should have implementation experience in using open source platform, versatile in
technology platform such as API, Consent management, data security, etc. for at least one
organization in India (Central Government/State Government/PSU/Private Sector Company).
Notes:
1. The bidders should provide sufficient documentary evidence to support the eligibility criteria.
NADL reserves the right to reject any bid not fulfilling the eligibility criteria.
2. If in the view of bidder, any exemption / relaxation is applicable to them from any of the
eligibility requirements, under any Rules / process/ Guidelines/ Directives of Government of
India, bidder may submit their claim for the applicable exemption /relaxation, quoting the valid
Rule/ process/ Guidelines/ Directives. In this case the bidder must submit necessary and
sufficient documents along with the technical bid, in support of his claim. The bid evaluation
committee is empowered to take appropriate decision about the claim towards exemption/
relaxation of the bidder.
c. NADL at its discretion may extend the deadline for the submission of bids if it thinks necessary
to do so or if the bid document undergoes changes during the bidding period, in order to give
prospective bidders time to take into consideration the amendments while preparing their
bids.
d. The bidder may modify, withdraw or resubmit its bid, before the last date and time of
submission of bids.
6. Preparation of Bids
Bidder should avoid, as far as possible, corrections, overwriting, erasures or postscripts in the bid
documents. In case however, any corrections, overwriting, erasures or postscripts have to be made
in the bids, they should be supported by dated signatures of the same authorized person signing
the bid documents. However, bidder shall not be entitled to amend/ add/ delete/ correct the
clauses mentioned in the entire tender document.
b. The bidder may claim the exemption from submission of EMD, if eligible. In this case, the
bidder must clearly mention the applicable Rule/ Law / Provision under which the exemption
is being claimed. The bidder must also submit the necessary and sufficient current and valid
documents in support of this claim. The Bid Evaluation Committee of NADL is empowered to
decide on grant of exemption on merit, whose decision on the same shall be final and binding
on the bidder The bid submitted without EMD or valid exemption documents shall stand
rejected. No interest shall be payable on EMD.
c. The EMD will be returned to the bidder(s) whose offer is not accepted, within 30 days from
the date of finalization of successful bidder. In case of the bidder whose offer is accepted, the
EMD will be returned on submission of Security Deposit(SD), as stipulated at para 5, Section –
III of this document. No interest on EMD will be payable to the bidder.
i. The bidder withdraws the bid during the period of bid validity specified in the RFP.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 15 of 109
ii. The successful bidder fails to furnish the acceptance in writing, within 15 days of
placement of order.
iii. The bidder fails to submit the Security Deposit, as stipulated at para 5, Section – III of
this document.
1 1 5
2 2 6
3 3 7
4 4 9
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 16 of 109
5 More than 4 10
C: Size of Skilled Technical Team available on rolls to build the Account Aggregator
Software platform:
1 Up to 10 5
2 11 – 15 6
3 16 – 20 7
4 21 – 25 9
5 More than 25 10
D: Technical Presentation:
E: Financial Criterion: The financial score (FS) will be calculated by comparing the price
quoted by each bidder with the lowest price quoted.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 17 of 109
The illustrative example given at para 9 below may be referred for further clarity.
iii. The minimum qualifying marks for the technical parameters stipulated at A to D above shall
be 50. The bidders getting marks less than 50 will be disqualified.
iv. The price bid of the disqualified bidders will not be opened.
v. The bidders whose technical bid is found to meet both the requirements as specified at 8 (i)
and 8(ii) above will qualify for opening of their commercial bids. The Technical Score (TS)
secured by each qualified bidder shall be informed to the bidders present during the
commercial bids opening meeting. The date and venue of the commercial bids opening will
be informed separately.
vi. The duly constituted Bid Evaluation Committee (BEC) shall evaluate the bids. The BEC shall
be empowered to take appropriate decisions on minor deviations, if any. The bidder’s name,
bid prices, discounts and such other details considered as appropriate by NADL, will be
announced at the time of opening of the commercial bids.
9. Comparison of Bids
i. The Combined Technical and Financial Score (CTFS) with Weightage 70:30 (70 for Technical
and 30 for Financial) will be calculated.
ii. The Combined Technical and Financial Score (CTFS) will be taken for comparison of bids and
for deciding bidder securing highest score.
Bidder 1 75
Bidder 2 65
Bidder 3 45
Bidder 4 55
Bidder 5 65
Bidder 3 will be disqualified as the total technical Marks are below 50.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 18 of 109
Bidder details Technical Score (TM/MTM)*100 TS
Stage 3: Prices Quoted: The total prices quoted at Section - V, including taxes will be
considered for calculating Financial Score.
Bidder1 100
Bidder2 75
Bidder4 55
Bidder 5 65
Stage 5: Combined Technical and Financial Score (CTFS) with Weightage 70:30
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 19 of 109
Bidder Weightage of CTFS Rank of
Details 70 % for Technical & the Bidder
30 % for Financial Score
The Works Order will be placed on the bidder securing highest Combined Technical and Financial
Score (CTFS), as evaluated from the method described at para 8 and 9 above.
The Order will be placed for the amount as quoted in Part -A of Price Bid, Section - V. The prices
quoted at Part - B shall be used for carrying out a Change Order, if any, during the project period
(Please refer para 4 of Section - III).
However, NADL reserves the right and has sole discretion to reject the bid securing highest
Combined Technical and Financial Score (CTFS).
In case, more than one bidders secure same Combined Technical and Financial Score (CTFS), NADL
reserves the right to place order on the bidder having more experience in the area of
development of application software of similar nature.
NADL reserves the right to place order / contract on the sole bidder or the sole qualified bidder.
Before the placement of order, the successful bidder is required to sign a Service Agreement (SA),
a Mutual Non-Disclosure Agreement (MNDA), Deed of Indemnity with NADL and any such
agreements as required by regulators, such as, RBI, UIDAI, CA and CCA. The terms and conditions
of these agreements would be mutually decided, before placement of Order.
NADL reserves the right to amend the eligibility criteria, commercial terms & conditions, Scope of
Supply, technical specifications, etc.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 20 of 109
NADL reserves the right to cancel the entire tender without assigning any reasons thereof.
It is expected that the bidders who wish to bid for this project have highest standards of ethics.
NADL will reject bid if it determines that the bidder recommended for award has engaged in
corrupt or fraudulent practices while competing for this RFP.
NADL may declare a vendor in-eligible for placement of Order, either indefinitely or for a stated
duration, if it at any time it determines that the vendor has engaged in corrupt and fraudulent
practices during the placement / execution of Order.
In case of any ambiguity/ dispute in the interpretation of any of the clauses in this RFP Document,
the interpretation of the clauses by Director, NADL shall be final and binding on all parties.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 21 of 109
SECTION III: SPECIAL CONDITIONS OF CONTRACT (SCC)
1. Price:
a. The price quoted shall be considered firm and no price escalation will be permitted (except
Govt. Statutory Levies), till completion of deliverables / obligations of the successful bidder,
as stipulated in the Order.
b. Bidder must quote in INR only and as per price bid format given in Section – V.
c. The exact rate and amount of GST currently applicable must be mentioned in the `Price Bid
format’. The statutory taxes and duties applicable at the time of completion of activity shall
be applicable. NADL will not issue any exemption certificate.
d. The bidder should exercise utmost care to quote the correct percentage of applicable GST.
In case due to any error/ oversight, the GST rate quoted by the bidder is different than the
actual GST rate as per the tariff, the bidder will not be permitted to rectify the
error/oversight. The orders/ contract will be placed with the GST rate quoted by the bidder
or actual tariff rate, whichever is LOWER. The difference amount payable, if any, between
the quoted GST rate and actual tariff rate shall be borne by the bidder by adjustment in the
basic price
The bidder must submit the list and details of software licenses required, if any, for the
development of required software. These software licenses will be in the name of NADL.
3. Completeness Responsibility:
Notwithstanding the scope of work, engineering, supply and services stated in bid document, any
equipment or material, engineering or technical services which might not be even specifically
mentioned under the scope of supply of the bidder and which are not expressly excluded there
from but which – in view of the bidder - are necessary for the performance of the equipment in
accordance with the specifications are treated to be included in the bid and has to be performed
by bidder. The items which are over & above the scope of supply specified in the Schedule of
Requirements may be marked as “Additional Items” in Section - V.
4. Change Orders
4.1 The Vendor agrees that the requirements given in the RFP, are broad requirements and are in
no way exhaustive and may be modified at the sole discretion of NADL, without any change in
time or cost to NADL
4.2 It shall be the responsibility of the Vendor to meet all the requirements of technical criteria
contained in this RFP and any upward revisions and / or additions to specifications of the Bid
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 22 of 109
required to be made shall not constitute a Change Order and shall be carried out without a Change
Order and shall be carried out without any time and cost effect to NADL.
4.3 Any upward revision and/or additions consequent to errors, omissions, ambiguities,
discrepancies in the specification etc., which the Vendor had not brought to NADL’s notice at the
time of the Bid, shall not constitute a Change Order and such upward revisions and/or addition
shall be carried out by the Vendor without any time and cost effect to NADL.
4.4.1 NADL directs the Vendor in writing to include any addition to the Scope of work covered
under this RFP or delete any part of the Scope of work under this RFP; or
4.4.2. The Vendor requests to delete any part of the work which will not adversely affect the
implementation of the Scope of Work under this Agreement and if the deletions proposed
are agreed to by NADL and for which cost and time benefits shall be passed on to NADL;
or
4.4.3 NADL directs in writing the Vendor to incorporate changes or additions to the technical
criteria requirements under this RFP.
4.5 Any changes reasonably required by NADL over and above the minimum requirements given
in the Scope of work included in the RFP, before giving its approval to detailed design for
complying with technical criteria and changes required to ensure systems compatibility and
reliability for safe (as per codes, standards and recommended practices referred in the RFP, Bid)
and trouble free operation shall not be construed to be change in the Scope of Work under this
RFP. Also, change in codes, APIs, protocols and standards, post submission of the bid, attributable
to NADL, regulators, such as RBI and their agencies such as ReBIT shall also not be construed to
be change in the Scope of Work under this RFP.
4.6 Any Change Order comprising an alteration which involves change in the cost of the works
(which sort of alteration is hereinafter called a “Variation”) shall be the subject of an amendment
to the Order / Contract by way of an increase or decrease in the Order / Contract Price and
adjustment of the implementation schedule, if any.
4.7 If there is a difference of opinion between the Vendor and NADL’s Representative whether a
particular work or part of the work constitutes a Change Order or not, the matter shall be handled
in accordance with the procedures set forth in the next clause ‘Procedures for Change Order’.
4.8 Within 14 working days of receiving the comments from NADL on the specification, purchase
requisitions and other documents submitted by the Vendor for approval, the Vendor shall
respond in writing, which item(s) of the comments is/are potential changes(s) in the Scope of
Work covered in this Agreement and shall advise a date by which Change Order (if applicable) will
be submitted to NADL.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 23 of 109
5. Procedures for Change Order
5.1 During the implementation/maintenance or at any stage during the tenure of the project, if the
vendor observes that any new requirement which (other than that required for meeting the technical
criteria) is not specific or intended by the Scope of Work has been requested by NADL it shall
verbally discuss the matter with the Representative of NADL which may be reduced to writing in
note filings or minutes of meeting.
5.2 In case such requirement arises from the side of the Vendor, he would also verbally discuss
the matter with the NADL’s Representative giving reasons thereof which may be reduced to
writing in note filings or minutes of meeting.
5.3 In either of the two cases, the Representatives of the Parties shall discuss on the new
requirement for better understanding and shall mutually decide whether such requirement
constitutes a Change Order or not.
5.4 If it is mutually agreed that such requirement constitutes a Change Order, then a joint
memorandum will be prepared and signed by the Vendor and NADL to confirm a Change Order
and basic ideas of necessary agreed arrangement.
5.5 Upon completion of the study referred to above under clause 5.4 above, the results of this
study along with all relevant details including the estimated time and cost effect thereof with
supporting documents would be submitted to NADL to enable NADL to give a final decision
whether the Vendor should proceed with the Change Order or not in the best interest of the
works. The estimated cost and time impact indicated by Vendor shall be considered as a ceiling
limit and shall be provisionally considered for taking a decision to implement Change Order. The
time impact applicable shall be mutually agreed, subsequently, on the basis of the detailed
calculations supported by all relevant back up documents. In case the Vendor fails to submit
necessary substantiation/calculations and back up documents, the decision of NADL regarding
time and cost impact shall be final and binding on the Vendor.
5.6 If NADL accepts the implementation of the Change Order under Clause 5.5 above in writing
including the adjustment to the Contract Price, which would be considered as Change Order, the
Vendor shall commence to proceed with the relevant work stipulated in the Change Order on
signing of the final agreement between the Parties with regard to adjustment of the Contract
Price and implementation schedule.
Minor changes will not lead to change orders and the vendor shall implement it without any
additional cost to NADL. Major changes may lead to change orders. Typical examples of Minor
and Major changes are listed below. These examples are only indicative and not exhaustive.
The Security Deposit will be returned to the successful bidder on successful development and
deployment of application software and against submission of Performance Security as stipulated
at para 9, Section – III. NADL will not pay any interest on the Security Deposit.
7. Warranty:
The supplier shall warrant that the software to be supplied shall be free from all defects and faults,
shall be of the highest grade and consistent with the established and generally accepted standards
of the type ordered and shall perform in full conformity with the requirements and drawings as
per Section - IV. The supplier shall be responsible for any defect that may develop, arising from
faulty algorithms/design, errors, bugs, inadequate quality to meet requirements and/or
otherwise, and shall remedy such defects at his own cost when called upon to do so by the
Purchaser who shall state in writing in what respect the software functionality are faulty. The
warranty period shall be as stipulated at para 2, Section - II.
If it becomes necessary for the Supplier to modify any defective portion(s) of the software under
this clause, the provisions of the Clause 7.3 shall apply to the portion(s) of the software modified.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 25 of 109
The warranty shall include 24 X 7 onsite support with 4 hrs response time and 24 hrs (max)
resolution time.
8.2. If any software or any part thereof, before it is taken over under Clause 8.3 fails to fulfil the
requirements of the Order, the Purchaser/ Consignee shall give a notice to the Contractor, setting
forth details of such defects or failure and the Contractor shall modify the software to comply
with the requirements of the Order forthwith and in any case within a period not exceeding 15
days of the initial report. These replacements /modifications shall be made by the Contractor free
of all charges at site. Should it fail to do so within this time, the purchaser reserves the discretion
to reject and replace or rectify/modify, at the cost of Contractor, the whole or any portion of the
application software as the case may be, which is defective or fails to fulfil the requirements of
the Order. The cost of any such replacement/rectification made by the purchaser shall be
deducted from the amount payable to the Contractor.
8.3. When the intended functionality of the software called for have been successfully carried out,
the consignee or its authorised representative of NADL will issue a Taking over Certificate,
normally within two weeks of successful completion of tests, including the security audit of the
application.
8.4. Nothing in Clause 8 as above shall in any way release the Contractor from any warranty,
penalty or other obligations under this RFP.
The process of inspection and acceptance shall be applicable for the modifications and/ or
additions, required - if any, to be incorporated in application software to be developed. The time
required for such modifications /additions shall not be counted for calculating penalty.
9. Performance Security:
The bidder shall support the performance and warranty service of the developed and deployed
software with a Bank Guarantee.
On successful development and deployment of application software, for claiming the last
instalment of 10 % payment, the successful bidder shall submit the Performance Security in the
form of a Bank Guarantee of the equivalent amount. This Bank guarantee shall be valid for the
warranty period and shall be from a commercial bank and should be negotiable at a bank branch
in Bengaluru. The PBG shall be as per the format given at Annexure - E.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 26 of 109
10. Payments:
A: Payment for Development and Deployment of software (Sr. No. 1, Part A of Price Bid, Section
- V)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 27 of 109
B: Payment for Warranty, support and maintenance services:(Sr. No. 2 Part A of Price Bid,
Section - V)
25 % of the yearly amount towards warranty and support services, as quoted at Sr. no.2 Part
A of Price Bid, shall be released at the end of every quarter after issuing of Taking Over
Certificate for developed software. This payment shall be subject to the fulfilment of warranty
and support service requirements by the bidder, as stipulated in the Order. Applicable TDS
will be deducted from all payments.
11. Penalties:
a. In case of delay in successful development and / or deployment of required software, NADL
reserves the right to levy a penalty @ 0.5 % of the order value per week for first 4 weeks of
delay. Thereafter NADL reserves the right to levy a penalty @ 1.0 % of the order value, per
week for further delay. The penalty shall be maximum of 10 % of the Order value.
b. NADL reserves the right to cancel the order in case the delay in satisfactory development
and /or deployment of application software or any part thereof is more than 10 weeks.
c. The delay in development / deployment arising out of conditions of Force Majeure and for
the delay attributed to the NADL will not be considered for the purpose of calculating
penalties.
d. If regulatory authorities, such as, RBI, UIDAI and CCA impose any penalty (monetary or
otherwise) for non-compliance of their requirements or for breach of any rule, the same
will be imposed on Vendor on back-to-back basis. This will be over and above the penalties
stipulated at para 11 a above.
e. The penalties, if any will be recovered from the Security Deposit or Performance Bank
Guarantee submitted by the bidder.
12. Jurisdiction
The disputes, legal matters, court matters, if any shall be subject to Bengaluru jurisdiction only.
14. Arbitration:
In case any dispute arises between NADL and successful bidder with respect to this RFP, including
its interpretation, implementation or alleged material breach of any of its provisions both the
Parties hereto shall endeavour to settle such dispute amicably. If the Parties fail to bring about an
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 28 of 109
amicable settlement within a period of 30 (thirty) days, dispute shall be referred to the sole
arbitrator mutually agreed and appointed by both parties. If the sole arbitrator is not appointed
mutually by both the parties, then the District Court Bengaluru shall have exclusive jurisdiction
for appointment of sole arbitrator through court. Arbitration proceedings shall be conducted in
accordance with the provisions of the Arbitration and Conciliation Act, 1996 and Rules made there
under, or any legislative amendment or modification made thereto. The venue of the arbitration
shall be Bengaluru. The award given by the arbitrator shall be final and binding on the Parties.
16. Termination:
Validity of order will remain till fulfilment of all obligations pertaining to development and
successful deployment of software including (but not limited to) providing comprehensive
warranty, support and maintenance for the period stipulated in the Order.
The successful bidder must acknowledge and agree that the activities of providing satisfactory
services for the development and deployment of Account Aggregation software are of paramount
importance and matter of immense reputation/pride to nation and NADL. Hence timely
performance of all obligations is essence of the Order. Therefore, in case of the delay in providing
the stipulated services, and /or defect/under or non- performance pertaining to the services /
products supplied by the bidder, NADL will give written notice to the bidder requesting to set the
things right within 60 days of notice. If bidder fails to comply with the requirements, NADL shall
have the right to cancel the order/s. The successful bidder agrees and accepts that he shall be
liable to pay damages claimed by NADL, in the event of cancellation of order, as detailed in the
Service Agreement to be signed. The successful bidder may terminate the Service Agreement /
Order by at least 30 days’ written notice, only in the event of non-payment of undisputed invoices
for 90 days from the due date. Except this situation, the successful bidder shall have no right of
termination.
NADL reserves the right to terminate the contract / cancel order with or without cause/ reason,
by giving 60 days’ notice to the successful bidder.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 29 of 109
17. Indemnity:
Selected bidder shall save, indemnify and hold harmless NADL from any third party Govt. Claims,
losses, penalties, if any, arising in connection with this Contract.
18. Assignment:
Selected bidder/ Party shall not assign, delegate or otherwise deal with any of its rights or
obligation under this Contract without prior written permission of NADL.
19. Severability:
If any provision of this Contract is determined to be invalid or unenforceable, it will be deemed
to be modified to the minimum extent necessary to be valid and enforceable. If it cannot be so
modified, it will be deleted and the deletion will not affect the validity or enforceability of any
other provision.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 30 of 109
SECTION – IV: SCHEDULE OF REQUIREMENTS
1. Account Aggregator
The Account Aggregator is a Non-Banking Financial Company, expressly setup under the licensing
terms of RBI specified in the Master Circular [1], to provide specialized financial information
aggregation function for an User (individuals, entities and account holders) from one or more
Financial Information Providers (FIPs) where their account(s) exist, based on Consents provided by
the User .The master circular [1] defines the role of an account aggregator as an entity involved in
'retrieving, collecting, consolidating, organizing and presenting' financial information pertaining to
the customer as a consolidated view of their financial assets. The consolidated view of the assets
may be used for various purposes and enable new business models or enhance existing ones.
Account Aggregators have the following business goals & functional requirements.
3 AA should provide the users with the ability to download the consolidated
financial reports in the AA app. They should be able to configure an email or
digi-locker where AA can push these reports also.
5 AA shall provide a mechanism for FIUs to raise a request for consents which
can then be further validated and approved by the user.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 31 of 109
6 AA shall perform the function of obtaining, submitting and managing the user’s
consent for the financial assets for which the user wants to share the
information.
7 AA should share the consent details given by its user to the corresponding FIP
for verification and approval. AA should accept a consent only after FIP has
verified it.
consents which they have provided for any financial information sharing.
verified.
10 AA should provide a mechanism by which its user can revoke any consent to
approved, revoked, expired (state change), etc. The notification can be sent
over one or more channels like email, SMS, app notifications, or call back API.
12 AA should provide a way for users to sign-up for its services through AA mobile
app or web portal.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 32 of 109
16 AA should ensure appropriate mechanism for its user to link the financial
accounts in FIPs, with AA, so that the financial information for only those assets
can be obtained.
17 AA should ensure that the financial information are transferred in a secure way
from FIP to AA and from AA to user or FIU and no one other than the intended
recipient can get access to it.
18 AA should ensure that all user profile information are stored in a secure way
and prevent any unintended access to it.
19 AA should delete all financial information pertaining to its user, once the
customer has received those data.
21 AA should provide a mechanism by which the user can lock the AA account,
so that no modification can be made and also no data is shared.
22 At the time of obtaining consent, the Account Aggregator shall inform the user
of all necessary attributes to be contained in the consent artefact above and
the right of the user to file complaints with relevant authorities in case of non-
redressal of grievances.
23 AA should provide detailed audit logs for all data requests, consent related
requests, notifications, etc. so that they can be reviewed by the regulator and
also used at the time of dispute. These audit logs should contain enough
information so that they can also be correlated with the audit logs of FIUs and
FIPs. Audit logs should be preserved securely for at-least 5 years.
24 AA should provide reporting on certain business KPIs. These KPIs can be used
to provide business insights and can be also used for billing.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 33 of 109
25 AA should be in compliance with the Master Direction of RBI and technical
specifications from ReBIT published from time to time.
This section contains examples of the attributes/fields of some of the types of financial
information which can be obtained by FIU or User from AA. Detailed xml schemas for some of the
financial information types are described in a later section. These attributes/fields are subject to
changes and additional types will also be incorporated. Final schema details will be published
by ReBIT in its specification.
2.2.3 Insurance
1. Policy Number
2. Policy Term
3. Policy Type
4. Policy Category
5. Coverage Type
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 34 of 109
6. Policy Holder Details
7. Sum Assured
8. Premium Amount
9. Premium Frequency
10. Commencement Date
11. Policy Status
12. Premium Due Date
13. Premium Amount Date
14. Vested Bonus
2.2.5 Stocks
1. Account Id
2. Account Holders
3. Cash Position
4. Transaction Type (Common stock, Preferred stock, Additional paid-in Capital, Contributed
Surplus, retained earnings)
5. Transactions (BSE Symbol, NSE Symbol, Company Name, Exchange, ISIN, Rate, Total
Charge, Trade Value)
2.2.6 Bonds
1. Account Id
2. Account Holders
3. Compounding Frequency
4. Credit Rating
5. Current Value
6. Description
7. Face Value
8. Interest Computation
9. Interest On Maturity
10. Interest Pay-out
11. Interest Periodic Pay-out Amount
12. Interest Rising
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 35 of 109
13. Issue Date
14. Maturity Date
15. Principal Amount
16. Quote
17. Quote Date
18. Symbol
19. Taxable
20. Tenure Days
21. Tenure Months
22. Tenure Years
23. Transaction Types (opening, interest, TDS, instalment, closing)
3.1 Scalability
The architecture should be scalable and upgradable to higher levels of usage. Typically, it should
be capable of scaling to the following requirement:
● 500 FIPs
● 1000 FIUs
● 300 millions of registered users
● 100 consent requests/sec
● 1000 data requests/sec
3.2 Availability
The service provided by AA should be highly available for Users, FIPs and FIUs. The target
availability metric should be 99.99% (52.56 minutes downtime per year).
3.3 Operability
The services should be easily deployable, upgradable, maintainable. They should have high degree
of resilience to failure and need no restarts or reboot. It should be easy to monitor key operational
metrics, including health status for the services. Data movement and migration should be
minimized. It should use open-source software with support licenses. In case support license is
not available, the software selected should be a widely used one with large and vibrant developer
community. All software selected should be verified by NADL.
Latency of an APIs request is the time taken to get the response of an APIs request. Throughput
is measured by the number of such API requests per unit time. Latency defines how usable the
service is while throughput affects the scalability of the system. The AA public API latencies
should be < 80 milliseconds.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 36 of 109
3.5 Security
Because of the sensitive nature of the information that AA deals with, security and privacy needs
to be extremely important.
3.5.3.1 Tokenization
Account numbers, card numbers, phone numbers, personal identifiers (PAN, Aadhaar,
etc.) should be tokenized using Virtual IDs issued to the FIU, AA, and FIP (as defined in
the User Identifier section of the Consent Artefact XML).
3.5.6 Applicable National and International Data Protection Laws & Regulations
Any existing or proposed National Laws, and International Laws, such as GDPR should be
evaluated and if applicable, the platform needs to support all compliance requirements.
3.6 Extensibility
The system should be designed and architected with future growth into consideration. It should
be easy to extend the system to incorporate new features and use cases as well, to handle higher
concurrent load. The system should also adapt to evolving specification of various financial
information types.
3.7 Usability
A complex user-interface will generally prevent adoption. Therefore, the UI should be very simple
and intuitive. User Experience needs to be minimalist and abstract all the complexities. Any
functional flow should be achieved with minimum number of intuitive steps. Please see Reference
section for some of the high level guidelines for web and mobile applications.
3.8 Accessibility
Since the AA app can be used by varied type and number of users, the user experience has to be
designed following the right accessibility guidelines. Please see the Reference section for some of
the guidelines and best practices present in the W3C standards.
3.8.1 Additional guidelines for India provided by Govt. Of India, please see the Reference section
for India specific Accessibility guidelines.
3.9 Testability
All services and components should be individually tested using unit, integration, end to end,
reliability & performance, security test cases. Unit test cases should be written for all services.
Integration test cases should be written to test the APIs of the services in an integration
environment along with other services. In end to end test cases the entire system should be tested
for all user flows. Security or Penetration tests need to be performed for all services and
infrastructure to check any vulnerabilities. Performance test cases should also be run in end to
end environment and key latency and throughput metrics should be tracked for each version.
Appropriate tools should be used to automate all test runs. Regressions need to be performed
with unit, integration, performance test cases for each new build. The builds should be certified
once all tests run successfully and metrics obtained satisfy the minimum acceptance criterion.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 38 of 109
The following minimum acceptance criterion for test metrics are:
NADL will employ third party agencies to perform Vulnerability and Penetration Test before go-
live and at periodic intervals as determined by NADL. The vendor is expected to fix the
high/medium priority vulnerabilities before deploying to production.
All API requests to AA and their responses should be logged by AA. All notifications between AA,
FIPs, FIUs and Users in consent flow, data flow, signup flows should also be logged. The log should
contain
1) API request details like URI, http headers etc.
2) Transaction ids
3) Meta information from the payloads
Audit details and interoperability would provide additional reassurance that this data can’t be
tampered with as it travels between systems. Audit logs need to be encrypted and preserved and
should be accessible for verification by the regulators.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 39 of 109
3.11.2 RTO (Recovery Time Objective)
It is the time within which systems and applications must be recovered after an outage. It
defines the amount of downtime that a business can endure and survive. The RTO should be
no more than one hour.
All services and components should be monitored for health. Each service should define health
API which can be polled by monitoring agents periodically to determine if the service is down. If
the service is down, then Alerts should be generated. Several operational metrics should be
tracked in real time (< 1 sec) and displayed in some dashboard. Alerts can be triggered when
anomalies are detected in those metrics.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 40 of 109
4.1 Request for Consent
When FIU wants to access User’s financial information, it should raise a request for consent,
asking for details of types of financial data (e.g. saving bank, mutual funds, stocks, insurance etc)
that the FIU wants to access. The User can then provide the details of FIPs and accounts and
approve the consent request. The request for consent will have an expiry time beyond which a
new request has to be generated. The request for consent should unambiguously indicate the
purposes for which the data is being collected.
When a user approves a consent request a set of consent artefacts, one per FIP, is created. A
consent artefact is a machine-readable electronic document that specifies all the parameters,
scope, purpose, frequency etc. of data share that a user consents to. The consent artefact is also
shared with FIP for verification. Once a consent is approved by User as well as verified by FIP,
financial information can be shared based on the details in the consent artefact. A consent can
be paused, revoked, restarted. A consent can also expire. Data should not be shared on an expired
consent.
Once the user gives consent to access the financial data from an FIP, a consent artefact is
created which is signed by user and stored by AA. Please refer to an example electronic
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 41 of 109
consent artefact as specified in the ReBIT Technical standard. The actual structure of the
artefact may vary from this.
AA uses the User’s consent artefact to create another artefact containing information
required by FIP; digitally signs it and shares with FIP. FIPs need to validate the consent artefact
and details within it. The Verification steps consist of:
1) Verify the credentials of the AA
2) Verify that the artefact is valid and contains all mandatory information.
3) Verify that it has been issued by authorized user who has account with the FIP.
The consent artefact shared with FIP should not contain any details of FIU.
AA should accept any consent once FIP also validates and approves it. At the time of sharing the
financial information, FIPs can refer to the appropriate consent artefact details to check the
validity of data share. FIP should validate this in real-time. Please refer to an example electronic
consent artefact as specified ReBIT Technical standard. The actual structure of the artefact may
vary from this.
To sign-up the user needs to provide the mobile number and select a VUA (Virtual User Address)
which will identify the user on AA platform. User will also need to choose a password. The VUA
and password can be used for subsequent logins. During the sign-up process the user needs to do
her KYC. The KYC process is described in later section.
Additionally, a 6-digit PIN can be setup for the mobile App which acts as an additional security
measure to prevent the App being used by malicious person.
Each User who has an account with the AA is identified by the unique “Virtual User Address”
of the form “account@AA_identifier" form. The term “account” should only contain a-z, A-Z,
0-9,. (dot), - (hyphen). This VUA will also be used by the FIU to route the request and connect
the User’s account maintained by AA. This construct is conceptually similar to the UPI’s Virtual
Payment Address (VPA)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 42 of 109
5.2 KYC
Any user enrolled on the AA platform needs to have the KYC done by AA. This can be done in any
of the following way,
1. The user has the option of providing the Aadhaar number, using which e-KYC can be done.
Aadhaar based e-KYC can be done within the user’s registration flow.
2. The user has the option to upload any scanned copy of the required documents as specified
by NADL, the KYC will be done offline and the User will be notified.
3. The user also has the option to visit KYC centres as specified by NADL and provide physical
copies of the documents for KYC
5.3 Login
To login to the AA App or the web portal, the user uses the VUA and password which was setup
during signup. For 2 factor authentication OTP can be used. Password restriction policy should
adhere to the password security policy given in the NESL information security policy document,
which will be shared along with the service agreement with the successful bidder.
Once the user signs in, she needs to discover and link the FIP accounts with AA. There are 2 flows
for it.
5.4.2. Linkage
Once the accounts with FIPs are listed, user can select individual account and link with AA.
During this linking process the user’s identity should be verified by FIP. FIP can use registered
mobile OTP and registered email for this verification. This step is needed to ensure that the
right person is linking to the right account. Once validated, FIP notifies AA to link the account
with users’ profile. Consent can be given and financial information can be shared only for
linked accounts.
5.4.3 De-Linkage
A User can de-link one or more of the account at any point of time. At the time of de-linking,
user’s identity must be verified by FIP. Once de-linked, all consents which refers to that
account for any data access should be revoked automatically and user and FIP should be
notified. Alternatively, delinking of account should be allowed when there is no active consent
of that account.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 43 of 109
5.5 Consent Approval and Consent Artefact Creation
There are multiple ways consents can be created for users to approve
There can be several ways by which a consent request can be initiated from FIU. Some of these
are,
Both (1) and (2) above require FIU to integrate with the open APIs provided by AA. The consent
requests should contain details about user identification on the AA Platform, Asset Types,
Frequency Total Time, Purpose etc for which the financial information is required. In (1), the user
may also provide the FIP accounts for the required Asset types.
Once the consent request is raised, AA platform receives this request. User gets a notification
about the consent request upon which she can login to AA application. The user needs to provide
all necessary information which is asked for. If the accounts are not linked then the User needs to
link them with AA. Once linked, the user can approve the request, digitally signs the consent
artefacts. AA stores these artefacts. The user can also reject the consent request from the AA
applications.
In this flow, the User can create a consent by specifying the list of FIPs, their accounts and the
type of data required on the AA application itself. These accounts should have been already linked
with the User’s profile. User digitally signs the consent artefact, which is then stored by AA.
Once the consent is approved by the user, financial information of these user can now be shared.
There are two flows.
In this flow the data is received by the FIU. The flow is described in the FIU flow section 6.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 44 of 109
5.6.2.1 One-time
The consent has been given by User for only one time sharing. User initiates the request. AA
requests the corresponding FIP for the data as specified in the consent artefact. Once FIP returns
the data, AA notifies the User. User logins to the app to retrieve the data. Since AA will store this
information only upto certain period, User should get the data within that period. Beyond this
period, User needs to initiate this request again, provided the consent artefact is still valid.
5.6.2.2 Periodic
The consent has been given by user for periodic data sharing. The consent artefact should also
specify the start time, frequency and total period for which data needs to be shared. User initiates
this data share using AA API. After that AA manages the data share for the duration of the consent.
At every interval, AA triggers the data request by initiating a call to FIP. Once FIP returns the data,
AA notifies the User or FIU. User can login to the app or portal and retrieve the data. FIU calls AA
API to fetch the data. Since AA will store User’s financial data in a transient storage only up to
certain period, User should get the data within that period. Beyond this period, User needs to
initiate this request again, using the same consent artefact but providing the period for the data.
The consent artefact needs to be valid at the time of this request.
In the user initiated flow, AA sends notification to User about availability of the financial
information from an FIP. The user can login to AA app on his/her device and fetch the data from
the AA server. The app will store the data locally on user’s device. When all required financial
information are available from all the FIPs, user can request for a consolidated report. The app
can use the locally stored information and generate the reports. The app should use a viewer to
display the report on the device screen.
The user can register the email id or digilocker account with AA. When a consolidated report is
generated, the AA app can email the report or push it to digilocker account as per User’s choice.
5.9 Profiles
In this flow the user can edit or update various profile information
1) Email
2) Digilocker account details to forward the consolidated reports
These information need to be stored in a secure way. Any other profile information required can
be added or modified in this flow.
This flow provides user with a dashboard either through the web portal or the mobile app, where
she is able to view list of all consents either initiated by FIU or by the user herself. For each consent
she should be able to view the consent artefacts, current status of consents, data delivery status,
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 45 of 109
etc. It provides an analytical view of all the consents. In order to approve, revoke, pause any
consent artefact, the user needs to additionally authenticate herself using OTP based mechanism.
5.11 Analytics
The user is provided with a transaction dashboard showing details about the transactions like,
1) Completed & Pending transactions for user-initiated flows
2) Completed & Pending transactions with FIUs for FIU initiated flows
3) Consent statistics
The user is provided with a payment dashboard showing details about the payments,
1) Itemized monthly bills for all chargeable transactions.
2) Paid or Unpaid bill details
5.13 Notification
User receives notification on various events from FIU, AA, FIP through SMS, in-app notifications.
Examples of such notifications are,
Users has the “Right to be Forgotten”. When user selects it, the following can be done
● All outstanding data requests for the user’s financial information have to be stopped
● All consent requests of the users should be revoked
● Any other data or metadata pertaining to the user in the system has to be removed.
● The user should be de-registered from the platform.
Implementation of the above should be as per the applicable data privacy and security laws and
regulations.
FIUs can sign up in the AA web portal by creating its unique login id and password. It also needs
to provide the necessary information as required by AA. AA may verify this information. The
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 46 of 109
verification process can include offline steps. Once verified the FIU account becomes active on
the AA platform. FIU will also have a unique FIU Id provided by NADL.
6.2 Login
FIU can login to the portal using its login id and password which was setup during the registration
process. For 2 factor authentication OTP can be used to any registered mobile. Password
restriction policy should adhere to the password security policy given in the NESL information
security policy document, which will be shared along with the service agreement with the
successful bidder.
FIU should be provided with a dashboard where it can generate and manage its Secret Access Key
which is required by FIU to digitally sign the API requests it makes to AA for consent and data.
In all of the above, the User can also reject the consent request from the AA application if she
doesn’t want to provide all details requested by the FIU. Consent Request also has an expiry
time. If user doesn’t take any action on the consent request, it expires. FIU needs to create a
new request once the previous request has expired.
FIU should use the AA open APIs to build both these flows. Please refer to the ReBIT technical
standard for details of the APIs.
6.5.1 One-time
The consent has been given by user for only one time sharing. For one-time data share the
FIU initiates the request. AA requests the corresponding FIP for the data as specified in the
consent artefact. Once FIP returns the data, AA notifies the FIU. FIU calls AA API to fetch the
data. Since AA will store this information only up to certain period, FIU should fetch the data
within that period. Beyond this period, FIU needs to initiate this request again, provided the
consent artefact is still valid.
6.5.2 Periodic
The consent has been given by user for periodic data sharing. The consent artefact should also
specify the start time, frequency and total period for which data needs to be shared. FIU
initiates this data share using an API call. After that AA manages the data share for the entire
period. At every interval, AA triggers the data request by initiating a call to FIP. Once FIP
returns the data, AA notifies the FIU. FIU calls AA API to fetch the data. Since AA will store this
information up to 72 hours, FIU should fetch the data within that period. Beyond this period,
User needs to initiate this request again, using the same consent artefact but providing the
period for the data. The consent artefact needs to be valid at the time of this request.
In the FIU web portal provided by AA, FIU should be able to manage the lifecycle of all consents.
It should be able to create a consent request to a user, view all consents which are requested to
the users, consent artefacts, current status of consents, data delivery status, etc.
In this flow FIU should be able to manage its profile details like name, contact address, emails etc.
6.8 Analytics
The FIU is provided with a analytics dashboard showing details about the transactions made,
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 48 of 109
1) Completed & Pending transactions for FIU-initiated flow
2) Consent statistics
The FIU is provided with a payment dashboard showing details about the payments,
1. Itemized monthly bills for all chargeable transactions.
2. Paid or Unpaid bill details
6.10 Notification
FIU receives notification on various events from AA through API call-backs. Examples of such
notifications are,
● Consent requests approved by User
● Consent requests rejected by User
● Data available for FIU
7. FIP Flows
The following are the primary flows for FIP. FIPs need to implement and expose APIs for the
following use cases.
7.1 Account Discovery & Linkage
During the discovery flow, FIP should be able to list all accounts held by an user, using the
registered mobile number, name, address, customer relationship number or a combination of
them. In the Linkage flow, when a user links one or more of his/her FIP accounts with AA, the
user’s identify must be verified by FIP. Once FIP verifies the user, the account can be linked
to the user’s profile in AA.
For all active consent artefacts, AA sends a request for data to FIP. FIP must accept and
validate the request against the consent artefact and return the required data in real time.
The returned data should be in machine readable XML format encrypted. The response should
be digitally signed.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 49 of 109
8. Account Aggregator Admin Flow
AA should provide a web portal for AA admin. There would be three primary sections,
This dashboard should list details of all FIUs which have registered with the AA platform. The
following are few information which will be available in the dashboard. More information can be
added as required.
1) FIU profile details
This dashboard should list details of all FIPs with which AA has partnered with to retrieve user’s
financial information. These FIPs can be of various types and under various regulatory bodies. The
following are few information which will be available in the dashboard. More information can be
added as required.
1) FIP Profile details
Following are some of the information which will be available in this dashboard. More information
can be added as required.
1) Total number of registered users
2) Roles and Permissions
a) Different Roles configured in the system
b) Permissions associated with the Roles
c) Details of users who have Admin Role and Business User Role
9. Business Reporting
AA Management team will require visibility into the business functions of AA. Business team
should therefore define a set of KPIs and charts which are relevant for AA business. One or more
dashboards should be created to show these KPIs and trend charts. These metrics should be as
accurate as possible, collected and processed in near-real time. Some of the business KPIs can
be,
● FIU metrics
○ Number of FIU signups
○ Number of active FIUs
○ List of FIUs along with status
○ Total number of successful, failed data requests from FIU.
○ Total number of consent requests from FIU
● FIP metrics
○ List of FIPs
○ Total number of successful, failed data requests served by an FIP
● User metrics
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 50 of 109
○ Number of User signups
○ Number of active Users
○ Number of users whose KYC are pending
○ Total number of successful, failed data requests from Users.
○ Total number of consents created and approved by Users
○ Geographic and Demographic distribution of various metrics.
Dashboard should also provide trend charts for individual metrics and drill down across various
dimensions like FIU, FIP, etc. Business Reporting should be available only to selected users.
Micro services should be designed with API-first approach, i.e. they should define clean API
contracts which can be used by other micro services to communicate. APIs should be
versioned appropriately so that changes can be incorporated with newer versions.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 51 of 109
11.4 Minimalist and Evolutionary Architecture
The design should be simple and minimalistic. It should not present adoption barriers for the
ecosystem. The design of the systems should be evolutionarily - their capabilities should be
built incrementally while allowing for rapid adoption.
Security of information and privacy of customer’s data are extremely important due to the nature
of the application.
AA platform should also comply to the NESL information security policy, which will be shared
along with the service agreement with the successful bidder. All APIs specified by AA needs to
follow the security guidelines as mentioned above. All API requests and responses need to be
digitally signed by the requester for non-repudiation.
A good guideline for managing security in REST APIs is provided by the OWASP (Open Web
Application Security Project) community:
https://www.owasp.org/index.php/REST_Security_Cheat_Sheet
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 52 of 109
12. Architecture of Account Aggregator Server
12.1 Architecture
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 53 of 109
12.1.2 Functional Architecture
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 54 of 109
12.2 Components and Services
The following components and services should define the Account Aggregator system.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 55 of 109
12.2.7 Identity & Authentication
12.2.7.2.2 API
While programmatically calling AA APIs for data and consent, FIU should sign each API call using
the secret access key. This is used to validate the FIU.
12.2.8 Authorization
The service manages the roles and permissions for all types of users on the platform. Different
types of user roles are
1) Users
2) Administrator
3) Business User
Each role has specific set of permissions. A user can have a combination of one or more roles. A
user having a “Business” role will be able to see all Business Reports. By default, all users
registering with the AA platform will have “Users” role. A user with “Administrator” role will be
seeded to the system. The Administrator then can assign any other role as required to any user.
The lifecycle of consent artefacts is managed by Consent Management Service. When user
approves and digitally sign the artefact, it is stored by AA. Digitally signed Consent Artefacts are
also shared with FIPs for subsequent verification. If FIUs have requested for the data share, then
the corresponding approved and verified artefacts, will also be shared with FIUs. When a consent
is revoked or it expires; data should no more be shared based on the same consent. Appropriate
notifications should be sent to FIU, User, FIPs about this. All digitally signed consent artefacts,
should be also archived so that they can be accessed at later stage if needed
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 56 of 109
The data flow service manages the entire financial information flow between FIP ->AA and AA ->
User and AA->FIU. It is an asynchronous flow. When FIU or User sends a request, it validates and
forwards the requests to FIP. Sometime later, FIP notifies AA that the data is available. AA pulls
the data and stores it in its transient store and notifies FIU or User about the availability of data.
User can also view the status of the requests in the app. FIU or User then pulls data from AA. The
data flowing through AA is encrypted and transient in nature. AA will need to provide a strict time
bound by which the data needs to be fetched by user or FIU. After that AA has to ensure that the
data is deleted from its transient store. The data will be stored in the transient store up to a
maximum of 72 hours. The data flow will generally be of two types:
One time
Periodic
For one-time data access, after the consent is created and approved, FIU initiates the request for
data. For periodic data access, after the consent is created and approved, AA manages and
initiates the data requests to FIPs for the entire period.
12.2.11.1 Data-in-transit
The financial information that is shared by FIP to User or FIU, needs to be fully encrypted as it
passes through AA. None of the AA components and services should be able to decrypt and
read any of the financial information. This data should be encrypted using cryptographic
algorithms by FIP and can only be decrypted by the original requester, User or FIU. The details
of the algorithm used to encrypt the data from FIP to FIU and User is described here.
Data shared as part of the data flow will be secured using an encryption mechanism that
ensures perfect forward secrecy. This means that even if any of the key materials stored at
FIPs or FIUs (either long-term private keys or session keys) are compromised at a given point
in time, data that was exchanged in the past (i.e. before that point in time) would not be
possible to decipher. This is a strong guarantee of secrecy which is necessary to ensure for
financial data.
We describe the mechanism here; corresponding APIs are in the appendix. The mechanism
uses Diffie-Hellman Key Exchange (DHE). DHE is used in many Internet protocols (like SSH and
TLS) for establishing shared secret keys between remote parties.
1) When making the request for data, FIU picks a set of Diffie-Hellman (DH) parameters,
generates a DH key pair (dhsk(U), dhpk(U)) (which is a short-term public-private key pair)
and generates a 32-byte random value, rand(U). It sends these values to AA, along with
the data request via a digitally-signed API call.
2) AA ensures that the data request is in keeping with the terms of the artefact and, if so, it
forwards the request to the FIP, again via a digitally-signed API call.
3) FIP checks that the consent artefact is valid (as above), that the data being requested is in
keeping with the terms of the artefact and if so, it generates a fresh DH public-private key
pair in the same group as specified by the FIU ((dhsk(P), dhpk(P)) and also a 32-byte
random value rand(P). Using dhpk(U) and dhsk(P), it computes a DH shared key dhk(U,P)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 57 of 109
and using (dhk(U,P), rand(U), rand(P)) as key material, it computes a 256-bit session key
sk(U,P) which is used to encrypt the data sent from FIP to FIU. To ensure integrity of the
encrypted data, FIP also signs the encrypted data using its long-term private key before
sending it to AA.
The DHE mechanism ensures that the shared key dh(U,P) can also be computed at the other
end by the FIU using the values dhpk(P) (FIP’s DH public key) and dhsk(U) (FIU’s DH private
key). For this reason, the FIP must accompany the encrypted data with dhpk(P) and rand(P)
when sending it. All values must be digitally signed using FIP’s long-term private key so that
the FIU can verify the validity of the same.
At the end of the data flow, both FIU and FIP must delete all short-term key material that was
generated in the process. This includes all DH key pairs, random nonces and the session key.
This step is necessary for ensuring forward secrecy.
The exact same flow would work except that all actions performed by the FIU would instead
be performed by the AA app on the User’s phone. The following guidelines are to be followed
in implementing the AA app, if the AA decides to offer the User initiated flow functionality:
1) DHE key pairs must be generated locally on the User’s phone and the private keys from
the DHE key pairs must never be communicated to the AA server.
2) The decryption of the User’s data must also take place on the User’s phone and the
decrypted data (User’s financial information) must never be communicated to the AA
server.
3) As stated above, the private keys must be deleted from the User’s phone at the end of the
data flow.
The AA app should be implemented in a manner such that it can be easily verified (by an
auditor) that the above three guidelines are followed.
1. At the beginning of each period, FIU generates n key pairs (dhsk(U)[1], dhpk(U)[1]), ...
, (dhsk(U)[n], dhpk(U)[n]) where n is the number of data accesses in that period. It
generates a random nonce rand(U) and sends the selected DH parameters, the value
n, the n DH public keys dhpk(U)[1..n], the start-date and end-date of the period, the
value rand(U) and the consent artefact to AA via a digitally-signed API call.
2. AA forwards the same, after validation, to FIP via a digitally-signed API call
3. FIP stores the DH key pairs and rand(U) (and other fields).
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 58 of 109
For the “i”th instance of data access in a period (i ranging from 1 to n), FIP generates a fresh
DH key pair (dhsk(P)[i], dhpk(P)[i]) and a random nonce rand(P)[i] and computes a DH shared
key dhk(U,P)[i] and a session key sk(U,P)[i] using these values and the “i”th public key shared
by FIU (i.e. dhpk(U)[i]) earlier. The data encryption and transmission then happens as usual,
after which the DH keys dhsk(U)[i], dhsk(P)[i], and the session key sk(U,P) are deleted by the
respective entities.
12.2.11.2 Data-at-Rest
Both AA and User should digitally sign and encrypt the consent artefacts and store it. If any
Aadhaar/PAN/Account (or any other confidential) information is used as part of user profile, it
should be encrypted and stored in separate data vault. These should also be tokenized and the
reference keys should be used elsewhere in all other services where this information are needed.
The encryption key should be in HSM, which should be used for all encryption and decryption.
This data vault should be in a secured network zone and access to it should be controlled only
through a single micro service with proper access control mechanism. It should not be
computationally feasible to recover this confidential information from the reference keys.
Audit Management service manages the audit data by providing a tamper-resistant way to log
these events. It persists the audit data for certain period of time and provides a mechanism to
retrieve when necessary. A distributed ledger, e.g. blockchain, can be used to store these
transaction records immutably for audit purpose.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 59 of 109
12.2.15 KYC Processing
When a user registers with AA, KYC needs be done. This service handles the KYC in two ways.
The service calls the Aaadhar based e-KYC APIs in real time.
The service uploads and stores the required documents submitted by the user. It also triggers
a business process workflow which manually validates the required documents and performs
the KYC of the customers. Once KYC is done, user’s account is activated. The KYC details are
stored securely.
ETL processes should be designed to consume the transaction metadata and compute metrics in
real time for various reports shown to AA or FIU or Users. These aggregated metrics should be
stored and shown in dashboards.
This service should be able to process all the transaction metadata and based on the business
model, calculate the detailed billing information for the customers. It should also generate invoice
for each customer. The service can use existing billing solution (e.g Tally) for this purpose.
12.2.18 Payment
This service is responsible for providing a payment interface to both Users and FIUs. It integrates
with payment gateway to process the payments from the customers.
All components and services within AA should be monitored in real time (< 1sec). System level
metrics and Application level metrics as appropriate, should be collected which can be plotted on
monitoring dashboard to look at the historical trends. AA should also monitor the availability of
services from FIP, using status APIs hosted by FIPs. An Alerting system needs to be built to alert
on various operational and application metrics when they go beyond configurable thresholds.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 60 of 109
● SMS Gateway
● Payment Gateway
● Aadhaar based eKYC
● Aadhaar based eSign
● PAN validation service from Income Tax department of Govt. of India
Tested Integration code for the above services except eKYC are available with NESL and can be
reused by the vendor.
Deposits
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:aa="http://api.rebit.org.in/FISchema/deposit" elementFormDefault="qualified"
targetNamespace="http://api.rebit.org.in/FISchema/deposit"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
<!-- -->
<xs:simpleType name="SummaryType">
<xs:restriction base="xs:string">
<xs:enumeration value="deposit"/>
</xs:restriction>
</xs:simpleType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 61 of 109
<xs:simpleType name="AccountType">
<xs:restriction base="xs:string">
<xs:enumeration value="savings"/>
<xs:enumeration value="current"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldersType">
<xs:restriction base="xs:string">
<xs:enumeration value="single"/>
<xs:enumeration value="joint"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Date">
<xs:restriction base="xs:date"></xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryIfsc">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0][0-9][0-9][0-9][0-9][0-
9][0-9]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryFacility">
<xs:restriction base="xs:string">
<xs:enumeration value="OD"/>
<xs:enumeration value="CC"/>
<xs:enumeration value="DLOD"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderAadhar">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderEmail">
<xs:restriction base="xs:string">
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-
9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:element name="Account">
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 62 of 109
<xs:complexType>
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="aa:Summary" minOccurs="0"/>
<xs:element ref="aa:Transactions" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:NCName"/>
<xs:attribute name="type" use="required" type="aa:SummaryType"/>
</xs:complexType>
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
</xs:sequence>
<xs:attribute name="branch" use="required"/>
<xs:attribute name="currentBalance" use="required"/>
<xs:attribute name="currentODLimit" use="required"/>
<xs:attribute name="facility" use="required" type="aa:SummaryFacility"/>
<xs:attribute name="ifscCode" use="required" type="aa:SummaryIfsc"/>
<xs:attribute name="micrCode" use="required"/>
<xs:attribute name="openingDate" use="required" type="aa:Date"/>
<xs:attribute name="type" use="required" type="aa:AccountType"/>
</xs:complexType>
</xs:element>
<xs:element name="Holders">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holder"/>
</xs:sequence>
<xs:attribute name="type" use="required" type="aa:HoldersType"/>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required"/>
<xs:attribute name="email" use="required" type="aa:HolderEmail"/>
<xs:attribute name="landline" use="required"/>
<xs:attribute name="mobile" use="required"/>
<xs:attribute name="name" use="required"/>
<xs:attribute name="order" use="required"/>
<xs:attribute name="pan" use="required" type="aa:HolderPan"/>
</xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 63 of 109
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="aa:Date"/>
<xs:attribute name="startDate" use="required" type="aa:Date"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:float"/>
<xs:attribute name="balance" use="required" type="xs:float"/>
<xs:attribute name="date" use="required" type="aa:Date"/>
<xs:attribute name="id" use="required"/>
<xs:attribute name="narration" use="required"/>
<xs:attribute name="reference" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Term Deposit
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:aa="http://api.rebit.org.in/FISchema/term_deposit" elementFormDefault="qualified"
targetNamespace="http://api.rebit.org.in/FISchema/term_deposit"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
<xs:simpleType name="AccountType">
<xs:restriction base="xs:string">
<xs:enumeration value="savings"/>
<xs:enumeration value="current"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderAadhar">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderEmail">
<xs:restriction base="xs:string">
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 64 of 109
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-
9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:element name="Account">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Summary"/>
<xs:element ref="aa:Transactions"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:NCName"/>
<xs:attribute name="type" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
</xs:sequence>
<xs:attribute name="accountType" use="required" type="aa:AccountType"/>
<xs:attribute name="compoundingFrequency" use="required"/>
<xs:attribute name="currentValue" use="required"/>
<xs:attribute name="description" use="required"/>
<xs:attribute name="interestComputation" use="required"/>
<xs:attribute name="interestOnMaturity" use="required"/>
<xs:attribute name="interestPayout" use="required"/>
<xs:attribute name="interestPeriodicPayoutAmount" use="required"/>
<xs:attribute name="interestRate" use="required"/>
<xs:attribute name="maturityDate" use="required"/>
<xs:attribute name="openingDate" use="required"/>
<xs:attribute name="principalAmount" use="required"/>
<xs:attribute name="recurringAmount" use="required"/>
<xs:attribute name="recurringDepositDay" use="required"/>
<xs:attribute name="tenureDays" use="required"/>
<xs:attribute name="tenureMonths" use="required"/>
<xs:attribute name="tenureYears" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Holders">
<xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 65 of 109
<xs:sequence>
<xs:element ref="aa:Holder"/>
</xs:sequence>
<xs:attribute name="type" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required"/>
<xs:attribute name="email" use="required" type="aa:HolderEmail"/>
<xs:attribute name="landline" use="required"/>
<xs:attribute name="mobile" use="required" type="xs:string"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="pan" use="required" type="aa:HolderPan"/>
<xs:attribute name="rank" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="id" use="required"/>
<xs:attribute name="narration" use="required"/>
<xs:attribute name="type" use="required"/>
<xs:attribute name="valueDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
</xs:schema>
Mutual Fund
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 66 of 109
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:aa="http://api.rebit.org.in/FISchema/mutual_funds"
elementFormDefault="qualified"
targetNamespace="http://api.rebit.org.in/FISchema/mutual_funds"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
<!-- -->
<xs:simpleType name="HoldingEmail">
<xs:restriction base="xs:string">
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldingPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-
9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldingType">
<xs:restriction base="xs:string">
<xs:enumeration value="sole"/>
<xs:enumeration value="joint"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldingNominee">
<xs:restriction base="xs:string">
<xs:enumeration value="notRegistered"/>
<xs:enumeration value="name"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionType">
<xs:restriction base="xs:string">
<xs:enumeration value="changeOfFolio"/>
<xs:enumeration value="purchase"/>
<xs:enumeration value="SIPPurchase"/>
<xs:enumeration value="switchIn"/>
<xs:enumeration value="systematicTransferIn"/>
<xs:enumeration value="switchOut"/>
<xs:enumeration value="redeem"/>
<xs:enumeration value="systematicTransferout"/>
<xs:enumeration value="systematicWithdrawal"/>
<xs:enumeration value="dividendReinvestment"/>
<xs:enumeration value="dividendPayout"/>
<xs:enumeration value="reversal"/>
<xs:enumeration value="transferIn"/>
<xs:enumeration value="dematIn"/>
<xs:enumeration value="transferOut"/>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 67 of 109
<xs:enumeration value="dematOut"/>
<xs:enumeration value="others"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:element name="Account">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holdings"/>
<xs:element ref="aa:Transactions"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"
fixed="mutualfunds"/>
</xs:complexType>
</xs:element>
<xs:element name="Holdings">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holding"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Holding">
<xs:complexType>
<xs:attribute name="amc" use="required" type="xs:string"/>
<xs:attribute name="amfiCode" use="required" type="xs:string"/>
<xs:attribute name="email" use="required" type="aa:HoldingEmail"/>
<xs:attribute name="folioNo" use="required" type="xs:string"/>
<xs:attribute name="holdingType" use="required" type="aa:HoldingType"/>
<xs:attribute name="holder1Name" use="required" type="xs:string"/>
<xs:attribute name="holder2Name" use="required" type="xs:string"/>
<xs:attribute name="isin" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="nominee" use="required" type="aa:HoldingNominee"/>
<xs:attribute name="pan" use="required" type="aa:HoldingPan"/>
<xs:attribute name="registrar" use="required" type="xs:string"/>
<xs:attribute name="scheme" use="required" type="xs:string"/>
<xs:attribute name="ucc" use="required" type="xs:string"/>
<xs:attribute name="units" use="required" type="xs:string"/>
<xs:attribute name="value" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 68 of 109
<xs:element ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="amc" use="required" type="xs:string"/>
<xs:attribute name="amfiCode" use="required" type="xs:string"/>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="cost" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="folioNo" use="required" type="xs:string"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="isin" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="scheme" use="required" type="xs:string"/>
<xs:attribute name="stt" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="aa:TransactionType"/>
<xs:attribute name="ucc" use="required" type="xs:string"/>
<xs:attribute name="units" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
Insurance
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 69 of 109
<xs:enumeration value="home"/>
<xs:enumeration value="others"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryPolicyType">
<xs:restriction base="xs:string">
<xs:enumeration value="term"/>
<xs:enumeration value="endowment"/>
<xs:enumeration value="money back"/>
<xs:enumeration value="pension plan"/>
<xs:enumeration value="whole life"/>
<xs:enumeration value="children's plan"/>
<xs:enumeration value="loan cover term"/>
<xs:enumeration value="comprehensive"/>
<xs:enumeration value="third party"/>
<xs:enumeration value="others"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryCoverType">
<xs:restriction base="xs:string">
<xs:enumeration value="term rop"/>
<xs:enumeration value="critical illness"/>
<xs:enumeration value="health"/>
<xs:enumeration value="self"/>
<xs:enumeration value="family"/>
<xs:enumeration value="Building"/>
<xs:enumeration value="Contents"/>
<xs:enumeration value="others"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummarypremiumFrequency">
<xs:restriction base="xs:string">
<xs:enumeration value="monthly"/>
<xs:enumeration value="quarterly"/>
<xs:enumeration value="halfYearly"/>
<xs:enumeration value="yearly"/>
<xs:enumeration value="oneTime"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldersType">
<xs:restriction base="xs:string">
<xs:enumeration value="single"/>
<xs:enumeration value="joint"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldersRank">
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 70 of 109
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderAadhar">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderEmail">
<xs:restriction base="xs:string">
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-
9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:element name="Account">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Summary"/>
<xs:element ref="aa:Transactions"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"
fixed="insurance"/>
</xs:complexType>
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
<xs:element ref="aa:Riders"/>
<xs:element ref="aa:MoneyBacks"/>
<xs:element ref="aa:Covers"/>
</xs:sequence>
<xs:attribute name="coverAmount" use="required" type="xs:string"/>
<xs:attribute name="coverType" use="required"
type="aa:SummaryCoverType"/>
<xs:attribute name="maturityBenefit" use="required" type="xs:string"/>
<xs:attribute name="nextPremiumDueDate" type="xs:date"/>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 71 of 109
<xs:attribute name="policyDescription" type="xs:string"/>
<xs:attribute name="policyExpiryDate" type="xs:date"/>
<xs:attribute name="policyName" use="required" type="xs:string"/>
<xs:attribute name="policyStartDate" use="required" type="xs:date"/>
<xs:attribute name="policyType" use="required"
type="aa:SummaryPolicyType"/>
<xs:attribute name="premiumAmount" use="required" type="xs:string"/>
<xs:attribute name="premiumFrequency" use="required"
type="aa:SummarypremiumFrequency"/>
<xs:attribute name="premiumPaymentMonths" use="required"
type="xs:string"/>
<xs:attribute name="premiumPaymentYears" use="required"
type="xs:string"/>
<xs:attribute name="sumAssured" use="required" type="xs:string"/>
<xs:attribute name="tenureMonths" use="required" type="xs:string"/>
<xs:attribute name="tenureYears" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="aa:SummaryTypes"/>
</xs:complexType>
</xs:element>
<xs:element name="Holders">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holder"/>
</xs:sequence>
<xs:attribute name="type" use="required" type="aa:HoldersType"/>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required" type="xs:string"/>
<xs:attribute name="email" use="required" type="aa:HolderEmail"/>
<xs:attribute name="landline" use="required" type="xs:string"/>
<xs:attribute name="mobile" use="required" type="xs:integer"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="pan" use="required" type="aa:HolderPan"/>
<xs:attribute name="rank" use="required" type="aa:HoldersRank"/>
</xs:complexType>
</xs:element>
<xs:element name="Riders">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Rider"/>
</xs:sequence>
</xs:complexType>
</xs:element>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 72 of 109
<xs:element name="Rider">
<xs:complexType>
<xs:attribute name="policyEndDate" use="required" type="xs:date"/>
<xs:attribute name="policyStartDate" use="required" type="xs:date"/>
<xs:attribute name="premiumAmount" use="required" type="xs:string"/>
<xs:attribute name="riderType" use="required" type="xs:string"/>
<xs:attribute name="sumAssured" use="required" type="xs:string"/>
<xs:attribute name="tenureMonths" use="required" type="xs:string"/>
<xs:attribute name="tenureYears" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="MoneyBacks">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:MoneyBack"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MoneyBack">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="description" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Covers">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Cover"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Cover">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="description" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 73 of 109
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
Bonds
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 74 of 109
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-
9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HoldersRank">
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryinterestComputation">
<xs:restriction base="xs:string">
<xs:enumeration value="simple"/>
<xs:enumeration value="compound"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryinterestCompoFrequency ">
<xs:restriction base="xs:string">
<xs:enumeration value="monthly"/>
<xs:enumeration value="quarterly"/>
<xs:enumeration value="halfYearly"/>
<xs:enumeration value="yearly"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryInterestPayout">
<xs:restriction base="xs:string">
<xs:enumeration value="monthly"/>
<xs:enumeration value="quarterly"/>
<xs:enumeration value="halfYearly"/>
<xs:enumeration value="yearly"/>
<xs:enumeration value="onMaturity"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TransactionTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="opening"/>
<xs:enumeration value="interest"/>
<xs:enumeration value="tds"/>
<xs:enumeration value="installment"/>
<xs:enumeration value="closing"/>
<xs:enumeration value="others"/>
</xs:restriction>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 75 of 109
</xs:simpleType>
<!-- -->
<xs:element name="Account">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Summary"/>
<xs:element ref="aa:Transactions"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="type" type="xs:string" fixed="bonds"/>
</xs:complexType>
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
</xs:sequence>
<xs:attribute name="FIP" use="required" type="xs:string"/>
<xs:attribute name="compoundingFrequency" use="required"
type="aa:SummaryinterestCompoFrequency"/>
<xs:attribute name="coupon" use="required" type="xs:string"/>
<xs:attribute name="creditRating" use="required" type="xs:string"/>
<xs:attribute name="currentValue" use="required" type="xs:string"/>
<xs:attribute name="description" use="required" type="xs:string"/>
<xs:attribute name="faceValue" use="required" type="xs:string"/>
<xs:attribute name="interestComputation" use="required"
type="aa:SummaryinterestComputation"/>
<xs:attribute name="interestOnMaturity" use="required" type="xs:string"/>
<xs:attribute name="interestPayout" use="required"
type="aa:SummaryInterestPayout"/>
<xs:attribute name="interestPeriodicPayoutAmount" use="required"
type="xs:string"/>
<xs:attribute name="interestRate" use="required" type="xs:string"/>
<xs:attribute name="isin" use="required" type="xs:string"/>
<xs:attribute name="issueDate" use="required" type="xs:date"/>
<xs:attribute name="maturityDate" use="required" type="xs:date"/>
<xs:attribute name="principalAmount" use="required" type="xs:string"/>
<xs:attribute name="quote" use="required" type="xs:string"/>
<xs:attribute name="quoteDate" use="required" type="xs:date"/>
<xs:attribute name="symbol" use="required" type="xs:string"/>
<xs:attribute name="taxable" use="required" type="aa:SummaryTaxable"/>
<xs:attribute name="tenureDays" use="required" type="xs:string"/>
<xs:attribute name="tenureMonths" use="required" type="xs:string"/>
<xs:attribute name="tenureYears" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 76 of 109
<xs:element name="Holders">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="aa:Holder"/>
</xs:sequence>
<xs:attribute name="type" use="required" type="aa:HoldersType"/>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required" type="xs:string"/>
<xs:attribute name="email" use="required" type="aa:HolderEmail"/>
<xs:attribute name="landline" type="xs:string"/>
<xs:attribute name="mobile" use="required" type="xs:integer"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="pan" use="required" type="aa:HolderPan"/>
<xs:attribute name="rank" use="required" type="aa:HoldersRank"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" type="xs:string"/>
<xs:attribute name="type" type="aa:TransactionTypes"/>
<xs:attribute name="valueDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
</xs:schema>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 77 of 109
Equities
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 78 of 109
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
</xs:sequence>
<xs:attribute name="cashPosition" use="required" type="xs:string"/>
<xs:attribute name="openingDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Holders">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holder"/>
</xs:sequence>
<xs:attribute name="type" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required" type="xs:string"/>
<xs:attribute name="email" use="required" type="xs:string"/>
<xs:attribute name="landline" use="required" type="xs:string"/>
<xs:attribute name="mobile" use="required" type="xs:string"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="pan" use="required" type="aa:HoldingPan"/>
<xs:attribute name="rank" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Transaction"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Transaction">
<xs:complexType>
<xs:attribute name="bseSymbol" use="required" type="xs:string"/>
<xs:attribute name="companyName" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="exchange" use="required" type="xs:string"/>
<xs:attribute name="id" use="required" type="xs:string"/>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 79 of 109
<xs:attribute name="isin" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="nseSymbol" use="required" type="xs:string"/>
<xs:attribute name="otherTaxes" use="required" type="xs:string"/>
<xs:attribute name="rate" use="required" type="xs:string"/>
<xs:attribute name="stt" use="required" type="xs:string"/>
<xs:attribute name="totalCharge" use="required" type="xs:string"/>
<xs:attribute name="tradeValue" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="aa:TransactionsType"/>
<xs:attribute name="units" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
</xs:simpleType>
<xs:simpleType name="SummaryTier1SchemePreferenceType">
<xs:restriction base="xs:string">
<xs:enumeration value="auto"/>
<xs:enumeration value="active"/>
</xs:restriction>
</xs:simpleType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 80 of 109
<xs:simpleType name="SummaryTier2Status">
<xs:restriction base="xs:string">
<xs:enumeration value="active"/>
<xs:enumeration value="frozen"/>
<xs:enumeration value="deactivated"/>
<xs:enumeration value="na"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SummaryTier2SchemePreferenceType">
<xs:restriction base="xs:string">
<xs:enumeration value="auto"/>
<xs:enumeration value="active"/>
<xs:enumeration value="na"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderAadhar">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderEmail">
<xs:restriction base="xs:string">
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HolderPan">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
<!-- -->
<xs:element name="Account">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Summary"/>
<xs:element ref="aa:Holdings"/>
<xs:element ref="aa:Transactions"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"/>
</xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 81 of 109
</xs:element>
<xs:element name="Summary">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holders"/>
<xs:element ref="aa:SchemeChoices"/>
</xs:sequence>
<xs:attribute name="currentValue" use="required"/>
<xs:attribute name="debtAssetValue" use="required"/>
<xs:attribute name="equityAssetValue" use="required"/>
<xs:attribute name="openingDate" use="required"/>
<xs:attribute name="otherAssetValue" use="required"/>
<xs:attribute name="status" use="required" type="aa:SummaryStatus"/>
<xs:attribute name="tier1FreeUnits" use="required"/>
<xs:attribute name="tier1InvestmentCost" use="required"/>
<xs:attribute name="tier1InvestmentValue" use="required"/>
<xs:attribute name="tier1NAVDate" use="required"/>
<xs:attribute name="tier1SchemePreferenceType" use="required"
type="aa:SummaryTier1SchemePreferenceType"/>
<xs:attribute name="tier1Status" use="required" type="aa:SummaryTier1Status"/>
<xs:attribute name="tier2FreeUnits" use="required"/>
<xs:attribute name="tier2InvestmentCost" use="required"/>
<xs:attribute name="tier2InvestmentValue" use="required"/>
<xs:attribute name="tier2NAVDate" use="required"/>
<xs:attribute name="tier2SchemePreferenceType" use="required"
type="aa:SummaryTier2SchemePreferenceType"/>
<xs:attribute name="tier2Status" use="required" type="aa:SummaryTier2Status"/>
</xs:complexType>
</xs:element>
<xs:element name="Holders">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Holder"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Holder">
<xs:complexType>
<xs:attribute name="aadhaar" use="required" type="aa:HolderAadhar"/>
<xs:attribute name="address" use="required" type="xs:string"/>
<xs:attribute name="email" use="required" type="aa:HolderEmail"/>
<xs:attribute name="landline" use="required" type="xs:string"/>
<xs:attribute name="mobile" use="required" type="xs:string"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="pan" use="required" type="aa:HolderPan"/>
</xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 82 of 109
</xs:element>
<xs:element name="SchemeChoices">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:SchemeChoice"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SchemeChoice">
<xs:complexType>
<xs:attribute name="allocationPercent" use="required" type="xs:string"/>
<xs:attribute name="pfmId" use="required" type="xs:string"/>
<xs:attribute name="pfmName" use="required" type="xs:string"/>
<xs:attribute name="schemeId" use="required" type="xs:string"/>
<xs:attribute name="schemeName" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Holdings">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier1Holdings"/>
<xs:element ref="aa:Tier2Holdings"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier1Holdings">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier1Holding"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier1Holding">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="amountInTransition" use="required" type="xs:string"/>
<xs:attribute name="blockedUnits" use="required" type="xs:string"/>
<xs:attribute name="freeUnits" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="schemeName" use="required" type="xs:string"/>
<xs:attribute name="totalUnits" use="required" type="xs:string"/>
<xs:attribute name="totalValueOfScheme" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Tier2Holdings">
<xs:complexType>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 83 of 109
<xs:sequence>
<xs:element ref="aa:Tier2Holding"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier2Holding">
<xs:complexType>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="amountInTransition" use="required" type="xs:string"/>
<xs:attribute name="blockedUnits" use="required"/>
<xs:attribute name="freeUnits" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="schemeName" use="required" type="xs:string"/>
<xs:attribute name="totalUnits" use="required" type="xs:string"/>
<xs:attribute name="totalValueOfScheme" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Transactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier1SchemeTransactions"/>
<xs:element ref="aa:Tier2SchemeTransactions"/>
<xs:element ref="aa:Tier1InvestmentTransactions"/>
<xs:element ref="aa:Tier2InvestmentTransactions"/>
</xs:sequence>
<xs:attribute name="endDate" use="required" type="xs:date"/>
<xs:attribute name="startDate" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="Tier1SchemeTransactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier1SchemeTransaction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier1SchemeTransaction">
<xs:complexType>
<xs:attribute name="allocationPercent" use="required" type="xs:string"/>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="cumulativeUnits" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="schemeName" use="required" type="xs:string"/>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 84 of 109
<xs:attribute name="type" use="required" type="xs:string"/>
<xs:attribute name="units" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Tier2SchemeTransactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier2SchemeTransaction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier2SchemeTransaction">
<xs:complexType>
<xs:attribute name="allocationPercent" use="required" type="xs:string"/>
<xs:attribute name="amount" use="required" type="xs:string"/>
<xs:attribute name="cumulativeUnits" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:string"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="nav" use="required" type="xs:string"/>
<xs:attribute name="schemeName" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"/>
<xs:attribute name="units" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Tier1InvestmentTransactions">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa:Tier1InvestmentTransaction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier1InvestmentTransaction">
<xs:complexType>
<xs:attribute name="date" use="required" type="xs:string"/>
<xs:attribute name="employerContribution" use="required" type="xs:string"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="subscriberContribution" use="required" type="xs:string"/>
<xs:attribute name="totalContribution" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Tier2InvestmentTransactions">
<xs:complexType>
<xs:sequence>
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 85 of 109
<xs:element ref="aa:Tier2InvestmentTransaction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tier2InvestmentTransaction">
<xs:complexType>
<xs:attribute name="date" use="required" type="xs:date"/>
<xs:attribute name="employerContribution" use="required" type="xs:string"/>
<xs:attribute name="id" use="required" type="xs:string"/>
<xs:attribute name="narration" use="required" type="xs:string"/>
<xs:attribute name="subscriberContribution" use="required" type="xs:string"/>
<xs:attribute name="totalContribution" use="required" type="xs:string"/>
<xs:attribute name="type" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
Application data stores should be deployed with replication enabled. This would ensure higher
availability of services accessing any datastore. Data from all application data stores should be
backed up periodically and archived to ensure that in case of data loss, it can be recovered from
the archive. The archive storage should be highly durable, reliable and available. In case the data
has Personally Identifiable Information, it needs to be securely stored.
The transaction patterns between AA, FIU and User should be monitored for any fraudulent
activity. Any unusual access patterns, too frequent access, over consenting, consent fatigue, and
other such anomalies must be identified and monitored.
18. Localization
The mobile app and the web portal for the user have to support Localization for various Indian
Languages. Initially the implementation would be for:
1. English
2. Hindi
Later, support for other Indian regional languages will be added.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 86 of 109
19. Digital Signatures
19.1 FIU
FIU can login to the web portal provided by AA and generate a private-public key. AA stores
the public key at the server end. When FIU is calling the AA APIs programmatically it can
digitally sign the requests using the private key.
When a user registers in the mobile app, a public-private key pair is generated. The private
key is stored locally in the system, encrypted by user’s password. The public key is stored in
the AA backend. Similarly, when the user logs into the web portal, a pair of public-private keys
are generated (if none exists on the device). The private key is stored locally in the system,
encrypted using user’s password. All API requests and responses between User App and AA
must be digitally signed using this private key. The consent artefact which is approved by the
user must also be digitally signed using this private key.
All API calls from AA to FIP should be digitally signed using the private key of the AA. FIP will
use the public key of the AA to validate. The public key of AA is available through Central
Registry.
All notification API calls from FIP to AA should be digitally signed using the private key of the
FIP. AA will use the public key of the FIP to validate. The public key of FIPs are available through
Central Registry.
A new build should be deployed into these environments and should be subjected to automated
and manual tests as required. Automated test scripts should be written for end to end testing and
regression testing. Once a build is pushed to production the source code should be tagged with
release dates and version numbers. Test coverages numbers should be measured and tracked for
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 87 of 109
each services for every build. Each of the micro service should have a build and release version
and they should have an API (/v1/build) which will return that information. Every functionality in
the platform should be available as independent service. For e.g. consent framework, should be
available as a micro service. NADL should be able to support current version and the previous
version of any API (in case other participant in the ecosystem uses NADL’s API). For all external
API calls, there should be an emulator, ability to turn off and on, the external API call. i.e. if esign
is used in the platform, there should be ability to turn off esign and place a dummy signature
instead of making the actual call. This will be helpful in testing phase and eliminate availability of
external services. AA platform should adhere to the Master Directive published by the RBI,
throughout the life cycle of the service. The link to the master directive by RBI is provided in the
Reference section.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 88 of 109
23. Infrastructure
23.1 Data Centers
23.2 DC & DR - Business Continuity (This a reference diagram and not the actual one)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 89 of 109
Disclaimer: This is a reference diagram and not the actual one
CPU / RAM (Per VM) Storage Space (Per VM) Operating System
OS Platform: Linux
Database: MySQL
Programming Language: Java (>= 1.8), Python (>=3.6)
Messaging: Kafka
Authentication, Authorization, & Security: OpenLDAP, Cryptography Techniques for
Encryption, Decryption, Key Exchange Protocols
Web-server: Nginx, Apache
Distributed Coordination: Zookeeper
Framework: Spring Boot
Monitoring: Prometheus, Grafana
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 90 of 109
Mobile App: Android, IOS
API Gateway: Kong
Unit Testing: Junit
Devops: Chef/Ansible, Jenkins
Above is an indicative technical stack. NADL will have the final say in the selection of stack.
The APIs should be developer friendly and at minimum the following considerations must be met:
● Developer Portal: It must be publicly accessible and must contain:
○ API Sandbox
○ API Documentation and Reference
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 91 of 109
○ Quick start Guides
○ Open Source Libraries and SDKs
FIPs and AAs may further engage with developers via hackathons and other feedback channels
like a Developer Forum or StackOverflow.
There must be a mechanism in place by AAs to redress grievances of the users. This improves
user satisfaction and builds user trust. The user may record their grievances / provide their
feedback in writing, verbally, or digitally. SLAs must be put in place to ensure prompt response
and necessary escalations in case of delays. Grievance Redressal can be further enabled through
the use of detailed status and error messages in response to each request.
28. References
1. A good guideline for managing security in REST APIs is provided by the OWASP (Open Web
Application Security Project) community:
https://www.owasp.org/index.php/REST_Security_Cheat_Sheet
2. RBI Master Circular:
https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=10598&Mode=0
3. Digital Locker Technology Framework:
http://dla.gov.in/sites/default/files/pdf/DigitalLockerTechnologyFramework%20v1.1.pdf
4. Electronic Consent Framework, Technology Specifications:
http://dla.gov.in/sites/default/files/pdf/MeitY-Consent-Tech-Framework%20v1.1.pdf
5. e-Sign specifications: http://www.cca.gov.in/cca/?q=eSign.html
6. Secure coding guidelines :
https://wiki.mozilla.org/WebAppSec/Secure_Coding_Guidelines#Password_Storage
7. Income Tax Department, Online PAN verification Options,
https://www.incometaxindia.gov.in/Pages/tax-services/online-pan-verification.aspx
(accessed 10 March, 2018)
8. Department of Science & Technology, Government of India. “National Data Sharing and
Accessibility Standards”. https://data.gov.in/sites/default/files/NDSAP.pdf (accessed 2
February,2018)
9. Institute for Development and Research in Banking Technology ( IDRBT). “Certificate
Authority”. http://www.idrbt.ac.in/idrbtca.html (accessed 2 February,2018)
10. Usability Guidelines for web applications
https://www.designprinciplesftw.com/collections/10-usability-heuristics-for-user-interface-
design
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 92 of 109
11. Usability Guidelines for mobile applications
https://developer.apple.com/carplay/human-interface-guidelines/overview/introduction/
https://developer.android.com/design/get-started/principles.html
12. Accessibility Guidelines for web applications
https://www.w3.org/WAI/intro/wcag
https://www.w3.org/standards/webdesign/accessibility
13. Accessibility Guidelines for mobile applications
https://www.w3.org/WAI/mobile/
https://www.w3.org/TR/mobile-accessibility-mapping/
14. Additional guidelines for India provided by Govt. Of India
Indian Accessibility initiative & guidelines(Rights of Persons with Disabilities Act, 2016 (RPD)
https://w3c.github.io/wai-policies-prototype/policies/india/
Guidelines for Indian Government websites: http://web.guidelines.gov.in/
Some features to consider on Accessibility in Indian web:
http://goidirectory.nic.in/accessibilityfeatures.php
http://digitalindia.gov.in/content/accessibility-statement
15. Open API specifications from ReBIT http://api.rebit.org.in/
16. Financial Information Schema https://api.rebit.org.in/schema
17. Open standards framework published by Meity
http://egovstandards.gov.in/sites/default/files/Framework%20for%20Adoption%20of%20O
pen%20Source%20Software%20in%20e-Governance%20Systems.pdf
18. https://tools.ietf.org/html/rfc7519
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 93 of 109
Section – V: Price Bid Format
Part A: Lump sum charges for Development and Deployment of Account Aggregator Software
Manpower required and estimated person-months for implementing a Major Change in the
specifications is provided in the table below as a reference. Bidders are requested to provide the
details in columns E, F & G. The total of Column H (Part B) will be added to Part A for evaluating
the Financial Bid.
Amount Rs.
Area of Expertise / Educational Relevant Number Monthly Applicable Estimated
(Per person
Skill set Qualification Work Charges(P GST Man-months
month charge x
Sr. No. Exp. er Person)
est. man
(years) Rs.
months)
(A) (B) (C) (D) (E) (F) (G)
H = ( E+ F )*G
Graduate in
Comp
1
User Experience Sc/Electronic/E
Design (UX) lectrical 10+ 1 1
Graduate in
Comp
2
Sc/Electronic/E
UI Developer lectrical 5-10 2 3
Graduate in
Comp
3
Java Developer Sc/Electronic/E
(Junior)) lectrical 0-4 4 6
Java Developer Graduate in
4
(Senior) Comp 5 - 10 3 6
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 94 of 109
Sc/Electronic/E
lectrical
Graduate,
Post Graduate
(desirable) in
5
Comp
Sc/Electronic/E
Principal Architect lectrical 12+ 1 4
Graduate in
Comp
6
Sc/Electronic/E
DevOps Lead lectrical 10+ 1 6
Graduate in
Comp
7
Information Sc/Electronic/E
Security Expert lectrical 10+ 1 2
Graduate in
QA with Comp
8
Automation Sc/Electronic/E
Expertise(Junior) lectrical 2-4 2 4
Graduate in
QA with Comp
9
Automation Sc/Electronic/E
Expertise(Senior) lectrical 5-8 1 4
Graduate in
Comp
10
MySQL DBA Sc/Electronic/E
(Junior) lectrical 2-4 1 2
Graduate in
Comp
11
MySQL DBA Sc/Electronic/E
(Senior) lectrical 5 - 10 1 2
Graduate in
Comp
12
Data Engineer Sc/Electronic/E
(Junior) lectrical 4-6 1 4
Graduate in
Comp
13
Data Engineer Sc/Electronic/E
(Senior) lectrical 7 - 12 1 4
14 Project Manager PMP Certified 12+ 1 3
Total of Part A and Part B Rs.
Notes:
● The financial bids will be evaluated by combining the prices quoted for both the Part A and
Part B. However, the order will be placed for Part - A only.
● After placement of order, during the project period, if any change order is
requested/required by NADL, the amount payable if any, vide the change order, will be
computed on the basis of manpower costs quoted in Part - B. The estimated man-months
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 95 of 109
for different categories of manpower given in Table is only for reference purposes. The
actual utilization will be as per NADL project requirements.
● The manpower cost at part B shall remain firm over the period stipulated in order.
● Above rates may be used by NADL or its parent company NeSL or group company of NeSL
for any similar software development requirements which may not be part of this RFP.
(End of Section – V)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 96 of 109
ANNEXURE – A- Covering Letter
Date:
To:
Director,
NESL Asset Data Limited (NADL)
5th Floor, Spencer Towers,
86, M.G. Road, Bengaluru – 560001
Phone: - 080 -25580360, 022- 22446619
e-mail:- [email protected]
Subject: Submission of the Bid for Development and Deployment of Application Software
Dear Sir,
We, the undersigned, are pleased to offer to provide services towards Development and
Deployment of Application Software for Account Aggregation, to NADL, Mumbai, in response to
your RFP. No: NADL/Account Aggregation/2018/001, dated: 28th June 2018
We hereby declare that all the information and statements made in this bid are true and we
accept that any misinterpretation contained in it, may lead to our disqualification.
We agree to abide by all the terms and conditions of the RFP document. We would hold the terms
of our proposal valid for 90 days as stipulated in the RFP document.
We also undertake that we are not blacklisted or debarred from bidding process, by any
Educational / R&D / Govt. Organization, as on date of submission of the bids and that there have
been no regulatory actions initiated / pending against us as on the date of release of RFP.
We also undertake that, we shall not use the Account Aggregation technology developed under
this project for any reverse engineering purposes, for a period of at least two years from the date
of completion of project deliverables. We agree that the IPR of the Account Aggregation
technology developed will vest with NADL perpetually.
We understand you are not bound to accept any bid you receive.
The undersigned is authorised to sign this bid document. The authority letter to this effect is
enclosed.
Yours sincerely,
Authorized Signatory:
Name and Title of Signatory:
e-mail:
Mobile No:
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 97 of 109
ANNEXURE - B – Letter of Authority
(To be submitted in Original on Letterhead)
Date:
To:
PROJECT MANAGER
NESL Asset Data Limited (NADL)
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Phone: - 080 -25580360, 022- 22446619
e-mail:- [email protected]
Dear Sir,
We, M/s ______________ (Name of the bidder) having registered office at ________________
(address of the bidder) herewith submit our bid against the said RFP document.
Mr./Ms. _________ (Name and designation of the signatory), whose signature is appended
below, is authorized to sign and submit the bid documents on our behalf against RFP.
Specimen Signature:
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 98 of 109
Annexure C: Details of Technical Manpower on Roll
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 99 of 109
Annexure – D: Existing Cloud IT Infrastructure
Virtual Machine(VM) with below combination of CPU, RAM, Storage and OS:
CPU / RAM (Per VM) Storage Space (Per VM) Operating System
1 core 12GB 400 GB RHEL 7.3
2 core 8GB 400 GB RHEL 7.3
2 core 24GB 400 GB RHEL 7.3
2 core 16GB 400 GB RHEL 7.3
4 core 48GB 400 GB RHEL 7.3
4 core 64GB 400 GB RHEL 7.3
8 core 128GB 400 GB RHEL 7.3
12 core 192GB 400 GB RHEL 7.3
16 core 256GB 400 GB RHEL 7.3
16 core 256GB 2 TB on DAS RHEL 7.3
24 core 384GB 400 GB RHEL 7.3
32 core 512GB 400 GB RHEL 7.3
32 core 512GB 2 TB on DAS RHEL 7.3
Databases
MYSQL
Software: The Licenses for RHEL 7.x is available with NADL. For any other software such as API
gateway, etc., required licenses, need to be arranged by the vendor.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 100 of 109
Annexure – E:
To,
Director,
NESL Asset Data Limited (NADL)
5th Floor, Spencer Towers,
86, M.G. Road,
Bengaluru – 560001
Phone: - 080 -25580360, 022- 22446619
e-mail:- [email protected]
DATE:
Dear Sir(S)
This has reference to the contract / Order No. ____________ Dated _________ placed by
NESL Asset Data Limited(NADL) on M/s______________ (Name &
Address of vendor) for development, deployment, technical support and warranty of application
software for accounts aggregation at NADL’s site.
M/s (Name of Vendor) has accepted the said order/contract with the terms and conditions
stipulated therein and have agreed to issue the performance bank guarantee (PBG) on their
part, towards
promises and assurance of their contractual obligations vide the Supply Order No/.Contract
__________
M/s. _________ (name of vendor) holds an account with us and has approached us and at their
request and in consideration of the promises, we hereby furnish such guarantees as mentioned
hereinafter.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 101 of 109
NADL shall be at liberty without reference to the Bank and without affecting the full liability of
the
Bank hereunder to take any other undertaking of security in respect of the suppliers obligations
and / or liabilities under or in connection with the said contract or to vary the terms vis-a – vis the
supplier or the said contract or to grant time and or indulgence to the supplier or to reduce or to
increase or otherwise vary the prices or the total contract value or to forebear from enforcement
of
all or any of the obligations of the supplier under the said contract and/or the remedies of NADL
under any security now, or hereafter held by NADL and no such dealing(s) with the supplier or
release or forbearance whatsoever shall have the effect of releasing the bank from its full liability
of
NADL hereunder or of prejudicing right of NADL against the bank.
This undertaking guarantee shall be a continuing undertaking guarantee and shall remain valid
and
irrevocable for all claims of NADL and liabilities of the supplier arising up to and until ______
(date)
This undertaking guarantee shall be in addition to any other undertaking or guarantee or security
whatsoever the that NADL may now or at any time have in relation to its claims or the supplier’s
obligations/liabilities under and / or in connection with the said contract and NADL shall have the
full authority to take recourse to or enforce this undertaking guarantee in preference to the other
undertaking or security (ies) at its sole discretion and no failure on the part of NADL in enforcing
or
requiring enforcement of any other undertaking or security shall have the effect of releasing the
bank from its full liability hereunder.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 102 of 109
suspended by reason of any dispute or disputes having been raised by the supplier (whether or
not
pending before any arbitrator, Tribunal or Court) or any denial of liability by the supplier or any
order or any order or communication whatsoever by the supplier stopping or preventing or
purporting to stop or prevent payment by the Bank to NADL hereunder.
The amount stated in any notice of demand addressed by NADL to the Bank as claimed by NADL
from the supplier or as suffered or incurred by NADL on the account of any losses or
damages or costs, charges and/or expenses shall as between the Bank and NADL be conclusive
of the amount so claimed or liable to be paid to NADL or suffered or incurred by NADL, as the
case may be and payable by the Bank to NADL in terms hereof.
You shall have full liberty without reference to us and without affecting this guarantee,
postpone for any time or from time to time the exercise of any of the powers and rights conferred
on you under the contact with the said M/s _____________ (Name of supplier) and to enforce or
to
forbear from endorsing any power or rights or by reason of time being given to the said M/s
_____________ (name of supplier) which under law relating to the sureties would but for the
provisions have the effect of releasing us.
You will have full liberty without reference to us and without affecting this guarantee, postpone
for
any time or from time to time the exercise of any of the powers and rights conferred on you under
the contract with the said M/s _________ (Name of supplier) and to enforce or to forbear from
endorsing any power or rights or by reason of time being given to the said M/s ____________
(Name of supplier) which under law relating to the sureties would but for the provisions have the
effect of releasing us.
The guarantee herein contained shall not be determined or affected by the liquidation or winding
up, dissolution or change of constitution or insolvency of the said M/s _________ (Name of
Vendor)
but shall in all respects and for all purposes be binding and operative until payment of all dues to
NADL in respect of such liability or liabilities.
Our liability under this guarantee is restricted to Rs._____________/- (Rupees
______________________Only). Our guarantee shall remain in force until unless a suit action to
enforce a claim under guarantee is filed against us within six months from (which is date of expiry
of guarantee) all your rights under the said guarantee shall be forfeited and we shall be relieved
and discharged from all liabilities there under.
We have power to issue this guarantee in your favour under Memorandum and Articles of
Association of our Bank and the undersigned has full power to do under the power of Attorney
dated…
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 103 of 109
Notwithstanding anything contained herein:
A. Our liability under this guarantee shall not exceed Rs______________ (in words)
B. This bank guarantee shall be valid up to ______ and unless a suit for action to enforce a claim
under guarantee is filed against us within six months from the date of expiry of guarantee,
all your rights under the said guarantee shall be forfeited and we shall be relieved and
discharged from all liabilities there after i.e. after six months from the date of expiry of this
Bank guarantee
C. We are liable to pay the guaranteed amount or any parts thereof under this bank guarantee
only and only if you serve upon us a written claim or demand or before _________
D. The Bank guarantee will expire on (Min 24 months from the date of successful deployment of
software in the order) __________ unless the same is renewed with the mutual consent of the
parties herein.
Yours faithfully,
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 104 of 109
Annexure F - Technical Feature Compliance Statement
User Flow
Registration
Login
KYC
Consent Management
Notification
Analytics
FIU Flow
Registration
Login
Consent Management
Analytics
Notification
FIU dashboard
FIP Integrations
Admin Dashboards
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 105 of 109
Security of Data-At-Rest
Security of Data-In-Flight
API Security
Network Security
Real-time Monitoring
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 106 of 109
Annexure – G: Documents Checklist
Envelope – 1
Envelope – 2
6 The copies of the audited Profit and Loss Account or a certificate from a
Chartered Accountant, showing the annual turnover and profit for each of the
financial years 2016-2017, 2015-2016 and 2014-2015.
Envelope – 3
11 List of clients for whom the bidder has developed and deployed the application
software of similar nature, in last five years.
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 107 of 109
13 Copies of at least three supply orders / deployment reports, in support of sub-
para 6 of para 4 (Eligibility Criteria) in Section – II.
15 Technical Proposal including (but not limited to) understanding about the
project, implementation Methodology, team composition, work schedule,
PERT and Activity Schedule, interactions / visits, Data safety/ security
measures, Quality Control, modular structure, escalation hierarchy,
technologies /platforms to be used, requirements from NADL/ clients.
16 The technical proposal giving the details of technical architecture and explain
the platform scalability for various transaction volumes, flexibility towards
modifications, etc. It should also detail the mapping of the proposed
technology platform onto the Infrastructure detailed in Annexure – D :
Application Software Requirements, Section -IV of this document. The bidder
may please note that simply complying with the requirements does not
automatically make the bidder technically qualified.
Envelope – 4
(END OF DOCUMENT)
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 108 of 109
______________________________________________________________________________
_
Request for Proposal for Development of Account Aggregation Software
Page 109 of 109