Document Verification

Verify government-issued identity documents with AI-powered authenticity checks, data extraction, and fraud detection.

Document Verification

Authenticate government-issued identity documents using AI-powered verification that checks authenticity, extracts data, and detects fraud across 2,500+ document types from 195 countries.

Supported Documents

Primary Documents

  • Passports - All countries, biometric and non-biometric
  • National ID Cards - Government-issued photo IDs
  • Driver Licenses - All regional formats
  • Residence Permits - Work permits, permanent residence cards
  • Visa Documents - Travel visas with photo

Document Coverage

RegionCountriesDocument Types
Europe50450+
Americas35380+
Asia48620+
Africa54580+
Oceania890+

1 Credit Per document verification

Verification Process

Step 1: Document Upload

Users can submit documents via:

Dashboard Upload:

  • Drag-and-drop interface
  • Mobile camera capture
  • File selection (JPG, PNG, PDF)

Verification Link:

await fetch(`/api/v3/verifications/${verificationId}/send-link`, {
  method: 'POST',
  body: JSON.stringify({
    method: 'email', // or 'sms'
    expiresIn: 7 // days
  })
});

API Upload:

const formData = new FormData();
formData.append('front', frontImage);
formData.append('back', backImage); // if applicable
 
await fetch(`/api/v3/verifications/${verificationId}/documents`, {
  method: 'POST',
  body: formData
});

Step 2: AI Analysis

Our verification engine performs:

Authenticity Checks:

  • Security feature detection (holograms, watermarks, UV elements)
  • Template matching against known document formats
  • Font and layout consistency analysis
  • Microprint verification
  • Document aging and wear pattern analysis

Data Extraction (OCR):

  • Full name (first, middle, last)
  • Date of birth
  • Document number
  • Issue and expiry dates
  • Nationality
  • Address (if present)
  • MRZ (Machine Readable Zone) parsing

Fraud Detection:

  • Photoshop manipulation detection
  • Screen capture detection
  • Black and white copy detection
  • Photo substitution detection
  • Document expiry check

Processing time: 5-30 seconds

Step 3: Face Extraction

Extract face photo from document for biometric matching:

{
  "faceExtracted": true,
  "faceQuality": 95, // 0-100 score
  "facePosition": {
    "x": 120,
    "y": 80,
    "width": 180,
    "height": 220
  }
}

Face quality factors:

  • Resolution and sharpness
  • Lighting consistency
  • Face angle (frontal preferred)
  • Eyes open and visible
  • No obstructions (glasses, masks)

Document Types

Passports

What We Check:

  • MRZ validation (checksums, format)
  • Biometric chip data (if available)
  • Security features (holographic strip, watermarks)
  • Photo consistency with holder
  • Expiry date validity

Accuracy: 99.9% (highest due to standardised format)

Common Issues:

  • Poor image quality (blurred, dark)
  • Glare on plastic page
  • Expired passport
  • Damaged MRZ

National ID Cards

What We Check:

  • Front and back consistency
  • Security features specific to issuing country
  • Data extraction from both sides
  • Photo quality and consistency

Accuracy: 98.5%

Common Issues:

  • Regional format variations
  • Security feature differences by year
  • Lamination glare
  • Worn/damaged cards

Driver Licenses

What We Check:

  • State/region-specific format validation
  • Security features (holograms, microprint)
  • Address verification
  • Class and restrictions

Accuracy: 97.8%

Common Issues:

  • Thousands of regional formats
  • Frequent design updates
  • Address outdated vs. user input
  • Restrictions field complexity

Data Extraction

Extracted Fields

FieldExtraction RateValidation
Full Name99.8%Compared to applicant data
Date of Birth99.9%Age calculation, format validation
Document Number99.5%Checksum validation (if applicable)
Expiry Date99.7%Not expired check
Nationality99.9%ISO country code
Address98.5%Format validation
MRZ Code99.9%Checksum validation
Gender99.3%M/F/X normalization
Issue Date98.1%Not future-dated check

Data Validation

Applicant Match: Compare extracted data with applicant details you provided:

{
  "dataMatch": {
    "firstName": true,
    "lastName": true,
    "dateOfBirth": false, // Mismatch flagged!
    "nationality": true
  },
  "alerts": [
    {
      "field": "dateOfBirth",
      "expected": "1990-01-15",
      "extracted": "1990-01-14",
      "severity": "medium"
    }
  ]
}

