INEXOPAY

INEXOPAY API Documentation

Complete integration guide for balance checking, NSDL bank services, PAN applications, and Aadhaar verification.

Introduction

Welcome to the INEXOPAY API documentation. Our APIs provide seamless integration for banking services, PAN applications, and Aadhaar verification.

Quick Start

  1. Get your api_key and username from the dashboard
  2. Use the API Tester below each endpoint to test live requests
  3. All APIs use Body Authentication (api_key, username in request body)

Authentication

All API requests require authentication. You can pass api_key and username either in the request body OR in the request headers (as x-api-key and x-api-username).

Body Authentication

Pass your API credentials in the request body for all API endpoints.

ParameterTypeRequiredDescription
api_keystringYesYour API key from dashboard
usernamestringYesYour registered username

Header Authentication

Pass your API credentials in the request headers for all API endpoints.

HeaderTypeRequiredDescription
x-api-keystringYesYour API key from dashboard
x-api-usernamestringYesYour registered username

Error Codes

Common error codes returned by the API.

CodeStatusDescription
200SuccessRequest processed successfully
400Bad RequestMissing or invalid request parameters
401UnauthorizedInvalid API key or username
402Payment RequiredInsufficient balance
403ForbiddenIP not whitelisted, account not approved, or subscription expired
405Method Not AllowedWrong HTTP method (e.g., GET instead of POST)
500Server ErrorInternal server error

Account & Status APIs

Note: All Account & Status APIs support both Header Authentication (x-api-key, x-api-username) and Body Authentication (api_key, username).

API Status Check

Check API Status & Balance

POST Body Auth Header Auth Check your API status, balance, and plan details
https://secure.inexopay.in/api/check_status.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesRegistered username
{
  "status_code": 200,
  "status": "SUCCESS",
  "message": "API Status Retrieved",
  "data": {
    "owner_name": "Your Name",
    "api_balance": 1250.50,
    "api_status": "ACTIVE",
    "plan_name": "Premium Plan",
    "bind_ip": "103.XX.XX.XX",
    "your_ip": "103.XX.XX.XX",
    "ip_status": "MATCHED"
  }
}

Balance Check

Check Your Account Balance

POST Body Auth Header Auth Get your current service balance
https://secure.inexopay.in/api/balance.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesRegistered username
{
  "status": "SUCCESS",
  "error_code": 200,
  "message": "Balance fetched successfully",
  "balance": 1250.50,
  "username": "jojo"
}

NSDL Bank APIs

Important: All NSDL Bank APIs return the original provider response directly from AdiyogiFinTech. No custom formatting is applied.
Authentication: All NSDL Bank APIs support both Header Authentication (x-api-key, x-api-username) and Body Authentication (api_key, username).

Agent Onboarding

Onboard New NSDL Bank Agent

POST Body Auth Header Auth Register a new NSDL payment bank agent. bcagentid is optional and will be auto-generated sequentially if left blank (format: INX + 5-digit number).
https://secure.inexopay.in/api/nsdl-bank/v1/onboarding.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
shop_namestringYesAgent's shop name
namestringYesAgent's full name
emailstringYesAgent's email address
mobilestringYesAgent's mobile number
date_of_birthstringYesDate of birth (YYYY-MM-DD)
addressstringYesFull address
state_namestringYesState name
city_namestringYesCity name
pincodestringYesArea pincode
pancardstringYesAgent's PAN number
bcagentidstringOptionalCustom Agent ID. If omitted, will be auto-generated (e.g. INX00001).
{
  "status": true,
  "message": "Agent verified successfully..!! Now you can create your agent account.",
  "data": {
    "txn_id": "NSDLP7",
    "agent_id": "NSDLP7"
  }
}

// Failure Response
{
  "status": false,
  "message": "Agent not verified :: THE GIVEN MOBILENUMBER IS ALREADY REGISTER"
}

Account Opening

Open New NSDL Bank Account

POST Body Auth Header Auth Initiate a saving (1) or current (2) account opening.
https://secure.inexopay.in/api/nsdl-bank/v1/account-open.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesYour unique order ID
account_typestringYes1 = Saving, 2 = Current
bcagentidstringYesYour BC Agent ID (from onboarding)
agent_pancardstringYesAgent's registered PAN card (stored as transaction reference)
first_namestringYesCustomer first name
middle_namestringOptionalCustomer middle name
last_namestringYesCustomer last name
emailstringYesCustomer email
phonestringYesCustomer mobile number
pancardstringYesCustomer PAN number
pincodestringYesCustomer area pincode
return_urlstringYesURL to redirect after completion
{
  "status": true,
  "message": "Success..!!",
  "data": "https://nsdljiffy.co.in/jarvisjiffyBroker/accountOpen?signcs=...",
  "user": {
    "txn_id": "NSDLUCBDRJCBV",
    "customer_id": 838822
  }
}

Account Status Check

Check Account Status by PAN

