Skip to main content

KYC Upgrade Guide

Complete guide for upgrading user KYC (Know Your Customer) levels to unlock higher transaction limits.

Overview

OLIVE uses a tiered KYC system that balances ease of use with regulatory compliance. Higher KYC levels unlock greater transaction limits.

KYC Levels

LevelRequirementsDaily LimitMonthly Limit
BasicPhone + Name100,000 SLE500,000 SLE
EnhancedID Front + Back500,000 SLE2,500,000 SLE
FullVerified ID + Address2,000,000 SLE10,000,000 SLE
All new users start at Basic level after phone verification.

Upgrade Methods

Users can upgrade via the WhatsApp conversational agent

WhatsApp Upgrade Flow

The most common upgrade path uses the WhatsApp agent:
1

Initiate Upgrade

User messages: “upgrade my account” or “I want higher limits”
2

Agent Explains

Agent explains requirements and asks for ID front photo
3

Upload ID Front

User sends photo of ID card (front)
4

Upload ID Back

Agent asks for ID back photo, user sends
5

Validation

System validates both images using OCR and AI
6

Result

If valid, account upgraded. If issues found, user notified.

Example Conversation

User: upgrade my account
Agent: I can help you upgrade your account! This will increase your 
       transaction limits. Please send a clear photo of the FRONT 
       of your Sierra Leone National ID card.

User: [sends ID front photo]
Agent: Great! Now please send the BACK of your ID card.

User: [sends ID back photo]  
Agent: Your documents have been verified. Your account has been 
       upgraded to Enhanced level. Your new daily limit is 500,000 SLE.

ID Requirements

Accepted Documents

DocumentRequirements
Sierra Leone National IDFront and back photos
PassportPhoto page
Driver’s LicenseFront and back photos

Photo Requirements

Do

  • Clear, well-lit photo
  • All text readable
  • Full document visible
  • Flat surface

Don't

  • Blurry or dark images
  • Glare covering text
  • Cropped or partial
  • Tampered documents

Validation Process

Multi-Layer Verification

The system uses multiple validation layers:
  • Validates document authenticity
  • Checks for photo presence
  • Verifies official document look
  • Detects obvious tampering
  • Extracts text using Tesseract
  • Parses ID number, name, dates
  • Calculates confidence scores
  • Detects low-quality images
  • Compares front and back data
  • Verifies name consistency
  • Checks dates match
  • Flags mismatches

Extracted Fields

For Sierra Leone National ID:
FieldSourceExample
NIN (ID Number)FrontSL-NIN-12345678
Full NameFrontJohn Doe Smith
Date of BirthFront1990-05-15
GenderFrontMale
Date of ExpiryBack2028-03-20

Fraud Detection

The system automatically detects:
Fraudulent documents are flagged and may result in account suspension.
IndicatorDetection Method
Tampered textOCR confidence analysis
Missing headersPattern matching for official text
Suspicious patternsKeywords like “sample”, “test”, “photoshop”
Repeating ID numbersPattern detection (e.g., 11111111)
Front/back mismatchCross-validation of names/numbers
Low image qualityConfidence score thresholds

Fraud Response Example

{
  "valid": false,
  "fraudDetected": true,
  "fraudIndicators": [
    "OCR confidence below threshold (45%)",
    "Missing official header text",
    "ID number contains repeating pattern"
  ]
}

API Integration

For third-party integrations that need to submit KYC documents:

Upload Single Image

curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/subscribers/:id/kyc/upload" \
  -H "Authorization: Bearer olive_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "image_type": "id_front",
    "image_data": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
  }'

Complete KYC Upgrade

curl -X POST "https://olive-gateway-a6ba.onrender.com/api/v1/subscribers/:id/kyc/upgrade" \
  -H "Authorization: Bearer olive_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "target_level": "enhanced",
    "id_front": "data:image/jpeg;base64,/9j/...",
    "id_back": "data:image/jpeg;base64,/9j/..."
  }'

Response

{
  "success": true,
  "previous_level": "basic",
  "new_level": "enhanced",
  "subscriber_id": "sub_abc123",
  "validation": {
    "front": { "valid": true, "confidence": 0.95 },
    "back": { "valid": true, "confidence": 0.92 },
    "crossValidation": { "consistent": true }
  }
}

Troubleshooting

”Image validation failed”

CauseSolution
Blurry imageAsk user to retake in good lighting
Glare on cardTilt card to avoid reflections
Partial imageEnsure entire document is visible
Wrong formatConvert to JPEG or PNG

”Documents don’t match”

  • Front and back should be same document
  • Names should match exactly
  • Dates should be consistent

”OCR confidence too low”

  • Image may be too dark or have shadows
  • Text may be obscured or damaged
  • Ask for better quality photo