Simplifying MSME onboarding

Designing a verification and consent experience for MSME lending.

Our bet was to make loans more accessible for small businesses by reducing the paperwork and repeated verification involved in applying. I worked on the merchant onboarding journey to simplify the identity and business verification steps and help merchants securely share their bank data with lenders.

The goal was to reduce friction and build trust in a process that was unfamiliar to many business owners.

Role
Product Designer (freelance)
Team
Harshvardhan Agarwal, Jainam and Samkit (founders of InvoiceFlo)

During my first year of college, receiving my first stipend ignited my interest in investing. This curiosity soon expanded to exploring Indian fintech platforms like Paytm, PhonePe, Groww, and Zerodha, and understanding the technology that powers them.

Since then, I’ve always been keen on working on a fintech product. I recently worked with a few founders of BharatX to design a product for MSME lending.

During the design process, I faced some roadblocks. They were due to my limited knowledge of the India Stack. With this case study, I intend to explain my design of the onboarding flow and help others understand the India Stack.

Before we dive into solutions, it is crucial to understand the problem we are trying to solve.

Identifying the problem

Our primary goal was to design an onboarding flow that educates users about the Account Aggregator framework. Additionally, we aimed to securely verify their identity and business details while obtaining consent to access their financial information.

A diagram of three overlapping circles — Identity Proof, Business Proof, and Bank Proof — with the onboarding process as a whole annotated at their overlap.

Understanding the Account Aggregator Framework and Its Impact on Digital Lending

Digital lending has been transformational in India. It has given instant loans to people with no or thin credit history. It has also gotten rid of the tedious and lengthy paperwork. Here is an example.

Consider a small business owner seeking a ₹10,000 loan. Traditional banks often turn her away due to insufficient credit history. As part of an educational drive, the government visits her town to raise awareness about digital lending and instant loans. Encouraged by this, she decides to try the digital route and receives the funds in her account within minutes.

Previously, the users had to manually gather and share financial data from various institutions. This loop goes on for each new institution. The RBI’s Account Aggregator framework simplifies this by enabling secure, consent-based digital data sharing.

The main participants in the AA ecosystem are:

  • Financial Information Provider (FIP): They have your financial data.
  • Account Aggregator (AA): Consent managers that deliver data with your consent.
  • Financial Information User (FIU): Entities that use your data to provide products or services.
The four roles in the Account Aggregator ecosystem: Individual, Financial Information Provider, Account Aggregator, and Financial Information User.

The AAs are a channel between FIP and FIU for transferring information, they do not process it since it is protected by end-to-end encryption (E2EE).

The data here can only be processed by FIU for whom the data is intended and on top of it all the data that is shared is from the implicit consent of the user.

The same four roles connected by arrows showing how consent and data flow from the individual through the Account Aggregator to the Financial Information Provider and User.

Next, I wanted to learn how people are adapting to AAs. I tried to get feedback from a few people. But, I could not do much primary research. So, I went ahead with secondary research.

I researched AA guidelines, competitor implementations, and articles on data sharing in India. Some of my insights are.

  • Most people are unfamiliar with the data-sharing framework. It has eroded users’ trust.
  • With the increase in online scams, many users are hesitant to trust apps with their financial information.
  • Many OTPs during verification are causing users to drop off before completing onboarding.
  • As a new technology, some financial institutions are still adopting it. So, data-fetch failures sometimes occur, causing a poor user experience.

For my particular problem statement, I had to verify a user’s business and identity. They must be a registered business in India. Then, I had to use an account aggregator to fetch their account details. For this, a conventional flow would be.

The conventional flow: verify phone number through OTP (unnecessary), GSTIN number verification through OTP, PAN number through OTP, Aadhaar verification through OTP, connect the account through the account aggregator, select the bank account, verify the bank account phone number using OTP, discover the bank account connected to the phone number, and show the consent dialog.

After concluding my research I defined a design goal with the insights I got.

To create an intuitive, trust-building onboarding experience that ensures transparent and secure verification and educates users on the benefits of the Account Aggregator, leverages the Account Aggregator to auto-fetch users sales and purchase invoices from linked financial accounts.