Data Mismatch Alerts

Review all mismatches before approving. Common causes:

  • Typos in applicant data entry
  • OCR errors on damaged documents
  • Different name formats (e.g., "John" vs "Jonathan")
  • Date format confusion (DD/MM/YY vs MM/DD/YY)

Document Quality Requirements

Image Requirements

RequirementSpecification
FormatJPG, PNG, PDF
Min Resolution1200x900 pixels
Max File Size10 MB
ColorFull color (not B&W)
LightingEven, no shadows
FocusSharp, no blur

Common Quality Issues

❌ Rejected:

  • Screenshot of document (not original photo)
  • Black and white copy
  • Blurred or out of focus
  • Heavy glare or shadows
  • Corners cut off
  • Text unreadable

✅ Accepted:

  • Original photo taken with camera
  • Full color
  • Sharp and in focus
  • Even lighting
  • Full document visible
  • Text clearly readable

Fraud Detection

Detection Capabilities

Photoshop Manipulation:

  • Pixel-level analysis
  • Metadata inspection
  • Compression artifact detection
  • Layer detection
  • Clone stamp detection

Photo Substitution:

  • Face photo blending artifacts
  • Lighting inconsistency on face vs. background
  • Resolution mismatch
  • Perspective distortion

Fake Documents:

  • Template mismatch with genuine documents
  • Missing security features
  • Incorrect fonts or layout
  • Color inconsistencies

Screen Capture:

  • Pixel pattern analysis
  • EXIF data inspection
  • Moiré pattern detection

Fraud Score

Every document receives a fraud score:

ScoreAssessmentAction
0-20Very Low RiskAuto-approve
21-40Low RiskReview recommended
41-60Medium RiskManual review required
61-80High RiskLikely fraudulent
81-100Very High RiskReject

Best Practices

  1. Request verification links - Better image quality than manual uploads
  2. Require both sides - Front and back for ID cards and driver licences
  3. Set quality thresholds - Reject poor quality images automatically
  4. Review data mismatches - Don't auto-approve if alerts present
  5. Check expiry dates - Reject expired documents
  6. Enable liveness check - Combine with biometric verification for high-risk

API Reference

Upload Document

POST /api/v3/verifications/:id/documents
 
const formData = new FormData();
formData.append('documentType', 'passport'); // passport, id_card, drivers_license
formData.append('front', frontImage);
formData.append('back', backImage); // optional
 
const response = await fetch(`/api/v3/verifications/${verificationId}/documents`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`
  },
  body: formData
});

Get Verification Results

GET /api/v3/verifications/:id
 
const response = await fetch(`/api/v3/verifications/${verificationId}`, {
  headers: {
    'Authorization': `Bearer ${apiKey}`
  }
});
 
const data = await response.json();
// data.status: 'approved', 'manual_review', 'rejected'
// data.extractedData: { firstName, lastName, dob, ... }
// data.documentValidity: boolean
// data.fraudScore: 0-100

Troubleshooting

Low Extraction Accuracy

Symptoms: Missing or incorrect extracted data

Solutions:

  1. Improve image quality (better lighting, higher resolution)
  2. Request new photo without glare
  3. Ensure full document visible in frame
  4. Check for damaged or worn documents

High Fraud Score (False Positive)

Symptoms: Genuine document flagged as fraudulent

Common Causes:

  • Document photo taken on glossy surface (glare)
  • Very new document (pristine condition looks "too perfect")
  • Regional format not in training data
  • Unusual security features

Solutions:

  • Request new photo without glare
  • Manual review by compliance team
  • Request alternative document
  • Report false positive to improve ML model

Document Not Recognised

Symptoms: "Unsupported document type" error

Solutions:

  1. Check document is from supported country
  2. Ensure document is a primary ID (not student ID, library card, etc.)
  3. Try different document type if available
  4. Contact support to add new document format

Next Steps

See it in action

Experience the full power of VeriPlus compliance platform.

Start Free Trial

Ready to get started?

Start with our free plan. No credit card required.

We value your privacy

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Read our Privacy Policy and Cookie Policy for more information.