PHPackages                             kyc-ai/laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. kyc-ai/laravel

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

kyc-ai/laravel
==============

Laravel KYC: extract identity documents with AI and verify with country-specific validators.

1.1.0(1mo ago)041MITPHPPHP ^8.2CI passing

Since Jun 12Pushed 1mo agoCompare

[ Source](https://github.com/mohammedelkarsh/laravel-kyc-ai)[ Packagist](https://packagist.org/packages/kyc-ai/laravel)[ Docs](https://github.com/mohammedelkarsh/laravel-kyc-ai)[ RSS](/packages/kyc-ai-laravel/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (30)Versions (3)Used By (1)

laravel-kyc-ai
==============

[](#laravel-kyc-ai)

[![Tests](https://github.com/mohammedelkarsh/laravel-kyc-ai/actions/workflows/tests.yml/badge.svg)](https://github.com/mohammedelkarsh/laravel-kyc-ai/actions/workflows/tests.yml)[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)

Laravel package for **KYC workflows**: extract identity fields from documents (AI/OCR), verify with country-specific [validators](https://packagist.org/packages/validators/sa) packages, and optionally call external providers.

> **v1.1** · SA / AE / EG · fake · OpenAI · Tesseract · external drivers · Queue · API · Demo UI · Filament review

---

Install
-------

[](#install)

```
composer require kyc-ai/laravel

# Optional countries
composer require validators/ae validators/eg

php artisan vendor:publish --tag=kyc-config
```

---

Quick start
-----------

[](#quick-start)

### Internal only (no AI)

[](#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

[](#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

[](#async-queue)

```
Kyc::document($file)
    ->country('sa')
    ->forUser($user->id)
    ->dispatch();
```

### Validation rule

[](#validation-rule)

```
use KycAi\Laravel\Rules\KycDocument;

'id_front' => ['required', 'image', new KycDocument(country: 'sa', matchField: 'national_id')],
```

---

Verification levels
-------------------

[](#verification-levels)

LevelExtractionInternalExternal`internal`NoYesNo`standard`YesYesNo`full`YesYesYes (opt-in)---

Drivers
-------

[](#drivers)

ExtractionSends data outside?`fake`No`tesseract`No`openai`YesExternalSends data outside?Package`shufti`Yes (requires API keys)[`kyc-ai/external-shufti`](https://packagist.org/packages/kyc-ai/external-shufti)```
KYC_EXTRACTION_DRIVER=fake
OPENAI_API_KEY=
TESSERACT_BINARY=tesseract
KYC_EXTERNAL_ENABLED=false
KYC_EXTERNAL_DRIVER=shufti
```

Install Shufti driver:

```
composer require kyc-ai/external-shufti
php artisan vendor:publish --tag=kyc-shufti-config
```

---

Demo UI
-------

[](#demo-ui)

```
KYC_ROUTES_DEMO=true
```

See [demo/README.md](demo/README.md).

---

API
---

[](#api)

```
KYC_ROUTES_API=true
```

`POST /api/kyc/verify` with `country`, optional `national_id`, optional `document`.

---

Audit log + Filament
--------------------

[](#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
-----------

[](#development)

```
composer install
composer test          # 119 tests
```

Monorepo setup: [docs/TESTING.md](docs/TESTING.md).

Architecture: [docs/DESIGN.md](docs/DESIGN.md).

---

Disclaimer
----------

[](#disclaimer)

Internal validation checks **format and checksum** only — not government registry verification.

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance91

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

45d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22338869?v=4)[Mohammed Elkarsh](/maintainers/mohammedelkarsh)[@mohammedelkarsh](https://github.com/mohammedelkarsh)

---

Top Contributors

[![mohammedelkarsh](https://avatars.githubusercontent.com/u/22338869?v=4)](https://github.com/mohammedelkarsh "mohammedelkarsh (2 commits)")

---

Tags

composer-packageegyptidentity-verificationkyclaravelocrphpsaudi-arabiauaelaravelaiidentityverificationOCRkycEgyptsaudiuae

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kyc-ai-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/kyc-ai-laravel/health.svg)](https://phpackages.com/packages/kyc-ai-laravel)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M348](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M134](/packages/roots-acorn)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M137](/packages/laravel-pulse)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77922.3M186](/packages/laravel-mcp)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
