Zwitch
  • Embedded Finance
  • Perspective
  • Technology
  • Compliance
  • Security
Zwitch
Home Payment Gateway Payouts Zwitch Bill Connect API Marketplace
Zwitch Zwitch Zwitch
  • Embedded Finance
  • Perspective
  • Technology
  • Compliance
  • Security
Virtual accounts for payments collection and reconciliation
  • Technology

Virtual Accounts for collection & reconciliation of payments

  • August 17, 2021
  • Anish Achuthan
Total
0
Shares
0
0
0

Most businesses have adopted recurring based business models. There are multiple benefits for businesses that switch to a recurring business model, including steady cash flow, better inventory management, and reduced acquisition and retention costs.

Industry estimates suggest that recurring payments’ current market opportunity is between INR 20-25 billion (Source). There has been a 3X growth in recurring payments recently, and it is growing at a rate of 40% year on year.

Zwitch APIs provide virtual accounts for businesses to collect recurring payments like EMI for short loans, student fees, DTH/Electricity bills, and distributor payments and automatically reconcile them. 

This blog will show you how to create and use virtual accounts for recurring payments using Zwitch APIs.

Using Virtual Accounts for payment collections

If you were to collect recurring payments from your customers, what would you do? 

You might share your current account number with the customer, ask them to add your account details as beneficiary and then initiate bank transfer from their account to your account. In this case, you’ll have to rely on your bank account statement to reconcile the transactions at the end of every month. 

When you have a small set of customers, this process won’t take much time. But, imagine if you are doing the same way when you’ve lakhs and crores of customers. It would take a significant amount of effort and time for your accounts team to reconcile transactions against the customer payments. Most of the time, bank account statements don’t provide remitter information, making the reconciliation process more complicated.

Well, you don’t have to fuss over these things anymore. We have a solution for you – Virtual Accounts. With Zwitch, you can do seamless recurring payments collection and also embed reconciliation seamlessly into your workflow.

Streamline your payment collections with Virtual Accounts APIs

Using Zwitch Virtual Accounts APIs, you can create and use Virtual Accounts to collect payments. There are various instances where you can use our APIs for collecting payments such as:

  • SaaS subscriptions, 
  • EMIs from customers,
  • Loan instalments, 
  • Student fees,
  • DTH/Water/ Electricity bills, 
  • Distributor payments by retailers,
  • Mutual funds & insurance premium,
  • NGO donations and many more.

When you create virtual accounts as a collection_tool for your customers using Virtual Account APIs, they can then load money to their virtual account through NEFT/RTGS/IMPS/UPI. Zwitch then sends a webhook with the payment and remitter information to your configured webhook URL, notifying you about the incoming payment. You can automatically transfer the amount collected in different individual virtual accounts of customers to your or any merchant’s primary virtual account. This can also be then transferred to any bank account using the Transfers API.

Virtual Accounts for collections | Zwitch

Let’s understand in detail the Virtual Accounts APIs for creating virtual accounts as a collection tool. 

You need to pass the following mandatory parameters in request to our APIs:

  • Customer Name as name
  • Customer Email-id as email
  • Customer Mobile Number as mobile_number

Now, there are two more parameters, which will remain constant if you are creating a Virtual Account as a collection tool:

  • type with value as virtual
  • used_as with value as collection_tool

Now, if you want, you can create a Virtual Payment Address (VPA) for the virtual account in addition to the Virtual Account Number and IFSC code generated by the APIs. However, it is recommended that you should create one, to ensure a better consumer experience. 

If you chose to create VPA/UPI ID for your customer then, you need to add the following additional parameters in the request headers of our APIs:

  • state_code with value as KA for Karnataka, KL for Kerala, DL for Delhi, etc.
  • city
  • pan
  • postal_code
  • business_type with value as an individual for Individual, public-or-private-limited for Public/Private Limited
  • business_category with value as agri_business for Agri-Business, banking_or_financial_services for Banking / Financial Services, etc.

You can find the complete details for state_code, business_type and business_category here.

Here is a sample request header for creating a virtual account as a collection_tool with VPA/UPI ID:

