When to Use Pool Settlement
- You want to manage liquidity centrally (one pool instead of many wallets)
- You pre-fund with USDT and disburse INR on demand
- You want to control exactly when INR payouts happen
Setup
Pool settlement requires a linked pool wallet on your account. Contact support to:- Set up your pool wallet
- Get deposit addresses for each supported chain (Tron, Polygon, Ethereum)
- Enable pool settlement on your account
How It Works
- Load your pool — Send USDT to your pool wallet deposit address on any supported chain.
- We sweep and convert — StablePay sweeps the USDT and converts it to INR at the agreed deal rate, crediting your INR escrow balance. This is handled by StablePay operations; the INR appears on your balance once allocated.
- Check your balance — Call
GET /v2/escrow/balanceto see your available INR before disbursing (also visible in the Client Portal). - Disburse —
POST /v2/transactionswithtype: "pool_settlement"andamountInr. A single call debits your INR escrow, applies TDS if enabled, and pays the net to the user’s verified bank account over IMPS. - Payout completes — You receive a
transaction.payout_completedwebhook with the UTR.
Check Your INR Escrow Balance
The same balance shown in the Client Portal is available over the API, so you can confirm funds before disbursing:inr is your available, withdrawable escrow balance — the amount you can disburse. Use GET /v2/escrow/statement for a paginated ledger of every credit and debit.
Disburse INR
amountInris the gross debited from your escrow;settlementInris the net the user receives (gross − TDS). With TDS disabled the two are equal.- Single call — the payout is initiated immediately. There is no separate step.
type: "payout"is an accepted alias fortype: "pool_settlement".
A
200 means the bank rail accepted the transfer, not that it settled. Treat transaction.payout_completed / transaction.payout_failed as the source of truth.Prerequisites
Before disbursing, ensure:- Your INR escrow balance covers the gross
amountInr. Checked at creation and again atomically at settlement (INSUFFICIENT_BALANCE). - User exists and belongs to your account.
- User has a verified bank account linked. Always required (
NO_BANK_ACCOUNT). - User KYC is verified — enforced when identity KYC is enabled on your account (
KYC_INCOMPLETE). See KYC Flow.
Webhook Sequence
A successful disbursal fires, in order:transaction.created— the disbursal was acceptedtransaction.payout_initiated— the bank rail accepted the transfertransaction.payout_completed— INR delivered, carries the UTR (ortransaction.payout_failed)
Idempotency & Retries
Idempotency-Keyheader (required onPOST /v2/transactions) caches the full response — a retried request returns the original result, never a second disbursal.partnerReference(optional) is a business-level guard: reusing one returns the original payout withidempotentReplayed: true.- No auto-retry. A definitive provider failure reverses the escrow debit and marks the transaction
failed. An indeterminate response leaves itprocessingfor a background reconciler to resolve. - Bank-accepted-without-UTR. Occasionally the bank accepts a transfer without immediately returning a UTR. The payout is held as
processing— not marked completed — until it resolves: you then receivetransaction.payout_completedwith the UTR, ortransaction.payout_failedwith the escrow debit reversed.
Supported Chains
FAQ
How long does the USDT → INR conversion take? The sweep is typically 1–5 minutes; INR is credited to your escrow once allocated at the deal rate. When does my INR balance appear? After StablePay allocates it. It is not credited automatically on sweep — checkGET /v2/escrow/balance.
What if the INR payout fails?
The transaction moves to failed and you receive transaction.payout_failed. The escrow debit is reversed, so your balance is restored. Retry with a new partnerReference.
Which rail is used?
Always IMPS. Payouts are capped at ₹5,00,000 per transaction.
Is TDS deducted?
When enabled on your account, TDS (§194S) is withheld from the gross amountInr; the user receives settlementInr. TDS does not apply to withdrawing your own escrow balance.