PAN Card · PAN Card Services
New PAN Application
Generate a white-label redirection URL for a new NSDL PAN card application.
POST request
URL: https://uat-api.vizodigital.com/api/v1/pancard/new
Body
{
"number": "9876543210",
"mode": "EKYC",
"orderid": "PAN_ORD_1001"
}
Include a valid Bearer token with every request
Code sample
curl -X POST "https://uat-api.vizodigital.com/api/v1/pancard/new" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"number": "9876543210",
"mode": "EKYC",
"orderid": "PAN_ORD_1001"
}'
Success Response
{
"txid": 898494,
"status": "Success",
"opid": "Order is under process",
"message": "Pan Redirection url created",
"url": "https://api.vizodigital.com/api/v1/pancard/redirect/PAN_ORD_1001",
"number": "9876543210",
"amount": "107.00",
"orderid": "PAN_ORD_1001"
}
Failure response
{
"status": "Failure",
"message": "Please enter correct Mobile number, it must be 10 digit"
}
Overview
Generate an instant NSDL redirection URL for a New PAN Card application (Form 49A).
How it works:
- Call this API with the applicant's mobile number, desired mode (
EKYCorESIGN), and a uniqueorderid. - ₹107.00 is debited from your developer wallet balance.
- Open the returned white-label
urlin the applicant's browser. - The applicant authorizes Aadhaar and completes the form directly on the official Protean NSDL gateway.
- If the applicant completes the application, acknowledgment number is generated.
- If the applicant cancels or does not complete the form, the ₹107.00 fee is automatically refunded to your wallet.
Path Aliases:
POST /api/v1/pancard/newGET /api/v1/pancard/new?number=9876543210&mode=EKYC&orderid=PAN_ORD_1001POST /api/v1/nsdl/new_pan
Headers
-
Authorization · string required
Sanctum Bearer token: `Bearer <your_token>`. Generated from `POST /api/v1/auth/client-credentials` using your production client credentials.
Example: Bearer 1|abc123xyz789token...
-
Content-Type · string required
Must be `application/json` for POST requests.
Example: application/json
-
Accept · string required
Must be `application/json`.
Example: application/json
Parameters
-
number · query · string required
Applicant's 10-digit mobile number
Example: 9876543210
Schema
{ "type": "string" } -
mode · query · string required
EKYC or ESIGN
Example: EKYC
Schema
{ "type": "string" } -
orderid · query · string required
Unique order reference ID
Example: PAN_ORD_1001
Schema
{ "type": "string" }
Body
New PAN Application JSON request payload
Schema
{
"type": "object",
"required": [
"number",
"mode",
"orderid"
],
"properties": {
"number": {
"type": "string",
"description": "Applicant's 10-digit mobile number (e.g. `9876543210`)."
},
"mode": {
"type": "string",
"enum": [
"EKYC",
"ESIGN"
],
"description": "`EKYC` = Instant paperless application using Aadhaar OTP / Biometric. No physical signature or photo upload required. `ESIGN` = Application with scanned signature and photo upload."
},
"orderid": {
"type": "string",
"maxLength": 64,
"description": "Your unique order/transaction reference ID for this application. Max 64 alphanumeric characters."
}
}
}
Example
{
"number": "9876543210",
"mode": "EKYC",
"orderid": "PAN_ORD_1001"
}
Responses
-
200 · application/json default
Redirection URL generated successfully.
Example
{ "txid": 898494, "status": "Success", "opid": "Order is under process", "message": "Pan Redirection url created", "url": "https://api.vizodigital.com/api/v1/pancard/redirect/PAN_ORD_1001", "number": "9876543210", "amount": "107.00", "orderid": "PAN_ORD_1001" } -
422 · application/json
Validation error (Invalid mobile or missing fields).
Example
{ "status": "Failure", "message": "Please enter correct Mobile number, it must be 10 digit" } -
422 · application/json
Insufficient developer wallet balance.
Example
{ "status": "Failure", "message": "Insufficient wallet balance. Required: ₹107.00, Available: ₹25.00" } -
422 · application/json
Duplicate order ID used.
Example
{ "status": "Failure", "message": "Duplicate orderid" }
Errors
-
INVALID_INPUT · HTTP 422
Please enter correct Mobile number, it must be 10 digit
The mobile number provided does not match 10-digit Indian mobile format.
{ "status": "Failure", "message": "Please enter correct Mobile number, it must be 10 digit" } -
INSUFFICIENT_BALANCE · HTTP 422
Insufficient wallet balance. Required: ₹107.00, Available: ₹25.00
Developer wallet does not have sufficient balance to cover the ₹107 application fee.
{ "status": "Failure", "message": "Insufficient wallet balance. Required: ₹107.00, Available: ₹25.00" } -
DUPLICATE_ORDER_ID · HTTP 422
Duplicate orderid
The orderid has already been used for a previous transaction by your account.
{ "status": "Failure", "message": "Duplicate orderid" } -
SERVICE_NOT_ENABLED · HTTP 403
PAN Card is not enabled for your account. Contact your account manager to activate it.
PAN Card service has not been activated for your user account by the platform administrator.
{ "status": "error", "code": "service_not_enabled", "message": "PAN Card is not enabled for your account." } -
PRODUCTION_CREDENTIALS_REQUIRED · HTTP 403
PAN Card has no sandbox. Use your production credentials.
NSDL PAN Card is a live-only service. Calls using UAT sandbox tokens are rejected.
{ "status": "error", "code": "production_credentials_required", "message": "PAN Card has no sandbox. Use your production credentials." } -
UNAUTHENTICATED · HTTP 401
Unauthenticated.
Missing or invalid Bearer token in Authorization header.
{ "message": "Unauthenticated." }
Notes
Wallet Billing (₹107.00) Flat ₹107.00 is debited from your developer wallet upon application URL creation. Please ensure your wallet balance is maintained before calling this endpoint.
Automated Refund Guarantee
- Immediate Failure Refund: If the upstream gateway fails to create the redirection URL (gateway timeout, network failure), the ₹107 fee is refunded to your wallet immediately.
- Cancellation / Timeout Refund: If the customer abandons the application, closes the browser, or denies geolocation, once the NSDL session expires or reports failure, the ₹107 fee is automatically credited back to your developer wallet.
- Client Webhook Notification: When a refund occurs, an automated webhook event (
transaction.failed) is dispatched to your registered webhook URL.
White-label Redirection Bridge
The returned url is a white-label bridge (https://api.vizodigital.com/api/v1/pancard/redirect/{orderid}) that seamlessly redirects the applicant's browser to the official government NSDL portal (onlineservices.nsdl.com) without revealing aggregator branding.
Mandatory Browser Geolocation
NSDL government guidelines strictly require browser location access. If the applicant denies geolocation, NSDL terminates the transaction with error code GLA002. Always instruct applicants to allow location access when prompted.
Rate Limits
60/min
Webhooks
Webhook details for this endpoint can be documented in the CMS.