Migrated over from MifosForge - last edit on June 6, 2016

Target release
Epichttps://issues.apache.org/jira/browse/FINERACT-81
Document status
DRAFT
Document owner

Aditya Hendre

Designer
Developers
QA

Goals

  • To create a Java SDK to wrap UPI API messages and map its data with platform’s internal representation
  • To integrate the SDK into the transaction API using connector approach

Background and strategic fit

Why are you doing this? How does this relate to your overall product strategy?

The NPCI (National Payment Corporation of India) has launched the Unified Payment Interface which comprises a new protocol. Banks, Payment Banks, Prepaid Payment Instrument Issuers, and other participating entities, collectively termed as Payment System Players (PSP) will use this protocol to interface with the NPCI for Direct Pay, Collect Pay transactions. You can find the technical specification of UPI on NPCI website.

UPI Launch Press Release (11 April 2016)

UPI Product Document

Quoting from the launch press release:

"UPI is a unique payment solution as the recipient is now empowered to initiate the payment request from a smartphone. It facilitates 'virtual address' as a payment identifier for sending and collecting money and works on single click 2-factor authentication. It also provides an option for scheduling push and pull transactions for various purposes like sharing bills among peers. One can use UPI app instead of paying cash on delivery on receipt of product from online shopping websites and can perform miscellaneous expenses like paying utility bills, over the counter payments, barcode (scan and pay) based payments, donations, school fees and other such unique and innovative use cases.

The interface is the advanced version of NPCI's Immediate Payment Service (IMPS) which is a 24*7*365 funds transfer service. UPI will offer a facility to identify a bank customer with an email-like virtual address. It will allow a customer to have multiple virtual addresses for multiple accounts in various banks. In order to ensure privacy of customer's data, there is no account number mapper anywhere other than the customer's own bank. This allows the customer to freely share the financial address with others. A customer can also decide to use the mobile number as the name instead of the short name for the virtual address like 1234567890@sbi."

Resources for developers

Unified Payment Interface - API & Technology Specifications v121.pdf

UPI Meta API Message Dumps v1.0-new-23.pdf

UPI Message Dumps v10-new-18.pdf

UPI Hackathon resources

Unified Payments Interface

Assumptions

  • The XML schema found in the Hackathon resource bundle is assumed to be the official schema of UPI protocol.

Requirements specification

UPI-SDK

API design requirements

Fluent interface wrapping JAXB. API documentation via Javadoc.

#TitleUser StoryImportanceNotes
1
2    

Design

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing

  • Community web app is outside the scope of this project
  • No labels