kyc-ai / external-shufti
Shufti Pro external verification driver for kyc-ai/laravel.
1.0.0
2026-06-13 10:12 UTC
Requires
- php: ^8.2
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- kyc-ai/laravel: ^1.1
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0
- phpunit/phpunit: ^11.5
- validators/ae: ^1.0
- validators/eg: ^1.0
README
Shufti Pro driver for kyc-ai/laravel.
v1.0 · submit + poll · webhook · SA/AE/EG via KYC pipeline
Requirements
- PHP ^8.2
kyc-ai/laravel^1.1- Shufti Pro API credentials
Install
composer require kyc-ai/laravel:^1.1 composer require kyc-ai/external-shufti php artisan vendor:publish --tag=kyc-shufti-config
Configure
KYC_EXTERNAL_ENABLED=true KYC_EXTERNAL_DRIVER=shufti SHUFTI_CLIENT_ID= SHUFTI_SECRET= SHUFTI_BASE_URL=https://api.shuftipro.com SHUFTI_CALLBACK_URL="${APP_URL}/kyc/webhooks/shufti" SHUFTI_POLL_SECONDS=30 SHUFTI_POLL_INTERVAL=2 SHUFTI_WEBHOOK_ROUTE=true
Usage
use KycAi\Laravel\Facades\Kyc; use KycAi\Laravel\KycLevel; $result = Kyc::document($request->file('id_front')) ->country('sa') ->level(KycLevel::Full) ->verify(); $result->external()?->provider(); // "shufti" $result->external()?->meta(); // reference, event, payload
Webhook
POST /kyc/webhooks/shufti validates the Shufti signature and dispatches ShuftiVerificationCompleted.
Development
Monorepo setup:
cp composer.local.json.example composer.local.json
composer install
composer test
License
MIT — see LICENSE.