Introduction
Collecting money from India is hard. Your buyers face SWIFT fees, complex forex processes, and unfamiliar international wire workflows — all of which create friction, delay payments, and increase drop-off. Virtual Bank Accounts (VBAs) solve this by giving a settling entity a dedicated Indian bank account. The buyer simply transfers rupees using methods they already know and trust — NEFT, RTGS, or IMPS — just like paying any local vendor. EximPe handles the regulatory compliance, currency conversion, and settlement to your preferred currency.Local for the buyer
Buyers pay by familiar domestic transfer — no SWIFT, no intermediary banks
Real-time tracking
Instant webhook notifications on every incoming credit
Compliance built in
LRS eligibility, TCS, and documents are handled through the API
How It Works
- You get an Indian bank account — EximPe issues a virtual bank account with a unique account number and IFSC for the settling entity.
- Your buyer pays locally — they initiate a standard domestic transfer (NEFT, RTGS, or IMPS) to the VBA. No international wires, no SWIFT.
- You get notified instantly — EximPe creates a payment from the credit and sends a real-time webhook.
- Compliance is handled — you assert the LRS details (remitter, purpose, documents) via API to meet RBI’s cross-border rules.
- Settlement in your currency — cleared funds are converted and settled to your international bank account.
A VBA is not bound to a single buyer — it can receive credits from many remitters. From v2.0.0 onwards, a settling entity can have multiple ACTIVE VBAs at once.
Prerequisites
Before you begin, ensure you have:- Merchant account: an active, approved settling entity (sub-merchant or direct merchant) with the VBA feature enabled.
- Credentials: your
X-Client-IDandX-Client-Secret(PSP callers also sendX-Merchant-IDfor the settling sub-merchant). - Webhook URL: a secure endpoint to receive VBA payment notifications, configured on your credentials.
Integration Steps
- Create VBA — issue a virtual bank account for the settling entity.
- Share account details — pass the account number and IFSC to the buyer.
- Track payments — list payments or fetch by UTR, or use webhooks for real-time updates.
- Simulate a transfer (sandbox) — test the end-to-end flow without a real bank transfer.
Step 1: Create VBA
Create a Virtual Bank Account for the settling entity. The account name, email, phone, andvirtual_account_id are derived from the merchant account, so the request body is minimal — you optionally supply lock rules.
- Remitter lock — restrict the VBA to accept transfers only from a specific list of remitter bank accounts (each identified by account number and IFSC).
- Amount lock — restrict the VBA to accept transfers within an amount range.
null and impose no restriction.
📚 API Reference
Create VBA API — full request/response and error codes.
Step 2: Share Account Details
The response returnsvba_account_number, vba_ifsc, vba_bank_code, vba_status, and vba_provider. Share the account number and IFSC with the buyer so they can initiate a NEFT, RTGS, or IMPS transfer into the virtual account.
For ICICI-provider VBAs, the account number is a 16-character number in a fixed pattern: the
INRACC prefix + a 3-character partner shortcode + a 7-digit identifier — e.g. INRACCNEX1234567. The IFSC is fixed per client code.Step 3: Track Payments
When a credit lands in the VBA, EximPe creates a payment and sends webhooks to your registered URL so you can process it in real time:- EximPe records the credit (amount, sender account + IFSC, payer name, UTR).
- A payment is created in Action Required — the remitter’s PAN is not derived from the credit.
- You receive a payment webhook. Proceed to LRS Verification to make the payment compliant.
📚 List VBA Payments
Paginated list of payments collected on a VBA.
📚 Get Payment by UTR
Fetch a single credit by its bank UTR.
Step 4: Simulate a Transfer (Sandbox)
In the sandbox environment, you can simulate an incoming bank transfer to a VBA to test the end-to-end flow — webhooks, payment creation, and the LRS flow — without a real bank transfer. It works for both Cashfree and ICICI VBAs (for ICICI it runs the real credit-posting processor). Theutr must be unique across simulations.
📚 API Reference
Simulate VBA Transfer API — simulate a payment to a VBA in sandbox.
Managing VBAs
EximPe provides APIs to manage the lifecycle of your virtual bank accounts:- Create VBA — create a new VBA, optionally with remitter and/or amount locks.
- List VBAs — paginated list, filterable by
vba_statusandvba_provider. - Get VBA Details — fetch details of an existing VBA.
- List VBA Payments — list all payments for a VBA.
- Get Payment by UTR — get a single payment by UTR.
- Simulate VBA Transfer — simulate an incoming transfer to a VBA in sandbox.
Next: make the collected payment compliant in LRS Verification.