# EVLINK: Full Platform Specification This document provides exhaustive detail for AI agents and automated crawlers regarding the EVLINK ecosystem. ## 1. User Journey & Authentication EVLINK utilizes **Clerk** for identity management. - **Signup**: Users register via Email or Google OAuth. - **Identity Linkage**: Every Clerk user is mapped to a Laravel backend ID via the `clerk_id` attribute. - **Transaction Security**: High-value operations (transfers, bill payments) require a 4-digit Transaction PIN managed by the `TransactionPinMiddleware`. ## 2. Product Fulfillment Details ### Electricity (DisCos) We support payments for: - Abuja (AEDC) - Eko (EKEDC) - Ikeja (IKEDC) - Ibadan (IBEDC) - Port Harcourt (PHED) - Kaduna (KAEDCO) *Note: Meter validation is required before payment.* ### Mobile Data & Airtime - **Networks**: MTN, Airtel, Glo, 9mobile. - **Status**: Real-time callback verification for all recharges. ## 3. Technical Infrastructure - **Frontend**: Next.js (React) deployed on Vercel. - **Backend**: Laravel 12 (PHP) hosted on optimized Linux environments. - **PWA Status**: Fully offline-capable via Service Worker (`sw.js`). - **Webhooks**: Clerk signals user events to `https://evlinkapi.com.ng/api/webhooks/clerk`. ## 4. Error Handling for AI Agents - **401 Unauthorized**: User is not logged in via Clerk. - **403 Forbidden**: Transaction PIN is incorrect or missing. - **404 Not Found**: Endpoint mismatch (ensure `/api/` prefix is used correctly). - **419 CSRF Error**: Webhook exception missing in `bootstrap/app.php`. ## 5. Contact & Support - **Support Email**: support@evlink.com.ng - **Address**: Abuja, FCT, Nigeria.