Pool settlement lets you maintain a single pool wallet loaded with USDT, and trigger INR payouts to any of your verified users. Instead of managing individual user wallets, you fund one central pool and offramp from it.Documentation Index
Fetch the complete documentation index at: https://docs.stablepay.global/llms.txt
Use this file to discover all available pages before exploring further.
When to Use Pool Settlement
- You want to manage liquidity centrally (one wallet instead of many)
- You pre-fund a pool with USDT and offramp 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
- Create transaction —
POST /v2/transactionswithtype: pool_settlement. We check your balance and sweep USDT for settlement. You get a locked exchange rate. - Sweep confirms — You receive a
transaction.sweep_confirmedwebhook once the sweep is confirmed on-chain. - Trigger payout — Call
POST /v2/transactions/:id/payoutto initiate the INR transfer. - Payout complete — INR delivered to beneficiary’s bank account. You receive
transaction.payout_completedwebhook with UTR.
Prerequisites
Before triggering a pool settlement, ensure:- Pool wallet is funded with enough USDT on the chain you’ll sweep from
- User exists and belongs to your account
- User KYC is verified (status:
verified) - User has a verified bank account linked
Example
Step 1: Create pool settlementtransactionId — save it for Step 2.
Step 2: Wait for sweep confirmation
You’ll receive a webhook:
Sell vs Pool Settlement
| Feature | Sell | Pool Settlement |
|---|---|---|
| Type parameter | sell | pool_settlement |
| Funding | Per-user deposit | Central pool wallet |
| Deposit addresses | One per user | One per partner (shared) |
| Payout timing | After deposit confirms | After sweep confirms |
| User wallets | Required | Not required |
| Rate lock | At transaction creation | At transaction creation |
| Best for | Standard offramp | Centralized liquidity |
Supported Chains
| Chain | Asset | Deposit Address Format |
|---|---|---|
| Tron | USDT (TRC-20) | T... |
| Polygon | USDT/USDC (ERC-20) | 0x... |
| Ethereum | USDT/USDC (ERC-20) | 0x... |
| Arbitrum | USDT/USDC (ERC-20) | 0x... |
| Base | USDC (ERC-20) | 0x... |
FAQ
How long does the sweep take? Typically 1-5 minutes. What if the sweep fails? Your funds stay in the pool wallet. You’ll receive atransaction.sweep_failed webhook. Create a new pool settlement transaction to retry.
Can I cancel a pool settlement after the sweep?
No. Once the sweep is initiated, the USDT is in transit for settlement. You can choose not to call the payout endpoint, but the sweep cannot be reversed.
Is the exchange rate guaranteed?
Yes. The rate is locked when you create the pool settlement transaction and does not change, regardless of how long the sweep takes.