3neti / form-handler-kyc
KYC/identity verification handler for form flow system using HyperVerge
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/3neti/form-handler-kyc
Requires
- php: ^8.2
- 3neti/form-flow: ^1.0
- 3neti/hyperverge: ^1.0
- illuminate/support: ^12.0
- lorisleiva/laravel-actions: ^2.9
- spatie/laravel-data: ^4.0
Requires (Dev)
- inertiajs/inertia-laravel: ^2.0
- orchestra/testbench: ^10.3
- pestphp/pest: ^3.8
- pestphp/pest-plugin-laravel: ^3.0
README
A Form Flow Manager plugin for identity verification using HyperVerge KYC API.
Features
✅ External redirect to HyperVerge mobile app
✅ Callback handling from HyperVerge
✅ Status polling for async verification results
✅ Contact-level KYC persistence (reusable across flows)
✅ Auto-registration with Form Flow Manager
✅ Integration with 3neti/hyperverge package
Installation
composer require 3neti/form-handler-kyc
Usage
{ handler: 'kyc', config: { title: 'Identity Verification', description: 'Verify your identity to continue' } }
Configuration
The package uses existing HyperVerge environment variables:
HYPERVERGE_BASE_URL=https://ind.idv.hyperverge.co/v1 HYPERVERGE_APP_ID=your_app_id HYPERVERGE_APP_KEY=your_app_key HYPERVERGE_URL_WORKFLOW=onboarding # Optional KYC_POLLING_INTERVAL=5 # seconds KYC_AUTO_REDIRECT_DELAY=2 # seconds
Requirements
- PHP 8.2+
- Laravel 12+
- 3neti/hyperverge package
- HTTPS (required by HyperVerge)
- Mobile device with camera (for user)
How It Works
Unlike other handlers (location, selfie, signature), KYC involves:
- Initiation: User clicks "Start Identity Verification"
- Redirect: User redirected to HyperVerge mobile app
- Verification: User completes ID + selfie verification
- Callback: HyperVerge redirects back to app
- Polling: Status page polls for results every 5 seconds
- Completion: On approval, flow continues automatically
Contact-Level KYC
KYC status is stored on the Contact model, not per-flow:
- Once verified, contact can reuse KYC across multiple flows
- KYC data stored in
metaJSON column (schemaless) - Fields:
kyc_status,kyc_transaction_id,kyc_onboarding_url, etc.
Testing
cd packages/form-handler-kyc
composer install
vendor/bin/pest
Routes
The package registers these routes automatically:
POST /form-flow/{flow_id}/kyc/initiate- Start KYC flowGET /form-flow/{flow_id}/kyc/callback- Handle HyperVerge callbackGET /form-flow/{flow_id}/kyc/status- Poll KYC status (AJAX)
License
MIT
Author
3neti