Updated: Jan 2025

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

Important Note on Functionality: Please read this section to understand the scope of the customization tools.
  • 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

System Requirements:
  • 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
Note: This application is shipped with all dependencies included. Buyers do not need to run Composer or Node commands.

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.

Open 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).

Open Public HTML Figure 2.2: Navigate to public_html

3. Click the Upload button in the top menu bar.

Click Upload 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).

Manage 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".

Create New Database Figure 2.5: Entering a database name

3. After creating the database, click "Go Back".

Go Back Button 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.

Create Database User Figure 2.7: Creating a user and password

5. After creating the user, click "Go Back" again.

Go Back Button

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".

Add User to Database 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".

Grant Privileges 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".

Installer Welcome Screen 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.

Server Requirements Check 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".

Folder Permissions 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.1 or localhost.
  • 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).
Database Configuration Input 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.

Admin Account Setup 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.

Security Note: For security reasons, the system may automatically delete the /install folder. If it does not, please delete it manually via File Manager.
Installation Success 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, or DRAFT.
  • 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

Important for Fresh Installations:
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.

Template List 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.

Configuration View 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.

Header Settings 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.

Watermark Settings 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).

Line Item Settings Figure 5.5: Configuring Table Layouts

6. Additional Settings

Use the remaining tabs to configure Totals, Footers, and other layout elements.

Additional Settings 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.

PDF Preview Modal 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.

Mobile View Restriction Figure 5.8: Mobile Restriction Screen
Desktop Recommended: To ensure design precision, the Template Configuration Panel is restricted on mobile devices. Please use a laptop or desktop computer to configure templates.

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), or REJECTED (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:

  1. Click the Swap/Arrows Icon on the dashboard or "Convert to Invoice" on the preview page.
  2. A modal will ask: "Are you sure you want to convert Estimate EST-XXXX into a final invoice?"
  3. 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 Active or 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.

Why is this special?
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.

Editor Type: This is a structured Email Template Manager. It is not a free-form drag-and-drop canvas. You can edit text, variables, and styling options within pre-defined sections.

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}}.

Email General Settings 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.

Email Header Branding 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
Email Message Body 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.
Email Action Button 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}}.

Email Footer 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.

Open 0 Awaiting payment
Overdue 0 Action required
Paid 3 Successfully paid

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, or ACCEPTED.

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.

TOTAL SALES $964,582.69
TOTAL PAID $363,927.91
OUTSTANDING BALANCE $600,654.78

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, and Paid 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.

Export Data: Every report page has an "Export Report" button. This opens a modal where you can choose a custom date range and download the data as CSV, Excel, or PDF.

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.

Business Details

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.
Financial & Prefixes

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.
Login Page

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

Is this required? No.
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 SMTP to send real emails. Use Log (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 TLS or SSL.
  • 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.

Gmail / G-Suite
SMTPsmtp.gmail.com587 (TLS)
IMAPimap.gmail.com993 (SSL)
Outlook / Office 365
SMTPsmtp.office365.com587 (TLS)
IMAPoutlook.office365.com993 (SSL)
Zoho Mail
SMTPsmtp.zoho.com465 (SSL)
IMAPimap.zoho.com993 (SSL)
Connection Failed?

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.

Need Help? Contact us via our CodeCanyon profile. We typically respond within 24 hours.

© 2025 ZiBilling. All Rights Reserved.