Sandbox & test mode
Build the entire flow without touching real money. The sandbox is stateful — test users, balances and trades persist.
Sandbox uses live market prices but simulates settlement. Buys credit test balances, sells pay into a test INR wallet, and a per-partner float (₹1,00,000) backs it all. Reset any time from the Playground.
Magic values
Deterministic inputs let you exercise every branch instantly:
| Field | Type | Description | |
|---|---|---|---|
| OTP | 1234 | optional | Any OTP prompt (login, embed, gifting) accepts 1234 in sandbox. There is no Aadhaar OTP any more — those endpoints answer 410 AADHAAR_OTP_RETIRED. |
| Email code | 123456 | optional | Email verification code. |
| PAN ABCDE1234F | → verified | optional | KYC PAN that verifies successfully. |
| PAN ZZZZZ9999Z | → rejected | optional | KYC PAN that fails verification (400 KYC_REJECTED). |
| Aadhaar by DigiLocker | simulator | optional | kyc/aadhaar/digilocker returns a url to a simulator page with Allow and Deny. Allow approves the KYC (kyc.approved); Deny leaves the session denied. Both then return to your returnUrl, as live does. |
| Aadhaar photos | → approved in ~30 s | optional | kyc/aadhaar/photos (any 12-digit number starting 2–9, any base64 front and back) goes to under_review with kyc.under_review, then approves itself about 30 seconds later with kyc.approved. |
| Withdrawal …. 01 | → fails | optional | Any withdrawal amount ending in .01 simulates a failure. |
Reset the sandbox
curl -X POST https://api.oropocket.com/partner/sandbox/reset \
-H "Authorization: Bearer oro_test_xxx"This clears your sandbox users, balances and trades, and restores the float to ₹1,00,000.
kyc.approved, kyc.under_review) fire in sandbox too, with data.mode: "sandbox".Daily request limit
Sandbox allows 1000 requests per day per partner, counted across every endpoint together and reset at 00:00 IST. It is generous for testing — a full integration run costs a few dozen calls — but a polling loop left running will spend it, which is exactly what it is there to stop.
Every sandbox response carries X-RateLimit-Remaining. Past the cap you get 429 SANDBOX_DAILY_LIMIT. Your live token is unaffected, and regenerating your sandbox token does not reset the count. If you genuinely need more, ask — it is configurable per partner. See Errors & rate limits.