v2.0 — Enterprise Ready
INEXOPAY API Portal
Our powerful REST APIs allow you to integrate PAN card applications, NSDL banking services, and wallet management directly into your application. Support for Live and Test environments included.
Environments
We provide two environments to help you build and scale your integration safely.
Environment Base URL Description
Test Mode
MOCK / SIMULATED
Use our Live API Tester in "Test Mode" to see example responses without hitting real servers.
Live Mode
https://mail.inexopay.in
Use your production API Key and real endpoints. Real balance will be deducted.
Authentication
All INEXOPAY APIs require authentication. Credentials must be passed as POST parameters in every request.
Parameter Type Required Description
api_key string Yes Your unique INEXOPAY API key.
username string Yes Your registered INEXOPAY username.
IP Protection: Your API Key is bound to your server IP. Ensure your IP is whitelisted in your panel before making requests.
Integration Code
Sample implementation in popular languages. Use these to jumpstart your integration.
<?php
$url = "https://mail.inexopay.in/api/nsdl-pan/v1/request_pan.php" ;
$postData = [
'api_key' => 'YOUR_API_KEY' ,
'username' => 'YOUR_USERNAME' ,
'orderid' => 'ORD' . time(),
'pan_mode' => 'EKYC' ,
'pan_type' => 'new_pan' ,
'number' => '9876543210' ,
'return_url' => 'https://yourdomain.com/callback'
];
$ch = curl_init($url );
curl_setopt_array($ch , [
CURLOPT_POST => true ,
CURLOPT_POSTFIELDS => http_build_query($postData ),
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_SSL_VERIFYPEER => false
]);
$response = curl_exec($ch );
curl_close($ch );
echo $response ;
?>
import requests
import time
url = "https://mail.inexopay.in/api/nsdl-pan/v1/request_pan.php"
payload = {
'api_key' : 'YOUR_API_KEY' ,
'username' : 'YOUR_USERNAME' ,
'orderid' : 'ORD' + str(int(time.time())),
'pan_mode' : 'EKYC' ,
'pan_type' : 'new_pan' ,
'number' : '9876543210' ,
'return_url' : 'https://yourdomain.com/callback'
}
response = requests.post(url , data=payload )
print (response .text)
const axios = require ('axios' );
const qs = require ('qs' );
async function requestPan () {
const url = 'https://mail.inexopay.in/api/nsdl-pan/v1/request_pan.php' ;
const data = {
'api_key' : 'YOUR_API_KEY' ,
'username' : 'YOUR_USERNAME' ,
'orderid' : 'ORD' + Date.now(),
'pan_mode' : 'EKYC' ,
'pan_type' : 'new_pan' ,
'number' : '9876543210' ,
'return_url' : 'https://yourdomain.com/callback'
};
try {
const response = await axios.post(url , qs.stringify(data ), {
headers: { 'Content-Type' : 'application/x-www-form-urlencoded' }
});
console.log(response .data);
} catch (error) {
console.error(error);
}
}
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
func main () {
apiURL := "https://mail.inexopay.in/api/nsdl-pan/v1/request_pan.php"
data := url.Values{}
data .Set("api_key" , "YOUR_API_KEY" )
data .Set("username" , "YOUR_USERNAME" )
data .Set("orderid" , "ORD12345" )
data .Set("pan_mode" , "EKYC" )
data .Set("pan_type" , "new_pan" )
data .Set("number" , "9876543210" )
data .Set("return_url" , "https://yourdomain.com/callback" )
resp , _ := http.Post(apiURL , "application/x-www-form-urlencoded" , strings.NewReader(data .Encode()))
defer resp .Body.Close()
body , _ := ioutil.ReadAll(resp .Body)
fmt.Println(string(body ))
}
Response Status Codes
Standard responses returned by all INEXOPAY APIs.
HTTP Code Status Meaning / Reason
200 SUCCESS Request completed successfully.
400 FAILED Bad Request — Missing or invalid parameters.
401 FAILED Unauthorized — Invalid API Key or Username.
402 FAILED Payment Required — Insufficient Balance in your wallet.
403 FAILED Forbidden — IP not whitelisted or Plan inactive/expired.
409 FAILED Conflict — Duplicate order_id detected.
500 FAILED Internal Server Error — Something went wrong on our side.
API Status Check
Check your INEXOPAY account status, plan details, balance, and IP verification.
https://mail.inexopay.in/api/check_status.php
Copy
Parameters
Parameter Type Required Description
api_key string Yes Your unique API Key
username string Yes Registered username
Error Codes
Code Status Message
200 SUCCESS API Status Retrieved
401 FAILED API Key and Username are required
401 FAILED Invalid API Key or Username
403 FAILED IP Address Not Whitelisted
403 FAILED No active subscription plan found
403 FAILED Your subscription plan has expired
Response Examples
{
"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"
}
}
{
"status_code" : 401 ,
"status" : "FAILED" ,
"message" : "Invalid API Key or Username" ,
"your_ip" : "103.XX.XX.XX"
}
{
"status_code" : 403 ,
"status" : "FAILED" ,
"message" : "IP Address Not Whitelisted. Your IP: 103.XX.XX.XX does not match Bind IP: 203.XX.XX.XX." ,
"data" : {
"owner_name" : "..." ,
"api_status" : "INACTIVE" ,
"ip_status" : "MISMATCH"
}
}
Server Status
Check INEXOPAY server health, uptime, CPU load, RAM/disk usage, and response speed.
https://mail.inexopay.in/api/server-status.php
Copy
This endpoint does not require authentication. It returns public server health information.
Response Example
{
"status" : "success" ,
"timestamp" : "2026-04-07 18:41:00" ,
"server_os" : "Linux" ,
"stats" : {
"uptime" : "45 days, 12:34:56" ,
"cpu_load" : "1.25, 1.10, 0.95" ,
"ram_usage" : "45% (Used: 8.2 GB / Total: 18 GB)" ,
"disk_usage" : "62% (Used: 245 GB / Total: 395 GB)" ,
"health" : "Excellent" ,
"response_speed" : "45ms"
},
"status_label" : "Online"
}
Balance Check
Check your current INEXOPAY wallet balance. Returns real-time balance with username verification.
https://mail.inexopay.in/api/balance.php
Copy
Parameters
Parameter Type Required Description Example
api_key string Yes Your reseller API key xxxxxxxxxxxxxxxxx
username string Yes Your reseller username testuser123
Error Codes
Code Status Message
200 SUCCESS Balance fetched successfully
400 FAILED Missing or Invalid Parameters (api_key and username both required)
401 FAILED Invalid Api Key or Username
500 FAILED Internal Server Error
Response
{
"status" : "SUCCESS" ,
"error_code" : 200 ,
"message" : "Balance fetched successfully" ,
"balance" : 1250.50 ,
"username" : "jojo"
}
{
"status" : "FAILED" ,
"error_code" : 401 ,
"message" : "Invalid Api Key or Username"
}
1. Agent Onboarding
Register a new BC Agent for NSDL Bank. BC Agent ID will be auto-generated by the system (e.g., INEXO0001, INEXO0002).
https://mail.inexopay.in/api/nsdl-bank/v1/onboarding.php
Copy
Parameters
Parameter Type Required Description Example
api_key string Yes Your reseller API key xxxx-xxxx-xxxx
username string Yes Your reseller username testuser123
order_id string Yes Unique ID from your system ORD1001
shop_name string Yes Shop / Agency name My Shop
name string Yes Agent full name Rahul Kumar
email string Yes Agent email address rahul@gmail.com
mobile string Yes 10-digit mobile number 9876543210
date_of_birth string Yes YYYY-MM-DD format 2000-05-15
address string Yes Full address Mathura, UP
state_name string Yes State name Uttar Pradesh
city_name string Yes City name Mathura
pincode string Yes Area pincode 281001
pancard string Yes PAN Card number AWTPL9909L
Error Codes
Code Status Meaning
200 true Success
400 false Bad Request (Missing Parameters)
401 false Unauthorized (Invalid API Key/Username)
409 false Duplicate order_id
Response
{
"status" : true ,
"message" : "Agent onboarded successfully" ,
"data" : {
"bcagentid" : "INEXO0001" ,
"agent_name" : "Rahul Kumar" ,
"shop_name" : "My Shop" ,
"mobile" : "9876543210" ,
"email" : "rahul@gmail.com" ,
"created_at" : "2025-01-15 10:30:00"
}
}
{
"status" : false ,
"error_code" : 401 ,
"message" : "Invalid API key or username"
}
2. New Account Open
Open a new savings or current account via NSDL Bank. Requires a registered BC Agent ID from onboarding.
https://mail.inexopay.in/api/nsdl-bank/v1/account-open.php
Copy
Parameters
Parameter Type Required Description Example
api_key string Yes Your reseller API key xxxx-xxxx-xxxx
username string Yes Your reseller username testuser123
order_id string Yes Unique ID from your system ORD2001
account_type string Yes saving or current saving
bcagentid string Yes BC Agent ID from onboarding INEXO0001
agent_pancard string Yes Agent PAN card number AWTPL9929J
first_name string Yes Customer first name Rahul
middle_name string No Customer middle name Kumar
last_name string Yes Customer last name Sharma
email string Yes Customer email rahul@gmail.com
phone string Yes Customer mobile number 9876543210
pancard string Yes Customer PAN card AWTPL9929J
pincode string Yes Customer pincode 281001
Error Codes
Code Status Meaning
200 true Success
400 false Bad Request (Missing Parameters)
401 false Unauthorized (Invalid API Key/Username)
409 false Duplicate order_id
Response
{
"status" : true ,
"message" : "Account opened successfully" ,
"data" : {
"account_number" : "NSDL00123456789" ,
"account_type" : "saving" ,
"customer_name" : "Rahul Kumar Sharma" ,
"ifsc_code" : "NSDL0000001" ,
"branch" : "Digital Branch" ,
"status" : "active" ,
"created_at" : "2025-01-15 11:00:00"
}
}
{
"status" : false ,
"error_code" : 409 ,
"message" : "Duplicate order_id"
}
3. Status Check
Check the current status of a transaction using your order_id.
https://mail.inexopay.in/api/nsdl-bank/v1/account-status.php
Copy
Parameters
Parameter Type Required Description Example
api_key string Yes Your API key xxxx-xxxx-xxxx
username string Yes Your username testuser123
order_id string Yes The unique order_id you provided ORD1001
Error Codes
Code Status Meaning
200 true Success
400 false Bad Request (Missing Parameters)
401 false Unauthorized (Invalid API Key/Username)
409 false Duplicate order_id
Response
{
"status" : true ,
"message" : "Account status fetched" ,
"data" : {
"order_id" : "ORD1001" ,
"account_status" : "active" ,
"account_number" : "NSDL00123456789" ,
"account_type" : "saving" ,
"kyc_status" : "verified" ,
"last_updated" : "2025-01-15 12:00:00"
}
}
4. Account Details
Fetch full details of an account application using the customer's PAN card.
https://mail.inexopay.in/api/nsdl-bank/v1/account-details.php
Copy
Parameters
Parameter Type Required Description Example
api_key string Yes Your reseller API key xxxx-xxxx-xxxx
username string Yes Your reseller username testuser123
pancard string Yes Customer PAN card number AWTPL9929J
Error Codes
Code Status Meaning
200 true Success
400 false Bad Request (Missing Parameters)
401 false Unauthorized (Invalid API Key/Username)
409 false Duplicate order_id
Response
{
"status" : true ,
"message" : "Account details fetched" ,
"data" : {
"account_number" : "NSDL00123456789" ,
"account_type" : "saving" ,
"customer_name" : "Rahul Kumar Sharma" ,
"email" : "rahul@gmail.com" ,
"phone" : "9876543210" ,
"ifsc_code" : "NSDL0000001" ,
"branch" : "Digital Branch" ,
"balance" : "15000.00" ,
"pancard" : "AWTPL9929J" ,
"kyc_status" : "verified" ,
"account_status" : "active" ,
"opened_date" : "2025-01-15" ,
"last_transaction" : "2025-01-20 14:30:00"
}
}
PAN Apply
Create a new PAN application (New PAN or Correction). Returns an Auto-Submit HTML Form that redirects the user directly to NSDL portal for eKYC/eSign process.
https://mail.inexopay.in/api/nsdl-pan/v1/request_pan.php
Copy
Parameters
Parameter Type Required Description Example
api_key / token string Yes User API Key / Token xxxxxxxxxxxxxxxxx
username string Yes Username testuser123
number string Yes Mobile Number 9876543210
orderid string Yes Unique Order ID ORD12345
pan_mode string Yes EKYC or ESIGN EKYC
pan_type string Yes new_pan or correction new_pan
return_url string Yes Callback URL for status updates https://yourdomain.com/callback
Error Codes
Code Status Message
200 SUCCESS Auto-Submit HTML Form returned
400 FAILED Missing or Invalid Parameters
401 FAILED Invalid API Key or Username
402 FAILED Insufficient Balance
403 FAILED IP Address Not Whitelisted / Account Inactive
Response Examples
<!DOCTYPE html>
<html>
<body onload="document.forms[0].submit()">
<form action="https://assisted-service.egov.proteantech.in/..." method="post">
<input type="hidden" name="req" value="...">
</form>
</body>
</html>
{
"status_code" : 401 ,
"status" : "FAILED" ,
"message" : "Invalid API Key or Username"
}
Integration Tip: If you use file_get_contents or curl, simply echo the response from our API. The user's browser will automatically handle the redirection to NSDL.
PAN Status Check
Check the current status of a PAN application using Order ID. This helps you keep your local database updated with Success/Failed/Pending status.
https://mail.inexopay.in/api/nsdl-pan/v1/pan_status.php
Copy
Parameters
Parameter Type Required Description Example
api_key / token string Yes User API Key / Token xxxxxxxxxxxxxxxxx
username string Yes Username testuser123
orderid string Yes Unique Order ID ORD12345
Error Codes
Code Status Message
200 SUCCESS Status will be PENDING / SUCCESS / FAILED
400 FAILED Missing or Invalid Parameters
401 FAILED Invalid API Key or Username
404 FAILED No PAN application found with this Order ID
Response Examples
{
"status_code" : 200 ,
"status" : "SUCCESS" ,
"message" : "Transaction status fetched successfully" ,
"order_id" : "ORD12345" ,
"reference" : "NSDL12345678" ,
"pan_mode" : "NEW_PAN" ,
"amount" : 99.00 ,
"balance" : 1152.00 ,
"date_time" : "2026-04-12 10:00:00" ,
"username" : "testuser123"
}
{
"status_code" : 404 ,
"status" : "FAILED" ,
"message" : "No PAN application found with this Order ID"
}
Incomplete PAN Resume
Resume an incomplete PAN application using Order ID or Voter ID. Returns an Auto-Submit HTML Form to redirect the user directly to the NSDL resume page.
https://mail.inexopay.in/api/nsdl-pan/v1/incomplete.php
Copy
Parameters
Parameter Type Required Description Example
api_key / token string Yes User API Key / Token xxxxxxxxxxxxxxxxx
username string Yes Username testuser123
orderid string Yes Order ID or Voter ID ORD123456
Response Examples
<!DOCTYPE html>
<html>
<body onload="document.forms[0].submit()">
<form action="https://assisted-service.egov.proteantech.in/..." method="post">
<input type="hidden" name="req" value="...">
</form>
</body>
</html>
{
"status_code" : 400 ,
"status" : "FAILED" ,
"message" : "No PAN application found with this Order ID for your account"
}
INEXOPAY
© 2026 INEXOPAY. All rights reserved. Built with ❤️