PayOrbit
Sign in

Recharge · Recharge Services

Mobile Recharge

Process prepaid mobile recharge. Ensure client_request_id is unique per request.

POST request

URL: https://api.payorbit.in/api/v1/recharge

Body

{
    "amount": 10,
    "circle": "Bihar and Jharkhand",
    "operator_type": "mobile",
    "account_number": "9431023126",
    "operator_sp_key": 116,
    "client_request_id": "#PayOrbit28"
}

Include a valid Bearer token with every request

Code sample

curl -X POST "https://api.vizodigital.com/api/v1/recharge" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "account_number": "9431023126",
    "amount": 10,
    "operator_sp_key": 116,
    "operator_type": "mobile",
    "circle": "Bihar and Jharkhand",
    "client_request_id": "#PayOrbit28"
  }'

Success Response

{
    "data": {
        "amount": 10,
        "created_at": "2026-07-30T12:30:00+05:30",
        "operator_ref": "OP998877",
        "account_number": "9431023126",
        "api_request_id": "RC_20260730123000_AB12",
        "provider_txn_id": "RP123456789",
        "client_request_id": "#PayOrbit28"
    },
    "status": "success",
    "message": "Recharge completed successfully."
}

Failure response

{
    "status": "failed",
    "message": "Insufficient wallet balance. Please recharge your wallet."
}

Overview

Submit a Mobile Recharge request against your developer wallet.

Notes

  • Authenticate with Authorization: Bearer {token}.
  • Set operator_type to mobile.
  • Amount is deducted from wallet before the provider call; failed attempts are refunded.
  • Use a unique client_request_id to avoid duplicate processing.
  • Admin assigns one recharge provider per platform developer (or per white-label for WL developers): Roundpay or InsPay.
  • If your account is assigned Roundpay, the existing recharge payload keeps working.
  • If your account is assigned InsPay, operator_sp_key is automatically mapped to InsPay's opcode.
  • Production uses the same request / response contract.

Body

application/json required

Mobile Recharge request body

Schema

{
    "type": "object",
    "required": [
        "account_number",
        "amount",
        "operator_sp_key",
        "operator_type"
    ],
    "properties": {
        "amount": {
            "type": "number",
            "description": "Recharge amount in INR"
        },
        "circle": {
            "type": "string",
            "description": "Circle name from operator/plan fetch. Example: `Bihar and Jharkhand`."
        },
        "geocode": {
            "type": "string"
        },
        "pincode": {
            "type": "string"
        },
        "operator_type": {
            "enum": [
                "mobile"
            ],
            "type": "string"
        },
        "account_number": {
            "type": "string",
            "description": "10-digit mobile number"
        },
        "customer_number": {
            "type": "string"
        },
        "operator_sp_key": {
            "type": "integer",
            "description": "Operator code / SP key. Example: `116` for Jio or `3` for Airtel."
        },
        "client_request_id": {
            "type": "string",
            "description": "Unique client order ID"
        }
    }
}

Example

{
    "amount": 10,
    "circle": "Bihar and Jharkhand",
    "operator_type": "mobile",
    "account_number": "9431023126",
    "operator_sp_key": 116,
    "client_request_id": "#PayOrbit28"
}

Responses

  • 200 · application/json default

    Recharge accepted / completed

    Example

    {
        "data": {
            "amount": 10,
            "created_at": "2026-07-30T12:30:00+05:30",
            "operator_ref": "OP998877",
            "account_number": "9876543210",
            "api_request_id": "RC_20260730123000_AB12",
            "provider_txn_id": "RP123456789",
            "client_request_id": "UNIQUE_ID_123"
        },
        "status": "success",
        "message": "Recharge completed successfully."
    }
  • 400 · application/json

    Recharge failed or rejected

    Example

    {
        "status": "failed",
        "message": "Insufficient wallet balance. Please recharge your wallet."
    }

Rate Limits

60/min