Before you start
- An approved merchant account with virtual accounts enabled
- Your
X-Client-IDandX-Client-Secret, andX-API-Version: 3.0.0on every call - A webhook URL on your account
X-Merchant-ID naming the sub-merchant the account belongs to.
Step 1: Create the account
The name, email, and phone come from the merchant account, so the request body can be empty.- Remitter lock — only accept money from bank accounts you list.
- Amount lock — only accept transfers within a range.
Create VBA API
Full request and response.
Step 2: Give the details to your buyer
The response gives youvba_account_number and vba_ifsc. Send those two to your buyer. That is all they need.
Account numbers follow a fixed pattern, and the IFSC is always the same for your client code. Take both from the response rather than constructing them yourself.
Step 3: Handle the money arriving
When a credit lands we record the amount, the sender’s account and IFSC, their name, and the UTR. Then we create a payment and send you a webhook. The payment status isACTION_REQUIRED. We have the money but not the paperwork.
Next, send us the compliance details so the payment can settle.
LRS Verification
Verify the buyer’s PAN, quote the tax, upload documents, submit.
Step 4: Test it without a real transfer
In sandbox, simulate an incoming transfer. This runs the whole flow — webhooks, payment creation, verification — with no real money. Eachutr must be unique.
captured with action_required is the happy path — the money is in, and the compliance details are what is missing.
A credit that breaks a rule on the account is still recorded. We never drop real money, so instead of rejecting it we keep it for reconciliation and tell you why:
status_message is the only place that reason appears. It is one of:
Anything that stops a payment being created is an error status, not a
200: a repeated utr is 409, a malformed amount is 400.
The same rules apply to real credits. Simulating one is the way to see what a locked account does to a transfer before a buyer sends money into it.
Finding payments
Create as many accounts as you want — there is no limit. By default each one accepts money from any number of buyers; use a remitter lock if you want to tie an account to specific buyers.