indian_id_validator 1.0.2 copy "indian_id_validator: ^1.0.2" to clipboard
indian_id_validator: ^1.0.2 copied to clipboard

A Dart package to validate Indian ID numbers (Aadhaar, PAN, Passport, Voter ID, Driving Licence, GSTIN, IFSC, etc.)

πŸͺͺ Indian ID Validator #

A lightweight Dart package to validate Indian ID numbers such as Aadhaar, PAN, Passport, Voter ID, Driving Licence, GSTIN, IFSC, Ration Card, and Bank Card (credit/debit).


✨ Features #

  • Aadhaar β€” 12-digit number with Verhoeff checksum validation
  • PAN β€” Standard 10-character alphanumeric format
  • Passport β€” 1 letter + 7 digits
  • Voter ID β€” 3 letters + 7 digits
  • Driving Licence β€” Generic nationwide pattern (e.g., MH1420110012345)
  • GSTIN β€” 15 characters (e.g., 22ABCDE1234F1Z5)
  • IFSC β€” XXXX0YYYYYY pattern (e.g., SBIN0001234)
  • Bank Card β€” 13–19 digits passing the Luhn check
  • Ration Card β€” Simplified 9–12 alphanumeric

πŸ“¦ Installation #

Add this to your pubspec.yaml:

dependencies:
  indian_id_validator: ^1.0.2

πŸš€ Quick start #

import 'package:indian_id_validator/indian_id_validator.dart';

void main() {
  final pan = IndianIdValidator.validate('ABCDE1234F', IdType.PAN);
  print(pan.isValid); // true

  final aadhaar = IndianIdValidator.validate('1234 1234 1234', IdType.AADHAAR);
  print(aadhaar.message); // e.g., "Invalid Aadhaar checksum." or "Valid Aadhaar."
}

🧠 What’s validated? #

  • Aadhaar β€” 12 digits with Verhoeff checksum
  • PAN β€” 5 letters + 4 digits + 1 letter (e.g., ABCDE1234F)
  • Passport β€” 1 letter + 7 digits (e.g., A1234567)
  • Voter ID β€” 3 letters + 7 digits (e.g., ABC1234567)
  • Driving Licence β€” Generic nationwide pattern (e.g., MH1420110012345)
  • GSTIN β€” 15 characters (e.g., 22ABCDE1234F1Z5)
  • IFSC β€” XXXX0YYYYYY pattern (e.g., SBIN0001234)
  • Bank Card β€” 13–19 digits passing the Luhn check
  • Ration Card β€” Simplified 9–12 alphanumeric

Inputs are normalized automatically: spaces/hyphens are removed and letters uppercased.


πŸ“š API overview #

enum IdType { AADHAAR, PAN, PASSPORT, VOTER_ID, DRIVING_LICENSE, GSTIN, RATION_CARD, BANK_IFSC, BANK_CARD }

class ValidationResult {
  final bool isValid;          // Whether the input is valid
  final String message;        // Reason for validity/invalidity
  final String expectedFormat; // Human-friendly format guidance
}

// Main entrypoint
ValidationResult IndianIdValidator.validate(String input, IdType type)

✍️ Examples #

// PAN
final pan = IndianIdValidator.validate('ABCDE1234F', IdType.PAN);

// Aadhaar
final aadhaar = IndianIdValidator.validate('1234-1234-1234', IdType.AADHAAR);

// IFSC
final ifsc = IndianIdValidator.validate('SBIN0001234', IdType.BANK_IFSC);

// Bank Card (Luhn)
final card = IndianIdValidator.validate('4539578763621486', IdType.BANK_CARD);

βš–οΈ Notes #

  • Patterns are derived from official or widely accepted formats; some IDs (e.g., Driving Licence, Ration Card) vary by state. The implementation uses generic patterns and may not cover every regional edge-case.
  • Aadhaar checksum uses the Verhoeff algorithm; Bank card validation uses the Luhn algorithm.
  • This package performs client-side format checks only; it doesn’t query any government or bank database.

πŸ§ͺ Testing #

This package ships with unit tests. Run them with:

dart test


πŸ“„ License #

MIT

4
likes
160
points
12
downloads

Publisher

unverified uploader

Weekly Downloads

A Dart package to validate Indian ID numbers (Aadhaar, PAN, Passport, Voter ID, Driving Licence, GSTIN, IFSC, etc.)

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

More

Packages that depend on indian_id_validator