Looking to hire Laravel developers? Try LaraJobs

laravel maintained by kyc-ai

Description
Laravel KYC: extract identity documents with AI and verify with country-specific validators.
Last update
2026/06/12 21:10 (dev-main)
License
Downloads
0

Comments
comments powered by Disqus

laravel-kyc-ai

Tests License: MIT

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.