GeekTotal Billing, CRM and invoicing
Modular CRM and invoicing for Ecuador, with automatic collections and a customer portal, that runs on cPanel hosting.

What was needed
A CRM and invoicing system in the style of WHMCS, adapted to Ecuador, to sell recurring services and collect them without manual work, and that could also be installed on the most used hosting in the country.
What I built
It is my own project that I keep developing and it is not in production yet. It is a modular system with Laravel and Filament. It has a panel for the team and a portal for customers.
- Customers: individuals or companies, with validation of Ecuadorian ID (cédula), DNI and RUC numbers, additional emails for invoicing and portal access.
- Catalog: one-time or recurring products, with prices by currency and cycle, setup fee, taxes per product and bundles with a discount.
- From proforma to payment: the proforma is sent by email with a PDF and a link, the customer approves it and it becomes an invoice. The invoice is numbered when issued and stores the customer’s data and the exchange rate of that moment.
- Payments: partial payments, without allowing overpayments. Online payments with PayPhone and PayPal, and transfers or deposits with a receipt that stays pending review. If an invoice already has an authorized receipt, it is corrected with a credit note.
- Renewals and collections: the renewal invoice is generated on its own a few days before the due date, without duplicating. There are reminders before, on the day and after the date, service suspension for non-payment and reactivation on payment.
- Taxes and currency: taxes are configured per product and calculated per line with the rounding used by the SRI (Ecuador’s tax authority). The default currency is USD, with multi-currency support.
- Email: editable templates, SMTP configurable from the panel and a record of every message sent.
Modules
Integrations are modules: a folder with its configuration and a class that fulfills a contract. Today there are payment gateways (transfers, PayPhone and PayPal) and an electronic invoicing module that can be swapped depending on the service used. The contract for provisioning modules also exists. System events (invoice paid, service suspended, receipt issued) let you add actions without touching the core.
The business logic is in services separate from the interface and is tested with Pest.
Security
- Roles: administrator, operator and read-only accountant, applied on every resource and action.
- Two-step verification: with TOTP codes, optional for panel users.
- Separate sessions: the internal panel and the customer portal don’t share a session, and the portal only shows what belongs to each customer.
- Signed links: used to view an invoice, pay it or upload a receipt without logging in, and they can’t be guessed or modified.
- Idempotent payments: the same online payment isn’t recorded twice even if the gateway notifies several times.
- Encryption: integration keys and sensitive settings are stored encrypted.
- Private files: payment receipts and tax documents are delivered through the application, not from public folders.
- Audit: the change history is recorded to know who modified what.
- Amounts: stored with decimal precision and calculated with exact arithmetic.
Installation
It installs with a single command and works on cPanel: queues, cache and sessions go in the database, and a single cron runs all the automations. It needs no Redis, Node or Supervisor.