Introduction
Welcome to the SecureDesk API documentation. Our APIs allow you to integrate real-time Identity Verification and Banking Validation services into your applications seamlessly.
Integration Flow
1. Sign Up: Create an account on the dashboard.
2. Activate Services: Ensure the products (PAN, Aadhaar, etc.) are active in your plan.
3. Whitelist IP: Add your server IP to the whitelist in settings.
4. Integrate: Use your Agent ID and Token to make requests.
Authentication
All API requests must include your unique credentials in the HTTP Headers. These are used to authenticate your account and deduct balances.
Required Headers
| Header Key | Value | Required |
|---|---|---|
agent_id | Your unique Agent ID (e.g., SD1001) | Yes |
token | Your Secret Access Token | Yes |
401 Unauthorized error.
PAN Verification
Validate a Permanent Account Number (PAN) and retrieve the cardholder's name and status.
Request Body
| Parameter | Type | Description |
|---|---|---|
pan_number | String | Valid 10-digit PAN Number. |
order_id | String | Unique Order ID for tracking (max 50 chars). |
{
"pan_number": "ABCDE1234F",
"order_id": "ORD_PAN_001"
}
Success Response
{
"status_code": 200,
"status": "success",
"message": "PAN Validate Successfully",
"txn_id": "TXN-A1B2C3",
"order_id": "ORD_PAN_001",
"debited_amount": 2.50,
"available_balance": "950.00",
"data": {
"pan_number": "ABCDE1234F",
"name": "RAJESH KUMAR",
"status": "VALID"
}
}
Aadhaar Verification
Aadhaar verification is a two-step process: First, generate an OTP, then validate it.
Step 1: Send OTP (Request)
Send a request with type: "send_otp". No balance is deducted for this step.
{
"type": "send_otp",
"aadhaar_number": "999988887777",
"order_id": "ORD_ADR_01"
}
{
"status_code": 200,
"status": "success",
"message": "OTP Generated Successfully",
"txn_id": "TXN_123456", // Save this for Step 2
"order_id": "ORD_ADR_01"
}
Step 2: Validate OTP (Response)
Send a request with type: "validate_otp" including the OTP received by the user and the txn_id from Step 1.
{
"type": "validate_otp",
"aadhaar_number": "999988887777",
"otp": "123456",
"txn_id": "TXN_123456",
"order_id": "ORD_ADR_01"
}
{
"status_code": 200,
"status": "success",
"message": "OTP Validate Successfully",
"debited_amount": 5.00,
"data": {
"name": "Amit Verma",
"dob": "1990-01-01",
"gender": "M",
"address": "B-12, Sector 4, Delhi...",
"image_src": "base64_string..."
}
}
Bank Account Verification
Performs a penny-drop verification to check if a bank account is valid and returns the beneficiary name.
Request Body
| Parameter | Type | Description |
|---|---|---|
account_number | String | The bank account number. |
ifsc | String | Valid IFSC Code. |
order_id | String | Unique Order ID. |
name | String | (Optional) Name to match. |
{
"account_number": "987654321012",
"ifsc": "SBIN0001234",
"order_id": "ORD_BNK_99"
}
Success Response
{
"status_code": 200,
"status": "success",
"message": "Bank Verification Successful",
"debited_amount": 3.00,
"data": {
"BeneName": "VIKRAM SINGH",
"BankRef": "IMPS12345678"
}
}
Mobile To Multiple Account
Fetch all bank accounts linked to a specific mobile number.
Request Body
| Parameter | Type | Description |
|---|---|---|
mobile_number | String | 10-digit Mobile Number. |
order_id | String | Unique Order ID. |
{
"mobile_number": "9999888877",
"order_id": "ORD_M2A_01"
}
Success Response
{
"status_code": 200,
"status": "success",
"message": "Accounts Fetched Successfully",
"data": {
"mobile_number": "9999888877",
"details": [
{
"full_name": "Dummy1",
"account_number": "123456789012",
"ifsc": "HDFC0001234"
}
]
}
}
Mobile To IFSC & Account
Fetch detailed account and IFSC information using a mobile number.
Request Body
| Parameter | Type | Description |
|---|---|---|
mobile_number | String | 10-digit Mobile Number. |
order_id | String | Unique Order ID. |
{
"mobile_number": "9999888877",
"order_id": "ORD_M2I_01"
}
Success Response
{
"status_code": 200,
"status": "success",
"data": {
"name": "Vishal Singh",
"ifsc": "FDRL0007717",
"ifsc_details": {
"bank": "Federal Bank",
"branch": "NEO BANKING"
}
}
}
VPA / UPI Info
Verify a Unified Payments Interface (UPI) ID and fetch registered name and bank details.
Request Body
| Parameter | Type | Description |
|---|---|---|
upi_id | String | Valid UPI ID (e.g., number@ybl). |
order_id | String | Unique Order ID. |
{
"upi_id": "9988776655@ybl",
"order_id": "ORD_UPI_01"
}
Success Response
{
"status_code": 200,
"status": "success",
"message": "VPA Details Found",
"data": {
"bank_name": "Yes Bank",
"upi_handle": "@ybl",
"upi_id": "9988776655@ybl"
}
}
OTP SMS Service
Send an OTP via SMS to verify a mobile number using our notification gateway.
Request Body
| Parameter | Type | Description |
|---|---|---|
number | String | 10-digit Mobile Number. |
otp | String | The OTP code to send. |
order_id | String | Unique Order ID. |
{
"number": "9988776655",
"otp": "5896",
"order_id": "ORD_SMS_01"
}
Success Response
{
"status_code": 200,
"status": "success",
"message": "OTP Sent Successfully",
"debited_amount": 0.25,
"available_balance": "940.00"
}
Status Codes
Standard HTTP status codes used by the API to indicate success or failure.
| Code | Meaning | Description |
|---|---|---|
| 200 | Success | Request processed (check status field for logic success). |
| 400 | Bad Request | Missing parameters (e.g., missing order_id). |
| 401 | Unauthorized | Invalid agent_id or token. |
| 402 | Payment Required | Insufficient wallet balance. |
| 403 | Forbidden | IP not whitelisted or Account inactive. |
| 409 | Conflict | Duplicate order_id detected. |