
Gallery



The challenge
For a GPS or telematics SaaS operator, billing and device access tend to live apart. Stripe knows who paid. The tracking server knows which devices exist. A spreadsheet tries to say which device is entitled to which features and until when. That gap leads to devices staying active after a plan expires, add-ons that are hard to sell because nobody can see them per device, and support time spent matching invoices to device lists.
Architecture
We built GeoLox Admin end to end, the super-admin panel of the GeoLox platform, in Laravel 12, MySQL and Bootstrap 5, synced with Traccar and linked to Stripe. This case study looks at one feature: device subscriptions and billing. Every tracked device carries its own subscription, grouped by client, with optional Risk Scoring and Incident Extraction add-ons, plans linked to Stripe prices, and a payment history ops can read without opening the Stripe Dashboard.
Solution
Subscriptions grouped by client. One screen lists every client with its billing cycle, and under it each device's plan, add-ons, status, expiry date, days remaining and price, with search, status and plan filters and pause / edit actions. Add-ons per device. Risk Scoring and Incident Extraction are sold as add-ons on a device's subscription, each with its own status, expiry date and days remaining, so premium analytics are tied to the device they apply to. Plans & Pricing linked to Stripe. Operators manage monthly and annual plans, with their features, in the Admin; each plan is linked to its Stripe price, so the price a customer sees and the price Stripe charges come from the same record. Payment History for ops. A payment table shows customer, plan, status, billing cycle, start date, payment method, Stripe customer ID and amount, with search and status filters, plus total revenue, active subscriptions and failed payments at the top. Connected to the device inventory. Each device's details page shows its Traccar ID alongside its subscriptions and recent alerts, and the dashboard shows subscription states (active, expired, suspended, expiring soon) next to devices online and offline.
Results
Billing, device entitlement and premium add-ons sit in one Laravel Admin instead of being split between the Stripe Dashboard, the tracking server and a spreadsheet. Ops can see which device is paid for, which features it has and when it expires, from one place. What the feature covers: - Per-device subscriptions - Client-grouped subscription view - Risk Scoring / Incident Extraction add-ons - Expiry and days remaining - Pause / edit - Monthly and annual plans linked to Stripe prices - Payment history with Stripe customer ID - Subscription states on dashboard - Traccar device sync Next step Running a telematics or GPS SaaS and billing devices by hand? Talk to us at https://techmania.solutions
Related project
GeoLox Admin
Super-admin panel for GeoLox: client onboarding, Traccar device provisioning, subscription lifecycle, alerts, and mileage exports.
View project in portfolio