laravel maintained by kyc-ai
laravel-kyc-ai
Laravel package for KYC workflows: extract identity fields from documents (AI/OCR), verify with country-specific validators packages, and optionally call external providers.
v1.0 · SA / AE / EG · fake · OpenAI · Tesseract · Queue · API · Demo UI · Filament review
Install
composer require kyc-ai/laravel
# Optional countries
composer require validators/ae validators/eg
php artisan vendor:publish --tag=kyc-config
Quick start
Internal only (no AI)
use KycAi\Laravel\Facades\Kyc;
use KycAi\Laravel\KycLevel;
$result = Kyc::number('1001244084')
->country('sa')
->level(KycLevel::Internal)
->verify();
Document + extraction + internal verify
$result = Kyc::document($request->file('id_front'))
->country('sa')
->extractWith('fake') // fake | tesseract | openai
->matchAgainst($request->input('national_id'))
->verify();
$result->approved();
$result->needsManualReview();
$result->toArray();
Async queue
Kyc::document($file)
->country('sa')
->forUser($user->id)
->dispatch();
Validation rule
use KycAi\Laravel\Rules\KycDocument;
'id_front' => ['required', 'image', new KycDocument(country: 'sa', matchField: 'national_id')],
Verification levels
| Level | Extraction | Internal | External |
|---|---|---|---|
internal |
No | Yes | No |
standard |
Yes | Yes | No |
full |
Yes | Yes | Yes (opt-in) |
Drivers
| Extraction | Sends data outside? |
|---|---|
fake |
No |
tesseract |
No |
openai |
Yes |
| External | Sends data outside? |
|---|---|
shufti |
Yes (requires API keys) |
KYC_EXTRACTION_DRIVER=fake
OPENAI_API_KEY=
TESSERACT_BINARY=tesseract
KYC_EXTERNAL_ENABLED=false
KYC_EXTERNAL_DRIVER=shufti
Demo UI
KYC_ROUTES_DEMO=true
See demo/README.md.
API
KYC_ROUTES_API=true
POST /api/kyc/verify with country, optional national_id, optional document.
Audit log + Filament
php artisan vendor:publish --tag=kyc-migrations
php artisan migrate
KYC_AUDIT_ENABLED=true
use KycAi\Laravel\Filament\KycFilamentPlugin;
$panel->plugin(KycFilamentPlugin::make());
Development
composer install
composer test # 119 tests
Monorepo setup: docs/TESTING.md.
Architecture: docs/DESIGN.md.
Disclaimer
Internal validation checks format and checksum only — not government registry verification.
License
MIT — see LICENSE.