curl --request POST \
     --url https://api.zwitch.io/v1/accounts \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <access_key>:<secret_key>' \
     --header 'Content-Type: application/json' \
     --data '
{
     "type": "virtual",
     "kyc": {
          "state_code": "KA",
          "city": "Bengaluru",
          "pan": "ABCDE1234F",
          "postal_code": 560068,
          "business_type": "individual",
          "business_category": "agri_business"
     },
     "name": "John Doe",
     "email": "[email protected]",
     "mobile_number": "9675196666",
     "used_as": "collection_tool",
     "create_vpa": true
}
'

Note: All Zwitch API calls require an Authorization header to be passed in the format ACCESS_KEY: SECRET_KEY. Make sure to replace <access_key> and <secret_key> with the actual access and secret key you will find in your Zwitch Sandbox Dashboard.

On successful completion of your request for creating a virtual account as a collection_tool with VPA/UPI ID, you will receive the following response from our APIs:

{
"id":"va_fBFs3yDUtDTTOhltAB2Z39axN"
"object":"account"
"type":"virtual"
"name":"John Doe"
"mobile_number":"9675196666"
"account_number":"36363651417845576"
"ifsc_code":"YESB0CMSNOC"
"used_as":"collection_tool"
"email":"[email protected]"
"kyc":{
"state_code":"KA"
"city":"Bengaluru"
"postal_code":560068
"pan":"ABCDE1234F"
"business_type":"individual"
"business_category":"agri_business"
}
"bank_name":"yes_bank"
"vpa":"zwch182691254@yesbank"
"status":"active"
"is_sandbox":false
}

You can now parse information from the above response as per your need and display the virtual account number, IFSC code, and VPA handles to your customer to make payments. The money collected in the customer’s virtual account will automatically be transferred to your primary virtual account.

An alternate approach for you could be after creating a virtual account for your customers you can ask your customer to enter their UPI or VPA handle associated with any Payment Service Provider (PSP) app such as Google Pay, PhonePe, BHIM, etc. Once the customer gets a UPI collect request on their UPI app, they can make payment which gets collected in their virtual account and then transferred to the merchant’s virtual account seamlessly.

curl --request POST \
     --url https://api.zwitch.io/v1/accounts/va_fBFs3yDUtDTTOhltAB2Z39axN/payments/upi/collect \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <access_key>:<secret_key>' \
     --header 'Content-Type: application/json' \
     --data '
{
     "remitter_vpa_handle": "9675196666@upi",
     "amount": 1,
     "expiry_in_minutes": 10,
     "remark": "John Doe Transfer"
}
'

Note: You would need to pass the Virtual Account ID created earlier in the endpoint URL, VPA handle of your customer, expiry time of the request in minutes and remarks. Also, ensure you have updated access and secret keys in the above API call.
For easy auto-reconciliation, you can retrieve details of all incoming payments under your primary virtual account by passing your/customer’s Virtual Account id in the endpoint URL: https://api.zwitch.io/v1/accounts/id/payments

{
"object":"list"
"has_more":false
"data":[
{
"id":"tx_I13NjJnH8fdRelDdjux3ZYrBo"
"object":"payment"
"amount":1
"transacted_at":1628675007
"created_at":1628674981
"currency":"inr"
"bank_reference_number":"122315752283"
"status":"success"
"remitter_bank_account_number":"XXXXXX0660"
"remitter_bank_ifsc_code":"IBKL0002173"
"remitter_full_name":"JOHN DOE"
"remitter_note":"John"
"remitter_vpa_handle":"9675196666@upi"
"paid_mode":"upi"
"paid_to":"zwch182691254@yesbank"
"is_sandbox":false
"transaction_reference_id":"8d3ee23322404d1ebc96dd050d0cf57e"
}
{
"id":"tx_NSsNdk9HguyqerXvBev1BM6Au"
"object":"payment"
"amount":1000
"transacted_at":1628674905
"created_at":1628674850
"currency":"inr"
"bank_reference_number":"122315748847"
"status":"failed"
"remitter_bank_account_number":"NA"
"remitter_bank_ifsc_code":"NA"
"remitter_full_name":"null"
"remitter_note":"John"
"remitter_vpa_handle":"9675196666@upi"
"paid_mode":"upi"
"paid_to":"zwch182691254@yesbank"
"is_sandbox":false
"transaction_reference_id":"3820d2c1bfce429cb194261a002de241"
}
]
}