POST Body Auth Header Auth Check NSDL bank account status using PAN number
https://secure.inexopay.in/api/nsdl-bank/v1/account-status.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
pancardstringYesPAN number to check status
{
  "status": true,
  "message": "Success",
  "data": {
    "id": 34,
    "account_type": 2,
    "txn_id": "NSDLUCBDRJCBV",
    "first_name": "Binod",
    "middle_name": null,
    "last_name": "Kumar",
    "email": "binodk@gmail.com",
    "phone": "7091919185",
    "pancard": "NTFPS6013M",
    "pincode": "852105",
    "is_completed": 1,
    "message": null,
    "status": 1,
    "date": "2026-05-04T10:00:00.000000Z",
    "is_refunded": 0,
    "created_at": "2026-05-04T10:00:00.000000Z",
    "updated_at": "2026-05-04T10:00:00.000000Z"
  }
}

// Error response
{
  "status": false,
  "message": "Record Not Found",
  "data": {
    "response": "Record Not Found",
    "respcode": "99"
  }
}

Account Details

Get Account Details by Txn ID

GET POST Body Auth Header Auth Get full account details using either txn_id or orderid
https://secure.inexopay.in/api/nsdl-bank/v1/account-details.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
txn_idstringOptionalTransaction ID from account-open response
orderidstringOptionalYour unique order ID (will resolve to txn_id if provided)
{
  "status": true,
  "message": "Success",
  "data": {
    "id": 34,
    "account_type": 2,
    "txn_id": "NSDLUCBDRJCBV",
    "first_name": "Binod",
    "middle_name": null,
    "last_name": "Kumar",
    "email": "binodk@gmail.com",
    "phone": "7091919185",
    "pancard": "NTFPS6013M",
    "pincode": "852105",
    "is_completed": 1,
    "message": null,
    "status": 1,
    "date": "2026-05-04T10:00:00.000000Z",
    "is_refunded": 0,
    "created_at": "2026-05-04T10:00:00.000000Z",
    "updated_at": "2026-05-04T10:00:00.000000Z"
  }
}

Incomplete Account Opening URL Retrieval

Retrieve Incomplete Transaction URL

POST GET Body Auth Header Auth Fetch the stored account opening redirect URL of a pending transaction.
https://secure.inexopay.in/api/nsdl-bank/v1/incomplete.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesYour unique order ID
{
  "status": true,
  "message": "Redirect URL retrieved successfully.",
  "order_id": "testbank",
  "txn_id": "NSDLUCBDRJCBV",
  "account_url": "https://nsdljiffy.co.in/jarvisjiffyBroker/accountOpen?signcs=...",
  "status_in_db": "pending"
}

// Failure Response (when status is not pending or not found)
{
  "status": false,
  "message": "Transaction status is failed. URL can only be retrieved for pending transactions."
}

Wallet Load APIs

Note: All Wallet APIs support both Header Authentication (x-api-key, x-api-username) and Body Authentication (api_key, username).

Generate UPI QR

Generate UPI QR for Wallet Load

POST Header Auth Body Auth Generate a UPI QR code to load money into your wallet
https://secure.inexopay.in/api/wallet/v1/load_request.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
amountnumberYesAmount to load (minimum as per settings)
{
  "status_code": 200,
  "status": "SUCCESS",
  "message": "QR generated successfully! Please scan and pay, then use check_status API to verify payment.",
  "data": {
    "order_id": "WAL1234567890123",
    "amount": 100,
    "qr_url": "https://api.qrserver.com/v1/create-qr-code/...",
    "upi_id": "paytmqr5hcr1f@ptys",
    "account_holder_name": "INEXOPAY",
    "tx_string": "upi://pay?pa=paytmqr5hcr1f@ptys&pn=INEXOPAY&cu=INR&tn=WAL1234567890123&am=100&tr=WAL1234567890123",
    "status": "pending"
  }
}

Check Payment Status

Check Wallet Load Payment Status

POST Header Auth Body Auth Check payment status and automatically credit wallet if payment is successful
https://secure.inexopay.in/api/wallet/v1/check_status.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
order_idstringYesOrder ID from load_request response
{
  "status_code": 200,
  "status": "SUCCESS",
  "data": {
    "order_id": "WAL1234567890123",
    "amount": 100,
    "status": "success",
    "date_time": "2025-01-15 10:30:00",
    "bank": "UPI QR - INEXOPAY (paytmqr5hcr1f@ptys)",
    "mode": "API_UPI_QR",
    "remark": "Online Wallet Load via API - Success - UTR: BANK123456",
    "new_balance": 1100
  }
}

NSDL PAN APIs

Note: All NSDL PAN APIs support both Header Authentication (x-api-key, x-api-username) and Body Authentication (api_key, username).

Request PAN

Submit PAN Application

POST Body Auth Header Auth Initiate a new PAN or correction application. Returns redirect URL.
https://secure.inexopay.in/api/nsdl-pan/v1/request_pan.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
numberstringYesApplicant mobile number
orderidstringYesYour unique order ID
pan_modestringYesKYC mode: EKYC or ESIGN
pan_typestringYesnew_pan or correction
{
  "status_code": 200,
  "status": "SUCCESS",
  "message": "PAN Application Initiated Successfully",
  "data": {
    "txid": "50089349",
    "url": "https://connect.inspay.in/nsdl/pan?process_id=2504&txid=50089349&mode=K",
    "number": "9876543210",
    "orderid": "ORD12345"
  }
}

