OCR to Verification Workflow for Indian Documents

Anas Nadeem

Anas Nadeem

Founder

25 June 20267 min read
OCR to Verification Workflow for Indian Documents

OCR and verification are related, but they are not the same.

OCR answers:

What text is printed on this document?

Verification answers:

Does this identifier match a trusted source or usable record?

That distinction is basic, but it prevents bad product decisions.

A fake PAN card can still have readable text. A cancelled GSTIN can still appear on an old invoice. A cheque can show an account number and IFSC that still need bank verification. An FSSAI certificate PDF can contain a license number that needs a current status check.

OCR helps with data capture. Verification helps with trust.

The Practical Workflow

A reliable document workflow usually has five steps:

  1. Upload the document.
  2. Extract fields using OCR.
  3. Let the user or operations team correct important fields when needed.
  4. Verify the identifier against the relevant source.
  5. Store the structured result and decision outcome.

The middle step matters. If OCR extracts the wrong digit from a cheque or PAN, immediate verification can create confusing results. For high-risk workflows, show the extracted fields before verification.

Current OCR Extraction Surface

TheVerifico supports OCR extraction for common Indian documents.

DocumentEndpoint
PANPOST /api/v1/documents/extract/pan
Individual PAN enhanced OCRPOST /api/v1/documents/extract/pan-individual
AadhaarPOST /api/v1/documents/extract/aadhaar
Aadhaar front and backPOST /api/v1/documents/extract/aadhaar/complete
GST certificatePOST /api/v1/documents/extract/gst
Cancelled chequePOST /api/v1/documents/extract/cheque
Driving licensePOST /api/v1/documents/extract/dl
FSSAI certificatePOST /api/v1/documents/extract/fssai

OCR responses should be treated as extracted data, not final approval.

Current Verification Surface

TheVerifico supports number-based verification for:

VerificationEndpoint
Bank accountPOST /api/v1/verify/bank
PANPOST /api/v1/verify/pan
PAN AdvancedPOST /api/v1/verify/pan_advanced
GSTINPOST /api/v1/verify/gst
MSME/UdyamPOST /api/v1/verify/msme
Driving licensePOST /api/v1/verify/dl
FSSAIPOST /api/v1/verify/fssai
Doctor/NMCPOST /api/v1/verify/doctor

Not every OCR document maps to a current verification route. Aadhaar is the clearest example: Aadhaar image OCR is extraction. Offline Aadhaar verification needs UIDAI artifacts such as Secure QR or offline XML and should not be described as the same thing as image OCR.

Example: PAN OCR Then PAN Verification

Extract the PAN number from an uploaded image:

curl
curl -X POST "https://api.theverifico.com/api/v1/documents/extract/pan" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@pan-card.jpg"

Example OCR response:

json
{
  "success": true,
  "document_type": "pan",
  "status": "completed",
  "data": {
    "pan_number": "ABCDE1234F",
    "name": "JOHN DOE",
    "father_name": "RICHARD DOE",
    "dob": "01/01/1990"
  },
  "processing_time_ms": 940
}

Then verify the extracted PAN:

curl
curl -X POST "https://api.theverifico.com/api/v1/verify/pan" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pan_number": "ABCDE1234F"}'

Example verification response:

json
{
  "success": true,
  "verification_type": "pan",
  "verification_data": {
    "pan_number": "ABCDE1234F",
    "full_name": "JOHN DOE",
    "category": "person",
    "pan_status": "E",
    "pan_status_desc": "Existing and Valid"
  },
  "processing_time_ms": 820
}

The first response came from document extraction. The second came from verification.

Example: Cheque OCR Then Bank Verification

A cancelled cheque helps collect payout details. It should not be the only payout control.

OCR can extract:

  • account number
  • IFSC
  • MICR
  • bank name
  • branch
  • account holder name when printed and readable

Then bank verification checks the extracted account number and IFSC.

curl
curl -X POST "https://api.theverifico.com/api/v1/documents/extract/cheque" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@cancelled-cheque.jpg"

Then:

curl
curl -X POST "https://api.theverifico.com/api/v1/verify/bank" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
 "account_number": "50100123456789",
 "ifsc": "HDFC0001234",
 "include_ifsc_details": true
 }'

This is usually better than asking an operations team to read and type cheque details manually.

Example: GST Certificate OCR Then GSTIN Verification

GST certificate OCR helps avoid typing errors. GSTIN verification helps check current registration details.

curl
curl -X POST "https://api.theverifico.com/api/v1/documents/extract/gst" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@gst-certificate.pdf"

Then:

curl
curl -X POST "https://api.theverifico.com/api/v1/verify/gst" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gstin": "22ABCDE1234F1Z5"}'

Useful GST verification fields include:

FieldWhy it matters
gstinNormalized GSTIN
pan_numberPAN embedded in GSTIN
legal_nameLegal registered name
business_nameTrade name
gstin_statusActive, cancelled, suspended, and similar states
date_of_cancellationUseful for invoice-date review
taxpayer_typeRegular, composition, and related context

What The Dashboard Playground Adds

The dashboard playground helps teams test the workflow before integration.

It can be used to:

  • test an API key
  • upload a supported document
  • run extract-only mode
  • edit extracted fields before verification
  • run manual number-based verification
  • inspect the response shape
  • export the response for internal review

It is not a replacement for production integration. It is a way to test real sample documents before engineering builds the flow.

Common Mistakes

Mistake 1: Calling OCR output "verified"

If OCR reads a PAN number, the product should say the PAN number was extracted. Verification only happens after a verification call.

Mistake 2: Skipping field confirmation for sensitive workflows

For bank payouts, payroll, lending, and compliance review, extracted fields should often be shown before verification.

Mistake 3: Treating Aadhaar image OCR as Aadhaar verification

Aadhaar is sensitive. Image OCR is not the same as UIDAI Secure QR, offline XML, or another consent-based offline verification artifact.

Mistake 4: Storing only the uploaded file

An audit trail should include the extracted fields, verification response, timestamp, and final decision.

Quick Integration Checklist

  • Decide which documents need OCR
  • Decide which identifiers need source verification
  • Use X-API-Key for production OCR and verification endpoints
  • Validate formats before verification calls
  • Add manual review for missing or uncertain OCR fields
  • Store verification response separately from uploaded file metadata
  • Add retry only for temporary service errors
  • Test sample documents in the dashboard playground before launch

Use this article as an educational filler piece when the publishing calendar needs a simple concept post. For a stronger launch post, lead with a specific workflow such as PAN Advanced for HR, cheque OCR to bank verification, FSSAI onboarding, or vendor verification.

Share
Anas Nadeem

Written by

Anas Nadeem

Founder

Seeking discomfort. Sailing through life by trying new things, building and breaking out a lot of stuff.