Skip to content

YeboVerify (KYC)

Identity verification infrastructure for the Yebo ecosystem.

Overview

YeboVerify is a standalone KYC/identity verification API that powers verification across all Yebo products. It's also available as a B2B API for third-party businesses.

Capabilities

FeatureDescription
Document OCRExtract data from IDs, passports, driver's licenses
Face MatchingCompare selfie to ID photo (>60% threshold)
Liveness DetectionEnsure selfie is live, not a photo of a photo
Address VerificationValidate addresses (optional)
Watchlist ScreeningCheck against sanctions/PEP lists

Architecture

┌─────────────────────────────────────────────────┐
│              YeboVerify API                      │
│  ┌───────────┐  ┌───────────┐  ┌───────────┐   │
│  │ Document  │  │   Face    │  │  Liveness │   │
│  │   OCR     │  │  Matching │  │  Detection│   │
│  │ (Gemini)  │  │(Rekognition)│ │           │   │
│  └───────────┘  └───────────┘  └───────────┘   │
│         │              │              │         │
│         └──────────────┼──────────────┘         │
│                        ▼                        │
│  ┌─────────────────────────────────────────┐   │
│  │           Verification Engine            │   │
│  │  • Orchestrate checks                   │   │
│  │  • Risk scoring                         │   │
│  │  • Decision engine                      │   │
│  └─────────────────────────────────────────┘   │
│                        │                        │
│                        ▼                        │
│  ┌─────────────────────────────────────────┐   │
│  │         Secure Document Storage          │   │
│  │         (Cloudflare R2, encrypted)       │   │
│  └─────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘

Verification Levels

Level 1: Basic

Required:

  • Government-issued ID (front + back if applicable)

Extracts:

  • Full name
  • Date of birth
  • ID number
  • Nationality
  • Expiry date

Unlocks:

  • KES 50,000/month transaction limit
  • Basic buying/selling

Level 2: Full

Required:

  • Basic verification completed
  • Selfie (face match)
  • Address (optional)

Checks:

  • Face matches ID photo (>60% confidence)
  • Liveness detection passed

Unlocks:

  • Unlimited transactions
  • Withdrawals to bank
  • Business account eligibility

API Reference

Create Verification Session

json
POST /api/v1/verifications
Headers:
  Authorization: Bearer <api_key>
  
{
  "externalUserId": "user_123",
  "level": "basic",
  "callbackUrl": "https://yourapp.com/webhook/kyc",
  "redirectUrl": "https://yourapp.com/kyc-complete"
}

Response:
{
  "verificationId": "ver_abc123",
  "status": "pending",
  "sessionUrl": "https://verify.yebo.com/session/ver_abc123"
}

Submit Documents

json
POST /api/v1/verifications/:id/documents
{
  "documentType": "national_id",
  "frontImage": "<base64>",
  "backImage": "<base64>"
}

Response:
{
  "success": true,
  "extractedData": {
    "fullName": "John Kamau",
    "dateOfBirth": "1995-03-15",
    "idNumber": "12345678",
    "nationality": "KE",
    "expiryDate": "2028-03-15"
  },
  "documentValid": true
}

Submit Selfie

json
POST /api/v1/verifications/:id/selfie
{
  "selfieImage": "<base64>"
}

Response:
{
  "success": true,
  "faceMatchScore": 0.94,
  "livenessScore": 0.98,
  "passed": true
}

Get Verification Status

json
GET /api/v1/verifications/:id

Response:
{
  "verificationId": "ver_abc123",
  "externalUserId": "user_123",
  "status": "approved",
  "level": "full",
  "createdAt": "2026-03-18T10:00:00Z",
  "completedAt": "2026-03-18T10:05:00Z",
  "extractedData": { ... },
  "scores": {
    "faceMatch": 0.94,
    "liveness": 0.98
  }
}

Webhook Events

json
POST <your_callback_url>
{
  "event": "verification.completed",
  "verificationId": "ver_abc123",
  "status": "approved",
  "level": "full",
  "timestamp": "2026-03-18T10:05:00Z"
}

Event Types:

  • verification.started
  • verification.document_submitted
  • verification.selfie_submitted
  • verification.completed
  • verification.failed
  • verification.expired

Supported Documents

CountryDocument Types
🇰🇪 KenyaNational ID, Passport, Driver's License
🇳🇬 NigeriaNational ID, Passport, Driver's License, Voter's Card
🇿🇦 South AfricaNational ID, Passport, Driver's License
🇬🇭 GhanaNational ID, Passport, Driver's License, Voter's ID
🇹🇿 TanzaniaNational ID, Passport, Driver's License
🇺🇬 UgandaNational ID, Passport, Driver's License
🇷🇼 RwandaNational ID, Passport

Data Retention

Data TypeRetention
Verification resultIndefinite
Extracted dataIndefinite (encrypted)
Document images90 days, then deleted
Selfie images90 days, then deleted

Security

  • All images transmitted over HTTPS
  • Images encrypted at rest (AES-256)
  • No images stored on device
  • GDPR compliant
  • Data deletion on request

Pricing (B2B)

TierPrice per verification
Basic (document only)$0.50
Full (document + selfie)$1.00
Volume (>10k/month)Custom pricing

Integration with YeboID

When a user verifies on YeboID:

  1. YeboID calls YeboVerify API
  2. User completes verification flow
  3. YeboVerify sends webhook on completion
  4. YeboID updates user's kyc_level
  5. User unlocks transaction capabilities

Open Questions

  • [ ] Liveness detection: build or buy?
  • [ ] PEP/sanctions screening provider?
  • [ ] Document verification for more countries?
  • [ ] Business verification (company docs)?

One chat. Everything done.