Achieve compliance with India's Digital Personal Data Protection Act. Detect Aadhaar, PAN, Voter ID, and other identifiers with support for multiple Indian languages.
Complete Indian PII protection
Detect and validate 12-digit Aadhaar numbers with Verhoeff checksum verification.
Recognize Permanent Account Number with format validation.
Detect EPIC (Voter ID) numbers across state formats.
Recognize names in English and regional languages with cultural awareness.
Support Hindi, Bengali, Tamil, Telugu, and other major Indian languages.
Support Digital Personal Data Protection Act requirements.
Simple integration, powerful results
Send your documents, text, or files through our secure API endpoint or web interface.
Our AI analyzes content to identify all sensitive information types with 99.7% accuracy.
Sensitive data is automatically redacted based on your configured compliance rules.
Receive your redacted content with full audit trail and compliance documentation.
Get started with just a few lines of code
import requests
api_key = "your_api_key"
url = "https://api.redactionapi.net/v1/redact"
data = {
"text": "John Smith's SSN is 123-45-6789",
"redaction_types": ["ssn", "person_name"],
"output_format": "redacted"
}
response = requests.post(url,
headers={"Authorization": f"Bearer {api_key}"},
json=data
)
print(response.json())
# Output: {"redacted_text": "[PERSON_NAME]'s SSN is [SSN_REDACTED]"}
const axios = require('axios');
const apiKey = 'your_api_key';
const url = 'https://api.redactionapi.net/v1/redact';
const data = {
text: "John Smith's SSN is 123-45-6789",
redaction_types: ["ssn", "person_name"],
output_format: "redacted"
};
axios.post(url, data, {
headers: { 'Authorization': `Bearer ${apiKey}` }
})
.then(response => {
console.log(response.data);
// Output: {"redacted_text": "[PERSON_NAME]'s SSN is [SSN_REDACTED]"}
});
curl -X POST https://api.redactionapi.net/v1/redact \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "John Smith's SSN is 123-45-6789",
"redaction_types": ["ssn", "person_name"],
"output_format": "redacted"
}'
# Response:
# {"redacted_text": "[PERSON_NAME]'s SSN is [SSN_REDACTED]"}
India's Digital Personal Data Protection Act 2023 establishes comprehensive data protection requirements for organizations processing personal data of Indian residents. With over 1.4 billion people and rapidly growing digital adoption, India represents both a massive market and a complex compliance environment. The Aadhaar system has created universal digital identity, while diverse languages, naming conventions, and regional identifiers add layers of complexity to PII detection.
Our India-specific redaction capabilities address these unique challenges. We detect and validate Aadhaar numbers using the Verhoeff checksum algorithm, recognize PAN, Voter ID, and other government identifiers, support multiple Indian languages, and understand the cultural nuances of Indian naming patterns. This enables comprehensive protection for Indian personal data while supporting business operations.
The Digital Personal Data Protection Act establishes India's privacy framework:
Personal Data:
Key DPDP Principles:
Data Principal Rights:
India's unique identification number requires careful handling:
Aadhaar Format:
Format: XXXX XXXX XXXX (12 digits)
Example: 2345 6789 0123
Structure:
- 12 digits with space separations
- First digit cannot be 0 or 1
- Last digit is Verhoeff checksum
Verhoeff Algorithm Validation:
- Uses dihedral group D5 multiplication
- Permutation table for digit positions
- Inverse table for check digit calculation
Valid: 499118665246 (passes Verhoeff)
Invalid: 499118665247 (fails Verhoeff)
Masked Aadhaar Format:
// UIDAI guidelines recommend masking
Full: 2345 6789 0123
Masked: XXXX XXXX 0123 (last 4 visible)
// Our redaction options:
"full_redact": "[AADHAAR]"
"masked": "XXXX-XXXX-0123"
"last_4": "****0123"
Detection Patterns:
// Various formats in documents
2345 6789 0123
234567890123
2345-6789-0123
Aadhaar: 2345 6789 0123
आधार: २३४५ ६७८९ ०१२३
Permanent Account Number for tax purposes:
PAN Format:
Format: AAAAA9999A (5 letters + 4 digits + 1 letter)
Example: ABCDE1234F
Structure:
- Position 1-3: Alphabetic series (AAA-ZZZ)
- Position 4: Entity type
- P: Individual (Person)
- C: Company
- H: HUF (Hindu Undivided Family)
- F: Firm
- A: AOP (Association of Persons)
- T: Trust
- B: BOI (Body of Individuals)
- L: Local Authority
- J: Artificial Juridical Person
- G: Government
- Position 5: First letter of surname/name
- Position 6-9: Sequential number (0001-9999)
- Position 10: Alphabetic check digit
Example breakdown:
ABCPD1234E
- ABC: Random letters
- P: Individual
- D: First letter of surname
- 1234: Sequential number
- E: Check digit
Voter ID (EPIC):
Format: AAA9999999 (3 letters + 7 digits)
Example: XYZ1234567
Structure:
- First 3 letters: State/area code
- 7 digits: Sequential number
State codes vary by Election Commission assignment
Driving License:
Format: SS-RRYYYYNNNNNNN
Example: KA-0120191234567
Structure:
- SS: State code (KA=Karnataka, MH=Maharashtra, etc.)
- RR: RTO code
- YYYY: Year of issue
- NNNNNNN: Sequential number
Formats vary slightly by state
Passport Number:
Format: A9999999 (1 letter + 7 digits)
Example: J8765432
Structure:
- First letter: Type/series
- 7 digits: Sequential number
GSTIN:
Format: 99AAAAA9999A9Z9 (15 characters)
Example: 27AAPFU0939F1ZV
Structure:
- Position 1-2: State code (01-37)
- Position 3-12: PAN number
- Position 13: Entity number within state for same PAN
- Position 14: Z (default)
- Position 15: Check digit
Contains embedded PAN (positions 3-12)
Indian names follow diverse patterns:
Naming Conventions:
// North Indian (Hindu)
Format: [Given name] [Father's name] [Surname]
Example: Rajesh Kumar Sharma
// South Indian (no surname tradition)
Format: [Initial(s)]. [Given name] or [Father's name] [Given name]
Example: K. Venkatesh, Ramachandran Suresh
// Sikh names
Format: [Given name] Singh/Kaur [Optional surname]
Example: Harpreet Singh Sandhu
// Muslim names
Format: [Given name] [Father's/Family name]
Example: Mohammed Irfan Khan
// Bengali names
Format: [Given name] [Surname]
Example: Sougata Chatterjee
Name Detection Approach:
// Multi-pattern detection
- Database of common Indian first names (5000+)
- Database of Indian surnames/family names
- Religious/community-specific patterns
- Initials handling (Dr. K.V. Rao)
- Honorifics: Shri, Smt, Sri, Kumar, Kumari
// Both English and Devanagari
Rajesh Kumar Sharma
राजेश कुमार शर्मा
Support for major Indian languages:
Supported Scripts:
Hindi (Devanagari): हिन्दी
Bengali: বাংলা
Telugu: తెలుగు
Marathi (Devanagari): मराठी
Tamil: தமிழ்
Gujarati: ગુજરાતી
Kannada: ಕನ್ನಡ
Malayalam: മലയാളം
Punjabi (Gurmukhi): ਪੰਜਾਬੀ
Odia: ଓଡ଼ିଆ
Cross-Script Detection:
// Same identifier in different scripts
Aadhaar: 234567890123
आधार: २३४५६७८९०१२३
// Transliteration handling
राजेश शर्मा = Rajesh Sharma
// Mixed-language documents
"Customer राजेश शर्मा का Aadhaar 2345 6789 0123 है"
Detected: Name (राजेश शर्मा), Aadhaar (2345 6789 0123)
// Mobile numbers
Format: +91 XXXXX XXXXX (10 digits)
Prefixes: 6, 7, 8, 9 (mobile)
Examples:
+91 98765 43210
9876543210
+91-9876543210
// Landlines
Format: +91 [STD code] [Number]
Delhi: +91 11 2345 6789
Mumbai: +91 22 2345 6789
// STD codes vary by city (2-4 digits)
// Standard Indian address
[Door/Flat No], [Building/House Name]
[Street/Road Name]
[Area/Locality]
[City] - [PIN Code]
[State]
Example:
123, Sunrise Apartments
MG Road, Koramangala
Bangalore - 560034
Karnataka
// PIN code format: 6 digits
// First digit: Region (1-8)
// Second digit: Sub-region
// Third digit: Sorting district
// Last 3: Specific post office
PIN 560034:
- 5: South India
- 6: Karnataka
- 0: Bangalore region
- 034: Specific area
Bank Account Numbers:
// Indian bank accounts: 9-18 digits
// Format varies by bank
// IFSC Code (for bank transfers)
Format: AAAA0NNNNNN (11 characters)
Example: SBIN0001234
Structure:
- First 4: Bank code (SBIN=SBI, HDFC=HDFC Bank)
- Fifth: Always 0
- Last 6: Branch code
// UPI ID
Format: username@bankhandle
Example: name@okaxis, phone@ybl
Sector-specific Indian regulations:
Banking (RBI Guidelines):
Healthcare:
Telecom (TRAI):
POST /v1/redact
{
"text": "Customer: Rajesh Sharma, Aadhaar: 2345 6789 0123, PAN: ABCPD1234E",
"country": "IN",
"redaction_types": ["aadhaar", "pan", "voter_id", "name", "phone", "address"],
"options": {
"validate_checksums": true,
"aadhaar_format": "masked",
"languages": ["en", "hi"]
}
}
Response:
{
"redacted_text": "Customer: [NAME], Aadhaar: XXXX-XXXX-0123, PAN: [PAN]",
"detections": [
{
"type": "name",
"value": "Rajesh Sharma",
"confidence": 0.95
},
{
"type": "aadhaar",
"value": "2345 6789 0123",
"valid_checksum": true,
"masked": "XXXX-XXXX-0123",
"confidence": 0.99
},
{
"type": "pan",
"value": "ABCPD1234E",
"entity_type": "Individual",
"confidence": 0.98
}
],
"compliance": ["DPDP_Act"]
}
RedactionAPI has transformed our document processing workflow. We've reduced manual redaction time by 95% while achieving better accuracy than our previous manual process.
The API integration was seamless. Within a week, we had automated redaction running across all our customer support channels, ensuring GDPR compliance effortlessly.
We process over 50,000 legal documents monthly. RedactionAPI handles it all with incredible accuracy and speed. It's become an essential part of our legal tech stack.
The multi-language support is outstanding. We operate in 30 countries and RedactionAPI handles all our documents regardless of language with consistent accuracy.
Trusted by 500+ enterprises worldwide





The Digital Personal Data Protection Act 2023 is India's comprehensive data protection law. It establishes rules for collecting, storing, and processing personal data of Indian residents, with significant penalties for non-compliance.
Aadhaar is India's 12-digit unique identification number linked to biometric and demographic data. It's highly sensitive as it can authenticate identity for banking, taxes, and government services. We validate Aadhaar using the Verhoeff checksum algorithm.
Indian names follow various conventions based on region, religion, and community. We maintain databases of Indian names covering Hindu, Muslim, Sikh, Christian, and regional patterns, supporting both English transliterations and native scripts.
We support major Indian languages including Hindi, Bengali, Telugu, Marathi, Tamil, Gujarati, Kannada, Malayalam, Punjabi, and Odia. Documents in these languages are processed with language-specific NLP models.
India's UIDAI guidelines recommend showing only last 4 digits of Aadhaar. We can detect full Aadhaar numbers and redact/mask according to these guidelines, showing XXXX-XXXX-1234 format.
Yes, we detect GSTIN (GST Identification Numbers) which contain embedded PAN. We validate the format and can redact either fully or preserve the state code for geographic analysis.