Skip to main content

General

What is this product?

A cross-border collection rail. An Indian buyer pays rupees into a virtual account we issue for you, you supply the compliance details the payment needs, and the funds are settled to the beneficiary abroad under the RBI Payment Aggregator – Cross Border (PA-CB) framework. A bank partner — an Authorised Dealer, or “AD bank” — performs the actual outward remittance.

Does EximPe show my buyer a payment page?

Optionally. With Hosted Checkout, the buyer pays on an EximPe-hosted page. With a virtual account, they stay in your own product and make a bank transfer instead.

How does the buyer actually pay?

Either a card, UPI, net banking, or QR payment on the checkout page, or a standard domestic bank transfer — NEFT, RTGS, or IMPS — into a virtual account you share with them. Whichever route the money takes, the payment behaves identically afterwards.

What can I collect for?

Every payment carries a FEMA purpose code, and the purpose code decides the compliance rules — who may pay, which documents are needed, and what tax applies. See what you can collect for for the current list. Your account is enabled for a specific set of purpose codes (its allowlist). If you want to collect for something else, get in touch with your EximPe KAM — we will tell you what it takes.

Does the payment type change how I integrate?

Only the compliance step. Onboarding, collection, the payment lifecycle, webhooks, settlement, and refunds are identical whatever the purpose code. See Collection Overview.

Who are the parties in an integration?

As a PSP you onboard the businesses you collect for as sub-merchants. Collections and balances are tracked per sub-merchant, and EximPe settles them to you; you pay each sub-merchant onward.

What are the requirements to integrate?

A merchant account with the VBA feature enabled, your X-Client-ID and X-Client-Secret, and a public HTTPS webhook endpoint. Every request also sends X-API-Version: 3.0.0. PSP callers additionally send X-Merchant-ID naming the sub-merchant the payment belongs to.

What does it cost me?

Nothing comes out of the amount you are owed. The buyer pays the amount to be collected — the amount to be settled, plus our fee, the GST on that fee, and TCS where the payment is LRS — so the full amount to be settled reaches you.
Ask the buyer for the amount to be collected, not the amount to be settled. Quote LRS Amount returns it as total_payable_inr — ask for exactly that. Collect only the amount to be settled and the payment is short, and it waits until the buyer tops up.
The fee and GST are not itemised in the quote response. If you need them broken out, talk to your KAM.

How do I get started?


Virtual Bank Accounts

Is a VBA tied to one buyer?

Not by default. One account accepts money from any number of buyers, so a credit landing does not by itself tell you who paid — you tell us that during verification. If you want an account to accept money from one buyer only, lock it when you create it. See Can I restrict who pays into a VBA?

Can I create more than one VBA?

Yes. Create as many as you want — there is no limit.

Can I restrict who pays into a VBA?

Yes, optionally, at creation time. A remitter lock restricts the VBA to a specific list of remitter bank accounts (account number + IFSC); an amount lock restricts transfers to an amount range. The two locks are independent, and when omitted they impose no restriction.

Can I test without a real bank transfer?

Yes, and not just the transfer. In sandbox you can fire each stage on demand: The last two need your sandbox account on the Simulator gateway. None of the three exist in production.

Payments, Settlements & Refunds

What states does a payment move through?

verification_status, as the webhooks report it: Once the money is on its way to you, the settlement APIs and the PAYMENT_SETTLED webhook take over.
The submit call answers with where the payment stands and nothing else — IN_REVIEW if the set was complete and passed, ACTION_REQUIRED if anything is still owed.

The buyer paid less than the amount due. What now?

The payment waits, and the outstanding entry on the LRS_VERIFICATION_NEEDED event names the shortfall in its message. Clear it either way: have the buyer transfer the difference and link that credit as a top-up with linked_payment_id, or declare a smaller amount_to_be_settled — the amount that actually arrived — and submit again.

What exchange rate do I get?

The rate at the time we settle, not the rate at the time your buyer paid. You collect in rupees. When the payment clears we convert the amount to be settled into your settlement currency at the rate applying on the settlement date, and send it to your bank abroad. See What does it cost me? for what the buyer pays on top. So the gap between the buyer paying and the money settling is exposure you carry. If you quote your buyer a price in your own currency, price that gap in.

How do I get settlement details?

Via the EximPe Dashboard or the settlement APIs — List Settlements, Get Settlement, and Settlement Reconciliation, which returns the captures, refunds, and chargebacks making up a settlement.

How are refunds funded?

A refund is netted against your upcoming settlements. We track a balance for each merchant, and the refund comes out of collections we have not settled to you yet. If that balance does not cover the refund, the call fails with an error. Nothing is queued and nothing retries on its own — collect more, then call again.