// Error Response:
{
  "status_code": 400,
  "status": "FAILED",
  "message": "Error description"
}

PAN Status Check

Check PAN Application Status

POST Body Auth Header Auth Check the status of a PAN application by order ID
https://secure.inexopay.in/api/nsdl-pan/v1/pan_status.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesOrder ID from PAN request
{
  "status_code": 200,
  "status": "SUCCESS",
  "message": "Status fetched from portal",
  "order_id": "ORD12345",
  "reference": "OPB5020WJ7TM",
  "number": "9876543210",
  "amount": 107.00,
  "date_time": "2025-01-15 10:30:00",
  "data": {
    "status": "Success",
    "orderid": "ORD12345",
    "txid": "484340",
    "amount": 107,
    "opid": "OPB5020WJ7TM",
    "number": "9876543210",
    "created_at": "2026-05-04 18:23:40",
    "updated_at": "2026-05-04 18:23:40"
  }
}

Incomplete Applications

Resume Incomplete PAN Application

POST Body Auth Header Auth Resume an incomplete PAN application.
https://secure.inexopay.in/api/nsdl-pan/v1/incomplete.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesOrder ID of incomplete application
{
  "status_code": 200,
  "status": "SUCCESS",
  "message": "Incomplete PAN Application Resumed",
  "data": {
    "txid": "50089422",
    "url": "https://connect.inspay.in/nsdl/pan_inc?process_id=2504&txid=50089422",
    "orderid": "ORD12345"
  }
}

// Error Response:
{
  "status_code": 400,
  "status": "FAILED",
  "message": "URL Expired, please try again with a new request"
}

Aadhaar Verification APIs

Note: All Aadhaar Verification APIs support both Header Authentication (x-api-key, x-api-username) and Body Authentication (api_key, username).

Send Aadhaar OTP

Send OTP to Aadhaar-Linked Mobile

POST Body Auth Header Auth Send OTP to the mobile number linked with the Aadhaar
https://secure.inexopay.in/api/verification/v1/send-otp.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesYour unique order ID
aadhaar_numberstringYes12-digit Aadhaar number
{
  "status_code": 200,
  "status": "success",
  "message": "Successfully generated One Time Password (OTP).",
  "data": {
    "request_id": "ADHRVFR19052420260531_1e2d274",
    "aadhaar": "441003356445",
    "status": "pending"
  },
  "meta": {
    "request_id": "7c15b0c5-6f72-4487-a61a-9cfc8be80d78",
    "time": "2025-01-15T10:30:00+00:00"
  }
}

Verify Aadhaar OTP

Verify OTP & Get Aadhaar Details

POST Body Auth Header Auth Submit OTP to verify Aadhaar and get details
https://secure.inexopay.in/api/verification/v1/verify-otp.php
ParameterTypeRequiredDescription
api_key / x-api-keystringYesYour API key
username / x-api-usernamestringYesYour username
orderidstringYesYour unique order ID
request_idstringYesRequest ID from send-otp response
otpstringYes6-digit OTP received on mobile
aadhaar_numberstringYesSame Aadhaar number used in send-otp
{
  "status_code": 200,
  "status": "success",
  "message": "Aadhaar verification successful",
  "data": {
    "request_id": "ADHRVFR19052420260531_1e2d274",
    "status": "verified",
    "aadhaar_details": {
      "full_name": "Shivam",
      "dob": "01-01-2001",
      "gender": "Male",
      "address": "Nagla Sarai, Dabar, Agra, Uttar Pradesh, 283110"
    }
  },
  "meta": {
    "request_id": "86573ba4-c189-42c9-a61a-9cfc8be80d78",
    "time": "2025-01-15T10:30:00+00:00"
  }
}

Webhook & Callback

Receive real‑time status updates for all your transactions via webhook or per‑transaction callback.

How it works

  • Set a global webhook URL in your profile (applied to all transactions)
  • Or specify a per‑transaction return_url in the API request (priority over global)
  • When a transaction status changes (success/failure/refund), we’ll send a POST request to your URL
  • Failed webhooks are automatically retried up to 10 times with exponential backoff

Callback Payload

Webhook POST Payload

POST To your webhook/callback URL
Headers:
  • Content-Type: application/x-www-form-urlencoded
  • X-Callback-Source: INEXOPAY-API
orderid=ORD12345
&order_id=ORD12345
&status=success
&remark=Transaction+Successful
&datetime=2026-06-03+15:30:00
&callback_type=global_webhook
FieldTypeDescription
orderidstringYour unique order ID
order_idstringSame as orderid (for compatibility)
statusstringTransaction status: success/failed/refund/pending
remarkstringHuman-readable status message
datetimestringTimestamp of the status update (Y-m-d H:i:s)
callback_typestringglobal_webhook or per_transaction

API Tester

Test any API endpoint live. Enter your credentials and parameters, then hit "Send Request".

Live API Tester