Getting Started

Welcome to NetPulse Billing, a state-of-the-art multi-tenant ISP billing and MikroTik hotspot automation platform. This documentation is written explicitly for ISP owners running their business management consoles.

Pre-requisites: NetPulse runs locally on standard Apache/MySQL servers (such as XAMPP, WampServer, or Docker Lamp stacks). Ensure PDO extension is enabled in your local php.ini configuration.

Initial Installation

To initialize the system in your local workspace environment:

1. Open your MySQL client (e.g. PHPMyAdmin).
2. Create a target database named: netpulse_billing
3. Import the file database/netpulse_billing.sql to bootstrap schemas and seeds.
4. Default Super Admin account credentials:
   - Username: superadmin
   - Password: Admin@12345

MikroTik RouterOS Setup

To enable NetPulse to automatically provision Hotspot user profiles, queues, PPPoE accounts, and bypass regulations, you must configure the RouterOS API socket service.

Step 1: Enable API Port Service

Log in to your router board via Winbox, open the terminal console, and execute the following configuration command:

/ip service enable api
/ip service set api port=8728

Step 2: Create a NetPulse API User Profile

For security compliance, create an isolated user group with read/write API privileges:

/user group add name=netpulse policy=read,write,api,!local,!telnet,!ssh,!ftp
/user add name=netpulse_api group=netpulse password=SecureApiPassword123

Step 3: Link Router to NetPulse

Log in to your NetPulse admin panel, navigate to MikroTik > Link MikroTik Router, and input the credentials matching your router board.

Lipa Na M-Pesa API Integration

NetPulse supports automated billing out-of-the-box using Safaricom's Daraja API for STK push client renewals and Buy Goods/Paybill validation webhook listeners.

Configuration parameters

Navigate to Settings > Payment Gateway tab to input the following credentials fetched from the Safaricom Daraja Portal:

- Active Automated Gateway: Select M-Pesa
- Business Shortcode: Your Lipa Na M-Pesa online paybill/till identifier (e.g. 174379)
- Lipa Na M-Pesa Passkey: Generated from Daraja app
- Consumer Key: Daraja Consumer Key credentials
- Consumer Secret: Daraja Consumer Secret credentials
Sandbox Simulation: During offline staging and development phases, NetPulse will automatically simulate STK transaction requests, generating random webhook hashes and renewing clients instantly.

Twilio SMS Setup

Keeping subscribers informed about upcoming expirations, payments, and system notices is vital for retaining business. Link your Twilio telephony API account to broadcast bulk messages.

Setting up Credentials

1. Go to Twilio Console, sign up, and purchase an active SMS-enabled phone number.
2. Under Settings > SMS & Messaging, configure the following values:
   - Active Dispatcher: Twilio Messaging API Service
   - Account SID: Your Twilio Account SID hash
   - Auth Token: Your Twilio permanent authentication token
   - Outgoing Phone Number: Twilio phone number (+1415...)
3. Click Save Settings.

Tariff Packages & Vouchers

NetPulse supports creating speed-limited plan tariffs for both PPPoE subscriber lines and Hotspot vouchers.

Creating Plans

Navigate to Finance > Packages. Click Create Package Plan. Ensure speed limits are set correctly using standard RouterOS queue formats (e.g., 5M upload, 10M download).

Prepaid Vouchers Batch Generation

For captive portal zones, go to Finance > Vouchers and select Generate Voucher Batch. Input your prefix configuration, voucher count, and speed plan association. You can print voucher ticket ledgers directly from the table screen.