HOW IT WORKS

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.

Recharge API request flow Your server sends recharge request Neropay API validates & routes Operator Jio, Airtel, DTH… Immediate response SUCCESS / PENDING / FAILED If PENDING poll Status Check by refid Callback to your URL final status pushed to you
STEP BY STEP

From request to confirmation

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

TRANSACTION STATES

Three outcomes, handled cleanly

SUCCESS

Recharge done. The response carries the operator reference. Mark the transaction complete.

PENDING

Still processing at the operator. Confirm later via Status Check or callback — never resend.

FAILED

Recharge didn't go through; your wallet is refunded. The message field tells you why.

EXAMPLE

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"
    }
KEY CONCEPTS

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.