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
- Get your api_key and username from the dashboard
- Use the API Tester below each endpoint to test live requests
- All APIs use Body Authentication (api_key, username in request body)
Authentication
All API requests require authentication. Pass api_key and username in the request body.
Body Authentication (All APIs)
Pass your API credentials in the request body for all API endpoints.
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key from dashboard |
| username | string | Yes | Your registered username |
Error Codes
Common error codes returned by the API.
| Code | Status | Description |
|---|---|---|
| 200 | Success | Request processed successfully |
| 400 | Bad Request | Missing or invalid request parameters |
| 401 | Unauthorized | Invalid API key or username |
| 402 | Payment Required | Insufficient balance |
| 403 | Forbidden | IP not whitelisted, account not approved, or subscription expired |
| 405 | Method Not Allowed | Wrong HTTP method (e.g., GET instead of POST) |
| 500 | Server Error | Internal server error |
Account & Status APIs
API Status Check
Check API Status & Balance
POST
Body Auth
Check your API status, balance, and plan details
http://panel.inexopay.in/api/check_status.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Registered 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"
}
}
Server Status
Check Server Health
GET
No Auth Required
Get server health, uptime, CPU, RAM, and disk info
http://panel.inexopay.in/api/server_status.php
{
"status": "success",
"timestamp": "2025-01-15 10:30:00",
"server_os": "Linux",
"stats": {
"uptime": "up 45 days",
"cpu_load": "1.25",
"ram_usage": "8.2 GB / 18 GB (45%)",
"disk_usage": "245 GB / 395 GB (62%)",
"health": "Excellent",
"response_speed": "45ms"
},
"status_label": "Online"
}
Balance Check
Check Your Account Balance
POST
Body Auth
Get your current service balance
http://panel.inexopay.in/api/balance.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Registered username |
{
"status": "SUCCESS",
"error_code": 200,
"message": "Balance fetched successfully",
"balance": 1250.50,
"username": "jojo"
}
NSDL Bank APIs
Note: All NSDL Bank APIs use Body Authentication. Pass
api_key and username in the request body along with other parameters. bcagentid is auto-generated from your brand name (no need to pass it).Agent Onboarding
Onboard New NSDL Bank Agent
POST
Body Auth
Register a new NSDL payment bank agent. bcagentid is auto-generated.
http://panel.inexopay.in/api/nsdl-bank/v1/onboarding.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| shop_name | string | Yes | Agent's shop name |
| name | string | Yes | Agent's full name |
| string | Yes | Agent's email address | |
| mobile | string | Yes | Agent's mobile number |
| date_of_birth | string | Yes | Date of birth (YYYY-MM-DD) |
| address | string | Yes | Full address |
| state_name | string | Yes | State name |
| city_name | string | Yes | City name |
| pincode | string | Yes | Area pincode |
| pancard | string | Yes | Agent's PAN number |
ℹ️ Auto-Generated:
bcagentid is automatically generated from your brand (e.g., INEXO0001, INEXO0002) and sent to the provider API. You don't need to pass it.
{
"status_code": 200,
"status": true,
"message": "Agent verified successfully..!! Now you can create your agent account.",
"bcagentid": "INEXO0001",
"agent_id": "NSDLP7",
"api_txn_id": "NSDLP7",
"provider_response": {
"status": true,
"message": "Agent verified successfully..!! Now you can create your agent account."
}
}
// Failure Response (bcagentid not shown)
{
"status_code": 400,
"status": false,
"message": "Agent not verified :: THE GIVEN MOBILENUMBER IS ALREADY REGISTER",
"provider_response": {
"status": false,
"message": "Agent not verified :: THE GIVEN MOBILENUMBER IS ALREADY REGISTER"
}
}
Account Opening
Open New NSDL Bank Account
POST
Body Auth
Initiate a new saving/current account opening. bcagentid is required from your onboarding.
http://panel.inexopay.in/api/nsdl-bank/v1/account-open.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| account_type | string | Yes | saving (or 1) / current (or 2) |
| bcagentid | string | Yes | Your BC Agent ID (from onboarding) |
| agent_pancard | string | No* | Agent's PAN (optional, auto-fetched from profile) |
| first_name | string | Yes | Customer first name |
| last_name | string | Yes | Customer last name |
| string | Yes | Customer email | |
| phone | string | Yes | Customer mobile number |
| pancard | string | Yes | Customer PAN number |
| pincode | string | Yes | Customer area pincode |
| return_url | string | Yes | URL to redirect after completion |
| middle_name | string | No | Customer middle name |
{
"status_code": 200,
"status": true,
"message": "Account Opened Successfully",
"order_id": "INEXO477-1705305000",
"bcagentid": "INEXO477",
"txn_id": "NSDLDCC4FFF9",
"customer_id": "CUST12345",
"account_url": "https://...",
"account_type": "Saving",
"provider_response": { ... }
}
Account Status Check
Check Account Status by PAN
POST
Body Auth
Check NSDL bank account status using PAN number
http://panel.inexopay.in/api/nsdl-bank/v1/account-status.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| pancard | string | Yes | PAN number to check status |
{
"status": true,
"message": "Account status fetched",
"data": { ... }
}
Account Details
Get Account Details by Txn ID
POST
Body Auth
Get full account details using transaction ID
http://panel.inexopay.in/api/nsdl-bank/v1/account-details.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| txn_id | string | Yes | Transaction ID from account-open response |
{
"status": true,
"message": "Record found",
"data": { ... }
}
Account List
Get All Accounts
POST
Body Auth
Get list of all accounts with optional type filter
http://panel.inexopay.in/api/nsdl-bank/v1/account-list.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| account_type | string | No | Filter: saving (or 1) / current (or 2) |
{
"status": true,
"message": "Success",
"data": [
{
"id": 34,
"account_type": 2,
"txn_id": "NSDLDCC4FFF9",
"first_name": "Binod",
"last_name": "Kumar",
"email": "binodk881@gmail.com",
"phone": "7091918888",
"pancard": "EXRPK8854F",
"pincode": "852105",
"status": 1
}
]
}
NSDL PAN APIs
Note: All NSDL PAN APIs use Body Authentication. Pass
api_key and username in the request body along with other parameters.Request PAN
Submit PAN Application
POST
Body Auth
Initiate a new PAN or correction application. Returns INEXOPAY branded redirect URL.
http://panel.inexopay.in/api/nsdl-pan/v1/request_pan.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| number | string | Yes | Applicant mobile number |
| orderid | string | Yes | Your unique order ID |
| pan_mode | string | Yes | KYC mode: EKYC or ESIGN |
| pan_type | string | Yes | new_pan or correction |
{
"status_code": 200,
"status": "SUCCESS",
"message": "Pan Redirection url created",
"txid": "50089349",
"opid": "Order is under process",
"url": "https://yourapp.com/pan-redirect?txid=50089349&mode=K",
"number": "9876543210",
"amount": "107",
"orderid": "ORD12345"
}
// Error Response:
{
"status_code": 400,
"status": "FAILED",
"message": "Error description"
}
PAN Status Check
Check PAN Application Status
POST
Body Auth
Check the status of a PAN application by order ID
http://panel.inexopay.in/api/nsdl-pan/v1/pan_status.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Order ID from PAN request |
{
"status_code": 200,
"status": "SUCCESS",
"message": "Transaction status fetched",
"order_id": "ORD12345",
"reference": "NSDL12345678",
"number": "9876543210",
"amount": 99.00,
"date_time": "2025-01-15 10:30:00"
}
Incomplete Applications
Resume Incomplete PAN Application
POST
Body Auth
Resume an incomplete PAN application. Returns INEXOPAY branded redirect URL.
http://panel.inexopay.in/api/nsdl-pan/v1/incomplete.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Order ID of incomplete application |
{
"txid": "50089422",
"status": "Success",
"opid": "Order is under process",
"message": "Pan Redirection url created",
"url": "https://yourapp.com/pan-redirect?txid=50089422"
}
// Error Response:
{
"status": "Failure",
"message": "URL Expired, please try again with a new request"
}
Aadhaar Verification APIs
Note: All Aadhaar Verification APIs use Body Authentication. Pass
api_key and username in the request body along with other parameters.Send Aadhaar OTP
Send OTP to Aadhaar-Linked Mobile
POST
Body Auth
Send OTP to the mobile number linked with the Aadhaar
http://panel.inexopay.in/api/verification/v1/send-otp.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| aadhaar_number | string | Yes | 12-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
Submit OTP to verify Aadhaar and get details
http://panel.inexopay.in/api/verification/v1/verify-otp.php
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| username | string | Yes | Your username |
| orderid | string | Yes | Your unique order ID |
| request_id | string | Yes | Request ID from send-otp response |
| otp | string | Yes | 6-digit OTP received on mobile |
| aadhaar_number | string | Yes | Same 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-urlencodedX-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
| Field | Type | Description |
|---|---|---|
| orderid | string | Your unique order ID |
| order_id | string | Same as orderid (for compatibility) |
| status | string | Transaction status: success/failed/refund/pending |
| remark | string | Human-readable status message |
| datetime | string | Timestamp of the status update (Y-m-d H:i:s) |
| callback_type | string | global_webhook or per_transaction |
API Tester
Test any API endpoint live. Enter your credentials and parameters, then hit "Send Request".