Where does a refund go, and can I refund partially?

A refund goes back to the buyer’s own account. A payment can take more than one partial refund over its life.

Webhooks

Which events does EximPe send?

Merchant Approved, Payment Successful (money was collected and a payment created), Payment Failed, Payment Settled, Payment Refunded, and refund/dispute updates.

How do I verify a webhook is genuine?

Each webhook is signed with an HMAC-SHA256 signature in the X-Webhook-Signature header, using your Encryption Key from the Developer section of the dashboard. See Webhooks for code examples in Node.js, Python, and PHP.

What happens if my endpoint is down?

EximPe retries: the 1st attempt is immediate, followed by retries at 1 minute, 5 minutes, 15 minutes, and 1 hour. After 5 failed attempts, EximPe stops retrying.

LRS — education and travel payments from individuals

LRS is the Liberalised Remittance Scheme — the RBI rules for an individual in India sending money abroad for a personal purpose, like education fees or travel.It is decided by what the money is for, not by who is paying. An individual buying goods or services from a foreign seller is making a purchase: no LRS limit, and no TCS. The purpose code tells you which kind you have — and so does the event you receive: an LRS payment gets LRS_VERIFICATION_NEEDED, everything else gets VERIFICATION_NEEDED.The full rules live in LRS & Compliance; the API walk-through is LRS Verification.

Who is allowed to pay under LRS?

Resident individuals only, including minors through a guardian. Not companies, partnerships, HUFs, trusts, or non-residents.

What are the limits?

₹25,00,000 per payment, and USD 250,000 per person per financial year across every bank they use — not just payments through us. We refuse anything that would breach the annual cap on the data we can see.

Which purpose codes are supported?

S0305 and S1107, both for education from the buyer’s own funds. See LRS & Compliance for what each covers.

Can a parent pay for a student?

Yes, and then the parent is the remitter — their PAN, their account, their LRS limit. Set relation to something other than SELF and name the student in the student_* fields. See Can a parent pay?

Why must the money come from the remitter’s own account?

LRS is reported against the PAN of the account the money came out of, so a payment always settles against whoever actually paid. Enforce own-account payment in your UX.

The credit shows a sender bank account. Is that the remitter?

It should be. You tell us the remitter’s PAN and we check it against the name on the sending account. If they do not match the payment stays in action_required with reason: SENDER_NAME_MISMATCH, and you either refund it or give us the PAN of whoever actually paid — in which case it settles against them and their LRS limit.

How is TCS calculated?

On a threshold basis: below the threshold nothing is taxed, on the payment that crosses it only the slice above is taxed, and after that the whole of each payment is. For education the rate is 2% and the threshold is ₹10,00,000 of cumulative LRS in a financial year. Quote LRS Amount returns the amount, the rate and the reason — collect it on top of the amount to be settled, and it passes through to the government against the buyer’s PAN. You do not declare anything — we compute it. Full mechanics in LRS & Compliance.

Do I have to call the quote API?

Optional, but call it. Quoting reserves nothing and can be re-run freely. Show the buyer the tax-inclusive total before they pay, or they underpay and you handle a shortfall.

What declaration does the buyer affirm?

One, covering resident status, the LRS limit, and source of funds. It is a single field, buyer_declaration, and the exact wording to show the buyer comes back as its label from Get Verification Requirements — read it from there rather than hardcoding it.

Is there a deadline?

Yes. Every LRS payment carries a verification expiry. Miss it and the payment expires, which is terminal — the money goes back to the buyer and nothing you send afterwards reopens it. Surface the date in your own UI and chase against it.

Why verify the PAN before quoting?

An inactive, non-individual, or name-mismatched PAN is a guaranteed bank rejection later. Verify PAN catches it upfront and returns a reason: INVALID_PAN, NON_INDIVIDUAL_PAN, INOPERATIVE_PAN, NAME_MISMATCH or DOB_MISMATCH. Residency cannot be proved by PAN alone — non-residents hold individual PANs too — which is why the buyer also affirms residency in the declaration.

Which documents are required?

It depends on the purpose code, and the answer for a given payment comes from Get Verification Requirements. For a rough idea of what to expect to ask a buyer for, see what a payment needs, by purpose code. No scanned PAN card is needed — PAN is a field, validated electronically.

When do I upload documents?

Up front, before you submit, and not tied to a payment. Each upload returns a ref you pass in the submit call.

What happens if a document is rejected?

We tell you exactly what is wrong. Re-submit only that item and it goes back to review. Legible, in-date documents of the right type are the main way to avoid holds.