Introduction
ZiBilling is a premium, self-hosted Invoice & Email Billing System built on Laravel 10 (Kernel-based architecture). It bridges the gap between creating invoices and communicating with clients, all from a single dashboard. ZiBilling focuses on providing detailed configuration options to ensure your documents look professional.
Template Configurator
Option-based template system. Easily configure colors, fonts, and layouts via settings.
Email Engine
Integrated email system with structured template support and dynamic variable replacement.
Secure Portal
Dedicated client area for viewing history and making payments safely.
Product Scope & Limitations
- This is NOT a drag-and-drop canvas editor: The template managers are form-based and option-based. You configure settings (colors, toggles, layouts), and the system generates the output.
- PDF Generation: PDF layouts are generated using structured configuration and CSS. They are not free-form design canvases like Canva.
- Email Templates: Emails are managed via a rich-text editor with pre-defined sections. It is not a block-based drag-and-drop builder (like Unlayer).
- No CLI Required: No Command Line Interface access is required after the initial installation wizard completes.
Installation
- Framework: Laravel 10 (Kernel Architecture)
- PHP Version: 8.1 or higher
- Database: MySQL 5.7+ / MariaDB 10.3+
- Server: Apache / Nginx (Shared Hosting, VPS, or Dedicated)
- Extensions: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, CURL, Zip
- Architecture: Standard Laravel 10 request lifecycle using Http Kernel
Follow these steps to install ZiBilling on your cPanel server. This process involves three main parts: uploading files, setting up the database, and running the installer wizard.
Part 1: Uploading Files
1. Log in to your cPanel account. Under the "Files" section, click on File Manager.
Figure 2.1: Locate the File Manager in cPanel
2. In the File Manager, navigate to the public_html folder (or the subdomain folder where you want to install the script).
Figure 2.2: Navigate to public_html
3. Click the Upload button in the top menu bar.
Figure 2.3: The Upload button in File Manager
4. Drag and drop the upload.zip file (found inside your downloaded package) into the upload area. Once the upload bar turns green (100%), go back to the File Manager and Extract the zip file.
Part 2: Database Creation
Now we need to create a database for ZiBilling to store its data.
1. Go back to the cPanel main dashboard. Under the "Databases" section, click on Manage My Databases (or MySQL Databases).
Figure 2.4: Accessing MySQL Databases
2. Create New Database: Enter a name for your database (e.g., zibilling_db) and click "Create Database".
Figure 2.5: Entering a database name
3. After creating the database, click "Go Back".
Figure 2.6: Return to Database List
4. Create Database User: Scroll down to the Add New User section. Enter a username and a strong password. Important: Save this password in a text file; you will need it for the installation wizard later.
Figure 2.7: Creating a user and password
5. After creating the user, click "Go Back" again.
6. Add User To Database: Scroll down to the section "Add User To Database". Select the User you just created and the Database you created in step 2. Click "Add".
Figure 2.8: Linking the User to the Database
7. Manage User Privileges: On the next screen, check the box ALL PRIVILEGES. Then scroll down and click "Make Changes".
Figure 2.9: Granting full permissions
Part 3: Run the Installer Wizard
Now that the files are uploaded and the database is ready, we can run the automatic installer.
1. Open Browser: Visit your website URL (e.g., www.yourdomain.com). You will be greeted by the Welcome Screen. Click "Start Installation".
Figure 2.10: The Installer Welcome Screen
2. Server Requirements: The system will check your PHP version (Must be 8.1+) and extensions. If everything is green/checked, click "Next Step". If any are red, please contact your hosting provider to enable them.
Figure 2.11: Checking Server Compatibility
3. Permissions Check: The script needs permission to write files to certain folders (like storage and bootstrap). Ensure these are marked as "Writable". Click "Next Step".
Figure 2.12: Verifying Folder Permissions
4. Database Configuration: Enter the details you created in Part 2 of this guide.
- Database Host: Usually
127.0.0.1orlocalhost. - Database User: The user you created (e.g.,
codeanbg_user). - Database Password: The password you set for that user.
- Database Name: The name of the database (e.g.,
codeanbg_zibilling).
Figure 2.13: Connecting to the Database
5. Admin Account Setup: Create your super-admin account. Enter your Name, Email, and a secure Password. This will be your login for the dashboard.
Figure 2.14: Creating the Administrator Account
6. Installation Complete: Success! The application is now installed. Click the button to log in to your new dashboard.
/install folder. If it does not, please delete it manually via File Manager.
Figure 2.15: Installation Finished Successfully
User Roles
ZiBilling separates users into two distinct security levels:
- Administrator: Full access to settings, reports, client data, and template creation.
- Client: Restricted access. Can only view their own invoices, pay bills, and edit their profile.
Invoice Management
The Invoice Management module is the heart of the system. It allows you to create, track, and manage all your financial documents in one place.
1. Invoice Dashboard
The "All Invoices" view provides a table listing status, issue dates, and amounts. You can filter this list by status (Paid, Unpaid, Overdue) or date range.
- Status: Clear badges indicate if an invoice is
PAID,PARTIAL, orDRAFT. - Progress: A visual bar shows payment completion percentage.
- Actions: Quick buttons to Edit, Preview, or Send the invoice.
2. Creating Invoices
Creating an invoice is simple. Select a client, and the system auto-fills their address. Add line items, set quantities and prices, and watch the totals calculate in real-time.
3. Preview & Send
Before sending, use the Preview Modal to see the invoice exactly as the client will see it. From the preview, you can click "Send" to email it immediately.
PDF Template Configuration
After installing the script or resetting the database, you must open the Template Configuration Panel and click "Save Configuration" at least once. This initializes the CSS/Layout files required for PDF generation. Without this step, your first invoice may appear unstyled or blank.
This module allows you to configure the styling options for your PDF output.
1. Managing Templates
Go to Invoices > PDF Config. Here you will see a list of your templates. You can set a "Default" template which will be used automatically for all new invoices.
Figure 5.1: The Template Management Dashboard
2. The Configuration Interface
Click "Configure Template" to open the settings. The left sidebar contains your style options, while the center area shows a real-time preview.
Figure 5.2: The Template Configuration Workspace
3. Customizing Identity & Header
Use the "Brand & Header" tab to select accent colors, background colors (e.g., the yellow header shown below), and text alignment.
Figure 5.3: Configuring Header Colors and Alignment
4. Watermarks & Stamps
Enable professional "Rubber Stamps" for your invoices (e.g., PAID, OVERDUE). You can control the color opacity and text of the watermark.
Figure 5.4: Configuring Watermarks
5. Line Item Styling
In the "Line Items" section, you can select between "Minimal", "Grid", or "Bold" table styles. You can also toggle visibility for columns (like Tax or Description).
Figure 5.5: Configuring Table Layouts
6. Additional Settings
Use the remaining tabs to configure Totals, Footers, and other layout elements.
Figure 5.6: Footer and Total Configurations
7. Sample Output View
Click the "Eye" icon to launch the Sample Data Preview. This shows you exactly what the generated PDF will look like.
Figure 5.7: The Final PDF Preview Modal
8. Device Compatibility
The core application is fully responsive. However, the Template Configuration Panel is a detailed tool.
Figure 5.8: Mobile Restriction Screen
Estimates & Quotes
Estimates allow you to send a quote to a client before doing the work. Once accepted, they can be instantly converted into payable invoices.
1. Estimates Dashboard
The dashboard gives you a clear view of your sales pipeline. The columns indicate:
- Status: Shows if a quote is
DRAFT,ACCEPTED(Green), orREJECTED(Red). - Validity / Conversion: A progress bar indicates if an Accepted estimate is "Ready to Invoice" or has already been "Converted" (with a link to the generated invoice ID).
- Actions: Use the buttons on the right to Convert, Edit, or Delete.
2. Creating an Estimate
Creating an estimate is very similar to creating an invoice, with one key difference:
- Valid Until: You must set a date when the quote expires. This encourages clients to take action.
- Line Items: Add products/services just like an invoice. The totals calculate in real-time.
3. Converting to Invoice
This is a powerful time-saving feature. When a client accepts a quote:
- Click the Swap/Arrows Icon on the dashboard or "Convert to Invoice" on the preview page.
- A modal will ask: "Are you sure you want to convert Estimate EST-XXXX into a final invoice?"
- Click "Yes, Proceed!". The system automatically creates a new Invoice, copies all line items and client data, and links it back to the estimate.
4. Exporting Data
You can export your estimates for accounting purposes. Click the "Export" button to open a modal where you can select a Date Range and choose your format: CSV, Excel, or PDF.
Client Management
The Client module acts as a mini-CRM, giving you a 360-degree view of your customer relationships and financial history.
1. Clients Dashboard
The main Clients list provides a snapshot of your customer base. Key details visible here include:
- Identity: Client Name and unique ID (e.g., #0001).
- Contact Info: Direct access to their email address and phone number.
- Status: Indicates if the client account is
Activeor suspended. - Financials: The Total Revenue column shows the lifetime value (Total Paid) of that specific client.
- Actions: Use the buttons on the right to Edit details or View their full profile.
2. Client Profile (CRM View)
Clicking on a client's name or the "Person Icon" opens their detailed profile. This page contains:
- Financial Summary Cards: Three large cards at the top showing Total Billed, Total Paid, and Outstanding Balance. This helps you instantly see if a client owes money.
- Left Sidebar: Displays contact details, phone, address, and an option to "Delete Client".
- Tabbed History:
- Invoices Tab: A filtered list of every invoice ever sent to this client, with status and due dates.
- Payment History Tab: A log of every transaction/payment made by this client.
- Quick Actions: Buttons to "Edit Profile" or create a "New Invoice" specifically for this client.
3. Adding & Editing Clients
When adding or editing a client, you have control over their access and information:
- Basic Details: Company/Client Name, Email Address (required for sending invoices), and Phone Number.
- Client Portal Access: You can set a Client Portal Password here. If set, the client can use their email and this password to log in to the system. Leave it blank to keep current settings.
- Billing Address: This address is automatically pulled onto any invoice you create for this user.
- Status: You can toggle a client to "Inactive" to prevent creating new invoices for them without deleting their history.
2-Way Mailbox Engine USP
ZiBilling is not just a billing script; it is a full communication hub. Unlike other systems that simply fire-and-forget emails via PHP Mail, ZiBilling features a Full 2-Way Mailbox that connects to your real email account via SMTP and IMAP.
This means when a client replies to your invoice email, their reply appears directly inside ZiBilling. You don't need to check Outlook or Gmail separately.
1. Unified Inbox & Folders
The Mailbox dashboard acts like a standard email client (like Gmail/Outlook) built right into your billing dashboard.
- Folders: Organized into Inbox (Incoming), Sent (Outgoing logs), and Drafts (Work in progress).
- Smart Filters: Use the sidebar filters to quickly find "Client Reminders" or "Payment Alerts" generated by the system.
2. Composing & Templates
When you click "Compose", you get a rich-text editor loaded with automation features:
- Auto-Fill Content: Use the "Select a Template" dropdown to load presets like "Invoice Overdue Notice" or "Payment Confirmation".
- Dynamic Variables: Templates support variables like
{{name}}or{{invoice_id}}which are replaced automatically when sending.
3. SMTP & IMAP Configuration
To enable this feature, go to Settings > Email Configuration. We support Gmail, Outlook, Zoho, and custom SMTP/IMAP servers.
Email Template Manager
ZiBilling allows you to configure your transactional email templates to ensure every touchpoint with your client is branded and professional.
1. General Settings & Subject
Start by naming your template (e.g., "New Invoice Created"). You can use dynamic variables directly in the subject line, such as Invoice {{invoice_no}}.
Figure 9.1: Configuring Subject Lines with Variables
2. Header & Branding
Customize the top section of your email. You can toggle your Company Logo on or off, and set a custom background color and text color for the header bar.
Figure 9.2: Customizing Email Branding
3. Message Body & Variables
This is where you write your content. The rich text editor supports bold, italic, and lists. Use the "+ Variable" dropdown to insert dynamic data like:
{{client_name}}- Customer Name{{amount_due}}- Total Amount{{due_date}}- Payment Deadline
Figure 9.3: Inserting Dynamic Content Variables
4. Action Button
Every transactional email needs a Call to Action (CTA). Configure the main button (e.g., "Pay Invoice").
- Button Label: What the button says.
- Button URL: Use the secure variable
{{invoice_url}}to auto-link it to the payment page. - Color: Match the button color to your brand identity.
Figure 9.4: Configuring the Payment Button
5. Footer
The footer is great for closing remarks or company details. You can add a standard sign-off like "Thank you for your business" followed by {{company_name}}.
Figure 9.5: Finalizing the Email Footer
Secure Client Portal
The Client Portal is a separate, secure area for your customers to self-serve. They can log in using their email and the password set in their profile (or via a secure "magic link" sent via email).
1. Client Dashboard
Upon logging in, the client is greeted with a clean overview of their account standing.
A "Recent Invoices" table allows them to quickly see the status of their latest bills and take action immediately.
2. My Invoices & Estimates
The portal provides dedicated pages for viewing history:
- My Invoices: A searchable list of all invoices. Clients can see payment progress bars (e.g., "Paid 50%") and filter by status. Clicking the "Eye" icon opens the detailed view.
- My Estimates: Clients can view quotes sent to them. They can download the PDF or contact you to accept/reject the proposal.
3. Viewing Documents
When viewing a specific Invoice or Estimate, the client sees a clean, branded "Paper" view.
- Download PDF: A prominent button allows them to save the document for their records.
- Status Badges: Clear indicators show if the document is
PAID,OVERDUE, orACCEPTED.
4. Profile & Security
Clients can manage their own account via the Profile page. Here they can:
- Update their Name and Phone number.
- Change Password: Securely update their login credentials.
- Note: Email addresses are locked and can only be changed by the Administrator to prevent account hijacking.
Reports & Analytics
ZiBilling provides deep insights into your business performance. The reporting module is divided into 5 specialized sections.
1. Sales Overview
This is the primary financial report. It provides a high-level view of your billing health.
Below the cards is the Invoice Breakdown table, showing every invoice processed in the period, allowing you to identify exactly which documents make up your revenue.
2. Client Revenue Ranking
Identify your "VIP" customers. This report features:
- Bar Chart Comparison: Visually compares the top 10 revenue-generating clients side-by-side.
- Detailed Ranking Table: Lists clients by
Total Invoices,Total Revenue, andPaid Amount. This helps you focus your efforts on your most valuable relationships.
3. Tax Report
Essential for accounting and compliance. This report breaks down:
- Tax Rules Defined: Shows which tax rates (e.g., VAT 20%, GST 10%) are active.
- Tax Breakdown Chart: A bar chart visualizing how much tax was collected per category.
- Detailed Transactions: An itemized list of every taxable invoice event, ready for auditing.
4. Outstanding Payments
This report is critical for cash flow management. It isolates only the money you are owed.
- Days Overdue: The table highlights exactly how long a payment has been pending (e.g., "107 days overdue").
- Filtering: You can sort by "Balance Due" to prioritize chasing large debts first.
5. Monthly Growth & Exporting
The Monthly Growth report displays a smooth curve graph showing revenue trends (ups and downs) over the year.
General Settings
The Global Settings area allows you to white-label the system and configure core behavior. The settings are divided into three specific tabs.
This tab controls your corporate identity. All data entered here appears on your PDF invoices.
- Company Logo: Upload a PNG/JPG (Max 2MB). This replaces the default branding everywhere.
- Favicon: Upload a 32x32 icon for the browser tab.
- Contact Info: Set your "Support Email" and "Phone Number" which appear in email footers.
- Security: The sidebar on the right allows the Admin to update their login password securely.
Configure how numbers and currencies are handled globally.
- Currency Settings: Choose your currency (USD, EUR, etc.), Symbol Position (Left $100 vs Right 100$), and Separators (Comma vs Dot).
- Prefix Logic: Define how ID numbers are generated.
INV-becomes INV-0001
EST-becomes EST-0001 - Start Numbers: If migrating from another system, you can start your invoices at #1000 instead of #0001.
Customize the experience for your clients when they log in.
- Welcome Text: Change the "Welcome Back" title and subtitle on the login screen.
- Banner Image: Upload a high-res (Vertical) image to replace the default sidebar image on the login page.
- Featured Quote: Add a testimonial or company motto that appears overlaid on the banner image.
Email Configuration
ZiBilling functions perfectly as an invoice generator without these settings. However, to send PDFs via email or receive replies directly in the dashboard, you must configure the details below.
Outgoing (SMTP)
This setting controls how the system sends emails (e.g., sending an invoice to a client).
- Driver: Set this to
SMTPto send real emails. UseLog (Debug Mode)only for testing (emails will not send). - Host & Port: The server address provided by your email host (e.g.,
smtp.gmail.com). - Encryption: Usually
TLSorSSL. - Test Connection: Always click the "Test SMTP" button after saving to verify it works.
Incoming (IMAP)
This setting enables the 2-way communication feature. It allows ZiBilling to read your inbox and pull client replies into the dashboard.
- IMAP Host: The incoming server address (e.g.,
imap.gmail.com). - Port: Usually 993 (SSL).
- Note: If you do not configure this, clients can still reply to your emails, but you will have to check them in your standard email client (Outlook/Gmail).
Provider Cheat Sheet
Common settings for popular providers.
| SMTP | smtp.gmail.com | 587 (TLS) |
| IMAP | imap.gmail.com | 993 (SSL) |
| SMTP | smtp.office365.com | 587 (TLS) |
| IMAP | outlook.office365.com | 993 (SSL) |
| SMTP | smtp.zoho.com | 465 (SSL) |
| IMAP | imap.zoho.com | 993 (SSL) |
If you use Gmail, Outlook, or Yahoo with 2FA (Two-Factor Authentication) enabled, you cannot use your normal login password here.
You must generate a specific "App Password" in your email provider's security settings and use that App Password in the ZiBilling configuration field instead.
Support
Thank you for purchasing ZiBilling. We are dedicated to providing a great experience.
© 2025 ZiBilling. All Rights Reserved.