How our recharge API works
A simple, single request recharges any mobile or DTH connection. Here's exactly what happens at each step — from your server to the operator and back.
The request flow
One call out, one immediate response back, and a callback when the final status settles.
From request to confirmation
Authenticate every request
Each call carries your secret API token. The token identifies your account and must come from a whitelisted server IP. Without a valid token + IP, the request is rejected before anything else happens.
Send the recharge request
You send the number (or DTH subscriber ID), the operator code, the amount, and a unique refid you generate. The refid is your handle to track this exact transaction later — make it unique every time.
Neropay validates & routes to the operator
We check your balance, validate the operator and amount, debit your wallet, and forward the recharge to the operator's network — all in real time.
Read the immediate response
You instantly get back a status: SUCCESS, PENDING, or FAILED — along with a transaction ID and your live balance. Always save the transaction against this status.
Resolve PENDING — never double-spend
If the response is PENDING, the operator is still processing. Don't resend — instead poll the Status Check API with your refid, or simply wait for the callback. This prevents accidentally recharging twice.
Receive the callback
The moment the final status settles, Neropay sends a server-to-server callback to your configured URL. Treat this callback as the source of truth, match it by refid, and reply 200 OK.
Three outcomes, handled cleanly
Recharge done. The response carries the operator reference. Mark the transaction complete.
Still processing at the operator. Confirm later via Status Check or callback — never resend.
Recharge didn't go through; your wallet is refunded. The message field tells you why.
One request, one response
A typical recharge call and the response your server receives.
Request
# GET request with query parameters GET /v1/recharge ?token=YOUR_TOKEN &customer_id=9876543210 &operatorcode=JIO &amount=299 &refid=NRX20260619LMIE
Response
{
"status": "SUCCESS",
"txnid": "NRX20260619OPRQ",
"refid": "NRX20260619LMIE",
"operator_name": "Jio",
"amount": "299",
"operatorid": "6534870098",
"balance": "14384.13"
}
Callback your server receives later
// POST → your configured callback URL { "event": "recharge.updated", "refid": "NRX20260619LMIE", "status": "SUCCESS", "operatorid": "6534870098", "response_time": "2026-06-19 07:12:51" }
Things worth knowing
refid is your tracking key
A unique ID you generate per transaction. Use it for status checks, disputes and matching callbacks.
Wallet-based
Each recharge debits your prepaid wallet. Load it 24x7 via your virtual account; check balance any time via API.
Callbacks over polling
Configure a callback URL once and let us push updates — far more efficient than repeatedly polling Status Check.
Disputes built in
If a recharge fails or isn't credited, raise a dispute by refid and track it to resolution over the API.
Ready to integrate?
Read the full API reference for every endpoint, parameter and response — or get in touch to start.