Once the amount is collected in your primary virtual account, you can transfer the amount to your current bank account or savings account or even split the amount and make automated vendor payouts. 

Companies have realised the importance of channelising collections and payments through a single account. On the collections side, customers use the Virtual Account number, which appears on the company’s remittance information. It brings a high degree of transparency and enhances the automatic reconciliation rates. And on the payments side, the virtual account number is used to indicate to suppliers the entity on whose behalf the payment is made. Read more on Virtual Accounts as a collection tool and UPI Collect APIs here.

Total
0
Shares
Share 0
Share 0
Tweet 0

Tell Us What You're Building

Got a cool use case? We’d love to hear how you're planning to use Zwitch. It takes less than a minute — and helps us tailor better tools (or even a personalized walkthrough) just for you.

Anish Achuthan

Previous Article
Bank account getting verified
  • Product

Zwitch your way to seamless bank account verification

  • August 5, 2021
  • Anish Achuthan
Read More
Next Article
Bank account verification and KYC process
  • Technology

Get seamless user onboarding with Zwitch Bank A/C Verification & KYC APIs

  • August 26, 2021
  • Anish Achuthan
Read More
You May Also Like
contactless payment
Read More
  • Technology

Contactless Payments: Touch to Pay? Here’s What It Is

  • Fathima Firose
  • May 15, 2025
what is click to pay
Read More
  • Technology

What Is Click to Pay & How Does It Work?

  • Fathima Firose
  • May 9, 2025
payment gateway india, payment gateway for website, instant payment gateway, multi-currency payments, cross-border payments, international transactions, online payments, global business, currency conversion, Zwitch APIs
Read More
  • Technology

What Is a Multi-Currency Payment Gateway? All You Need to Know

  • Ram Prasad Dutt
  • April 22, 2025
card payment api
Read More
  • Technology

How Credit Card Payments Work: A Step-by-Step Guide

  • Fathima Firose
  • April 22, 2025
UPI Circle - What it is, advantages & real-world use cases
Read More
  • Technology

UPI Circle: The Easiest Way to Split Bills & Share Money in Groups

  • Ram Prasad Dutt
  • March 27, 2025
right success metrics for a payment gateway
Read More
  • Compliance
  • Security
  • Technology

What are the Right Success Metrics for a Payment Gateway

  • Fathima Firose
  • March 24, 2025
B2B Payment Methods
Read More
  • Perspective
  • Technology

7 Ways Digital Payments Can Help Small Businesses Save Money

  • Rythwik Mahesh
  • March 14, 2025
How to Improve Your Business Payout Process: A Complete Guide
Read More
  • Technology
  • Embedded Finance

POS (Point of Sale) – Meaning, Types and Key Benefits

  • Marketing Team
  • February 25, 2025

Smart Products Start with Smarter Reads

Join our newsletter to stay ahead on embedded finance, digital payments, and the tech behind it all.

Explore Zwitch Products

Payouts

Automate instant payouts to vendors, users, or employees.

Learn more →
API Marketplace

Plug-and-play APIs for KYC, collections, and more.

Explore APIs →
Payment Gateway

Accept payments with UPI, cards, wallets, and more.

Start collecting →
Zwitch Bill Connect

Automate bill payments and vendor reconciliation from your ERP.

Check it out →

Products

  • Payouts
  • API Marketplace
  • Payment Gateway
  • Zwitch Bill Connect

Connect

  • Twitter
  • LinkedIn
  • Facebook
  • Instagram
Zwitch Logo
Open Financial Technologies Pvt Ltd
3rd Floor, Tower 2, RGA Techpark,
Marathahalli - Sarjapur Rd,
Carmelaram, Bengaluru, Karnataka - 560035

[email protected]
All rights reserved. © 2025. Open Financial Technologies Private Limited

Input your search keywords and press Enter.