Before designing, I mapped ways to verify documents with a single OTP. But that was not feasible. However, DigiLoker’s API allows you to verify all your documents in a single step. That is why I decided to continue with this journey. It was viable for the users and for the engineers.

The DigiLocker flow: PAN and Aadhaar number verification grouped as verification done through DigiLocker, GST number verification through OTP, connect the account through the account aggregator, select the bank account, verify the bank account phone number using OTP, discover the bank account connected to the phone number, and the user’s consent to share financial information.

Bringing the flow into existence

Feature-based onboarding

After the splash screen, I wanted the first section to educate the user about AA and e-KYC verification and also highlight our app’s features. Here are a few iterations that I made.

Two final onboarding screens side by side: the e-KYC verification screen with Aadhaar, PAN and GSTIN documents merging into a folder, and the Financial Management with Account Aggregator screen with bank logos converging into the app.
Two more iterations of the Financial Management with Account Aggregator screen side by side, the second with a circular arrow Continue button.

The final screens feature clear, step-by-step explanations and intuitive navigation. Illustrations complement the copy, making complex processes easier to understand.

Two unannotated final onboarding screens side by side: the Instant KYC Verification screen with an Aadhaar OTP card, and the Financial Management with Account Aggregator screen.
The Get your invoices fetched automatically screen, showing a Sales Invoice list mock with two selectable invoice rows.

Identity and business verification

I made my initial designs using the old flow. It had inputs for the PAN, AADHAAR, and GST numbers, followed by an OTP verification screen. The copy also did not help the user understand why we were taking all this information.

An initial verification screen with a 4-step stepper (Phone No, GSTIN, PAN, Aadhar) showing a single GSTIN input and OTP verification.

I simplified the copy to help users understand why each piece of information was needed, reducing their confusion and improving completion rates and also grouped the journey into three major sections.

  • Identity Proof
  • Business Proof
  • Bank Proof
Two screens with the regrouped 3-step stepper (Identity, Business, Bank Proof): a DigiLocker phone-number entry screen, and a lazy-loading skeleton state for the DigiLocker redirect.
Two more screens continuing the regrouped verification journey: a DigiLocker phone number filled in, and a GSTIN OTP entry screen showing an active digit state.

Connecting bank account

Next, we get the user’s bank account details. First, we ask them to select the bank to link to the app. Then, we verify it by sending an OTP to their registered phone.

Two screens: a bank-selection list (Axis Bank, State Bank of India, Kotak Mahindra, HDFC, Canara, Bank of Baroda) with a Fetch bank details button, and an OTP verification screen for the linked bank.
Two more screens: the OTP verification screen with an active digit state, and a lazy-loading skeleton while the app looks for a bank account linked to the user's phone number.

Once we discover and verify the user’s bank account, we take their consent to share the data. We show the user some mandatory parameters. They are: Consent Duration, Consent Date Range, Consent Mode, Fetch Type, Consent Type, Fi Types, Purpose, and Context.

Two screens: the discovered bank account with a Connect account button, and the Important Consent screen listing consent duration, validity dates, purpose and fetch frequency with an Approve button.

Once the user approves their consent, we take them to the dashboard. There, we show them their sales and purchase invoices.

That is a wrap

A little background on this project: I got to work on it through Harsh, who connected me to Jainam and Samkit. They are building a startup, InvoiceFlo, in the MSME lending space. On our first call, Jainam said to come to Bangalore to work on this. So, I took the first train there the next morning.

A WhatsApp chat showing the initial message about the freelance project, describing it as a good product and mentioning the founders were introduced through a connection.

I designed their application and the pitch deck for their Y Combinator application. At the time, my knowledge of lending and account aggregators was limited. After I got back, I researched more about fintechs and reiterated the entire design. Additionally, participating in the Sahamati Buildaathon ’24 provided valuable insights into real-world fintech challenges.

Thanks for reading, working on this project pushed me to learn about the Indian fintech ecosystem which with all its complexity, resonates with me on a profound level. One of my goals five years down the line is to teach young kids, especially young kids, about personal finance which would help them be more aware of their financial choices.


Also, if someone wants to know more about our Indian fintechs and recent developments, here are some resources I used.

P.S: All the gifs I have used here are from the show “The Bear”, one of the cinematic masterpieces.

Thanks for reading till here :)