Document Verification
Intelligent document verification to analyze and extract data from Botswana identity documents with specialized processing for each document category.
Overviewโ
botsKYC provides comprehensive document verification across six specialized domains, each optimized for specific document types:
- Identity Documents - Omang, Passport, Driver's License, Residence Permits
- Address Verification - Utility bills, lease agreements, and proof of residence
- Income Documents - Payslips, employment contracts, tax certificates
- Business Entity - Company registration, BIN certificates, memorandum
- Compliance Documents - Tax clearance, authorisation letters
- Multi-Purpose Documents - Bank statements, employment letters
Document Categoriesโ
1. Identity Documentsโ
Verify identity documents including Omang, Passport, Driver's License, and Residence Permits.
Supported Documents:
- ๐ Omang (Botswana National ID)
- ๐ Passport
- ๐ Driver's License
- Residence Permit
API Endpoint:
POST /api/v/kyc/verify/identity
POST /api/kyc/analyze/identity
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/identity \
-F "documents=@omang_front.jpg" \
-F "documents=@omang_back.jpg"
Response:
{
"status": "success",
"totalDocuments": 2,
"processingTime": "2.8s",
"extractedData": {
"name": "John Doe",
"idNumber": "123456789",
"dateOfBirth": "1990-01-15",
"nationality": "Botswana",
"gender": "Male",
"expiryDate": "2030-01-15"
},
"confidence": 98.5,
"documentType": "OMANG",
"verificationType": "IDENTITY"
}
Key Features:
- Automatic front/back merging
- Batch processing for multiple files
- Fast single document processing
- Smart document classification
2. Address Verificationโ
Verify proof of residence documents.
Supported Documents:
- Utility Bills (Water, Electricity, Internet)
- ๐ Lease Agreements
- Landlord Letters
- Council Bills
- Affidavits
- Kgotla Letters
API Endpoint:
POST /api/v/kyc/verify/address
POST /api/kyc/analyze/proof-of-residence
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/address \
-F "documents=@utility_bill.pdf"
Response:
{
"status": "success",
"totalDocuments": ,
"extractedData": {
"name": "John Doe",
"address": "123 Main Street, Gaborone",
"issueDate": "2025-01-10",
"accountNumber": "ACC-123456"
},
"confidence": 96.,
"documentType": "UTILITY_BILL",
"verificationType": "ADDRESS"
}
Key Features:
- PDF and image support
- Multi-page document handling
- Address standardization
- Date validation
3. Income Verificationโ
Verify income-related documents.
Supported Documents:
- ๐ฐ Pay Slips
- Employment Contracts
- ๐ P60 Forms
- ๐งพ Tax Certificates (IT)
- Proof of Income Letters
API Endpoint:
POST /api/v/kyc/verify/income
POST /api/kyc/analyze/income
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/income \
-F "documents=@payslip.pdf"
Response:
{
"status": "success",
"totalDocuments": ,
"extractedData": {
"employeeName": "John Doe",
"employer": "ABC Company Ltd",
"grossSalary": 15000.00,
"netSalary": 12500.00,
"payPeriod": "2025-10",
"taxDeductions": 2500.00
},
"confidence": 97.8,
"documentType": "PAYSLIP",
"verificationType": "INCOME"
}
Key Features:
- Salary calculation validation
- Tax deduction verification
- Multi-month processing
- Currency normalization
4. Business Entity Verificationโ
Verify business registration and entity documents.
Supported Documents:
- BIN Certificate (Business Identification Number)
- ๐ Memorandum of Association
- Company Registration Certificate
- Certificate of Incorporation
- ๐ Business License
API Endpoint:
POST /api/v/kyc/verify/entity
POST /api/kyc/analyze/entity
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/entity \
-F "documents=@bin_certificate.pdf" \
-F "documents=@memorandum.pdf"
Response:
{
"status": "success",
"totalDocuments": ,
"extractedData": {
"companyName": "ABC Trading (Pty) Ltd",
"binNumber": "BIN123456789",
"registrationNumber": "REG-2010-1234",
"registrationDate": "2010-05-15",
"directors": ["John Doe", "Jane Smith"],
"businessType": "Private Company"
},
"confidence": 95.5,
"documentType": "BIN_CERTIFICATE",
"verificationType": "ENTITY"
}
Key Features:
- Multi-document correlation
- Director/shareholder extraction
- Registration validation
- Business type classification
5. Compliance Verificationโ
Verify tax and compliance documents.
Supported Documents:
- Tax Clearance Certificates
- Company Profiles
- Authorisation Letters
- VAT Registration Certificates
- Board Resolutions
- ๐ TIN Certificates
API Endpoint:
POST /api/v/kyc/verify/compliance
POST /api/kyc/analyze/compliance
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/compliance \
-F "documents=@tax_clearance.pdf"
Response:
{
"status": "success",
"totalDocuments": ,
"extractedData": {
"taxpayerName": "ABC Trading (Pty) Ltd",
"tinNumber": "TIN123456789",
"certificateNumber": "TC-2025-10001",
"issueDate": "2025-01-15",
"expiryDate": "2025-12-31",
"status": "COMPLIANT"
},
"confidence": 98.,
"documentType": "TAX_CLEARANCE",
"verificationType": "COMPLIANCE"
}
Key Features:
- Validity date checking
- Compliance status verification
- TIN validation
- Authority verification
6. Multi-Purpose Documentsโ
Verify versatile document types.
Supported Documents:
- Bank Statements
- Employment Letters
- Reference Letters
- General Business Documents
API Endpoint:
POST /api/v/kyc/verify/multipurpose
POST /api/kyc/analyze/multipurpose
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/multipurpose \
-F "documents=@bank_statement.pdf"
Response:
{
"status": "success",
"totalDocuments": ,
"extractedData": {
"accountHolder": "John Doe",
"accountNumber": "1234567890",
"bankName": "First National Bank",
"statementPeriod": "2025-10-01 to 2025-10-31",
"openingBalance": 50000.00,
"closingBalance": 48500.00,
"transactions": 45
},
"confidence": 94.8,
"documentType": "BANK_STATEMENT",
"verificationType": "MULTIPURPOSE"
}
Key Features:
- Flexible schema
- Transaction extraction
- Balance validation
- Multi-format support
Auto-Detectionโ
Smart document routing based on content analysis.
API Endpoint:
POST /api/v/kyc/verify/auto
POST /api/kyc/analyze/auto
How It Works:
- System analyzes document content
- Classifies document type automatically
- Routes to appropriate specialized service
- Returns results with classification info
Request:
curl -X POST https://api.botskyc.com/api/v/kyc/verify/auto \
-F "documents=@unknown_document.pdf"
Response:
{
"status": "success",
"totalDocuments": 1,
"detectedType": "IDENTITY",
"routedTo": "IdentityVerificationService",
"extractedData": {
"name": "John Doe",
"idNumber": "123456789"
},
"confidence": 97.5
}
Multi-Format Supportโ
Submission Formatsโ
botsKYC intelligently handles ALL submission formats:
-
Separate Files - Individual front/back images
-F "documents=@front.jpg" -F "documents=@back.jpg" -
Single PDF - Both sides in one PDF
-F "documents=@id_card.pdf" -
Combined Image - Front and back side-by-side
-F "documents=@combined.jpg"
Processing Modesโ
-
Batch Mode - Process multiple documents together
- Classifies documents first
- Routes to specialized service
- Merges front/back automatically
-
Single-Pass Mode - Fast processing for single documents
- Direct processing
- No classification step
- Optimal for single documents
Processing Performanceโ
- Fast processing times
- ๐ Handles single or multiple documents
- Supports PDFs and images
Error Handlingโ
Common Status Codesโ
| Code | Status | Message | |------|--------|---------|| | 200 | Success | Document verified successfully | | 400 | Bad Request | Invalid file format or missing fields | | 422 | Unprocessable | Low confidence or validation failed | | 500 | Server Error | Processing error |
Error Response Exampleโ
{
"status": "error",
"errorCode": 1004,
"message": "Document validation failed: Low confidence score",
"details": {
"confidence": 65.5,
"threshold": 80.0,
"reason": "Poor image quality"
}
}
Best Practicesโ
Image Qualityโ
- Minimum resolution: 1200x800 pixels
- Clear, well-lit images
- No glare or shadows
- All text legible
File Formatsโ
- Supported: JPG, JPEG, PNG, PDF
- Max file size: 10MB per file
- Max files: 10 per request
Submission Strategyโ
- Use batch mode for multiple documents
- Send front/back together
- Use auto-detection for unknown types
- Validate file before upload
Integration Examplesโ
cURLโ
# Identity verification
curl -X POST https://api.botskyc.com/api/v/kyc/verify/identity \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "documents=@id_front.jpg" \
-F "documents=@id_back.jpg"
# Auto-detection
curl -X POST https://api.botskyc.com/api/v/kyc/verify/auto \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "documents=@document.pdf"
JavaScriptโ
async function verifyIdentity(files) {
const formData = new FormData();
files.forEach(file => formData.append('documents', file));
const response = await fetch('/api/v/kyc/verify/identity', {
method: 'POST',
body: formData
});
return response.json();
}
Pythonโ
import requests
def verify_document(file_path, doc_type='auto'):
url = f'https://api.botskyc.com/api/v/kyc/verify/{doc_type}'
files = {'documents': open(file_path, 'rb')}
response = requests.post(url, files=files)
return response.json()
Supportโ
For additional assistance:
- Email: support@botskyc.com
- Documentation: API Reference
- ๐ง Quick Start: Getting Started