1. Overview
Advanced Invoice Tracker — PaxmaHub is a Level 3 browser-based invoice management tool. The supplied application provides five main areas: Dashboard, Invoices, Customers, Payments, and Settings.
What the tracker is designed to manage
- Customer information and contact details.
- Invoice numbers, dates, due dates and payment terms.
- Multiple invoice line items with quantity and unit price.
- Discounts and tax calculations.
- Recorded payments, payment methods and references.
- Invoice balances and statuses.
- Business identity and invoice numbering settings.
- Local browser storage with JSON backup and restore.
- A print-ready invoice view using the browser print dialog.
2. Interface & Navigation
The application uses a fixed sidebar on desktop and a responsive layout on smaller screens.
| Navigation | Purpose |
|---|---|
| 📊 Dashboard | View totals, invoice status, collection progress, due-soon invoices and recent invoices. |
| 🧾 Invoices | Search, filter, edit, pay, print and delete invoices. |
| 👤 Customers | Add, edit, search and delete customer records when they are not linked to invoices. |
| 💳 Payments | View recorded payments and edit or delete them. |
| ⚙️ Settings | Configure business details, currency, default tax, invoice prefix/number and data management. |
Top actions
- Backup: Downloads the current tracker data as JSON.
- Restore: Opens a JSON backup file and replaces the current stored data after validation and confirmation.
- New Invoice: Opens the invoice creation form.
- Back to PaxmaHub: Returns to
index.htmlfrom the supplied application.
3. First-Time Setup
Enter Business Name, Email, Phone and Business Address.
The supplied options are USD, EUR, GBP, CAD, AUD, PKR, SAR, AED and INR.
This value becomes the default tax rate when creating a new invoice. Existing invoice amounts are not recalculated merely because the default setting changes.
The default is
INV-.The default is 1001. The tracker also checks for an existing invoice number before using it.
Use the Save Settings button and confirm the success message.
An invoice cannot be created until at least one customer exists.
4. Customer Management
The Customers page maintains the customer records used by invoices.
Customer fields
| Field | Required? | Purpose |
|---|---|---|
| Name | Yes | Primary customer name. |
| Company | No | Company or organization name. |
| No | Customer email address. If entered, a basic email format is validated. | |
| Phone | No | Customer phone number. |
| Address | No | Customer billing/address information. |
Customer list
The table shows Customer, Company, Email, Phone, Invoiced, Paid, Outstanding and Actions.
The customer search checks the customer's name, company, email, phone and address.
Editing and deleting
- Edit: Opens the existing customer data for modification.
- Delete: A customer with one or more invoices cannot be deleted. This protects invoice history from losing its customer relationship.
- If a duplicate name/company combination is detected, the tracker asks for confirmation before allowing the duplicate.
5. Creating an Invoice
Use + New Invoice from the top bar or create one from the invoice workflow after adding a customer.
Invoice header fields
| Field | How it works |
|---|---|
| Invoice Number | Generated from the configured prefix and next number. It is readonly in the invoice form. |
| Customer | Required. Selected from existing customers. |
| Invoice Date | Required. New invoices default to today. |
| Due Date | Required. New invoices default to 30 days after the invoice date. |
| Payment Terms | Due on receipt, Net 7, Net 15, Net 30 or Net 60. Changing terms recalculates the due date from the invoice date. |
| Notes | Optional invoice note that is also displayed in the printed invoice. |
6. Line Items & Calculations
Each invoice can contain multiple line items. Use + Add Item to add rows.
Line item fields
- Description: Required.
- Quantity: Must be greater than zero when saving.
- Unit Price: Cannot be negative.
- Total: Automatically calculated as quantity × unit price.
Invoice calculation logic
| Calculation | Formula used by the application |
|---|---|
| Line Total | Quantity × Unit Price |
| Subtotal | Sum of all line totals. |
| Discount | Cannot exceed the subtotal. |
| Taxable Amount | Subtotal − Discount, never below zero. |
| Tax Amount | Taxable Amount × Tax Rate ÷ 100 |
| Grand Total | Taxable Amount + Tax Amount |
Example
If an invoice has a $1,000 subtotal, a $100 discount and a 10% tax rate:
- Taxable amount = $900
- Tax = $90
- Grand total = $990
7. Recording Payments
Payments are stored separately from invoices. An invoice's paid amount is calculated from its linked payment records.
Payment fields
| Field | Purpose |
|---|---|
| Invoice | Select the invoice receiving the payment. |
| Payment Date | Date the payment was recorded. |
| Amount | Must be greater than zero and cannot exceed the available invoice balance. |
| Method | Bank Transfer, Cash, Credit Card, Debit Card, PayPal, Check or Other. |
| Reference | Optional transaction/reference number. |
| Notes | Optional payment note. |
Editing a payment
When editing an existing payment, the tracker excludes that payment from the available-balance calculation so the original amount can be changed without incorrectly treating itself as already paid.
Deleting a payment
Deleting a payment immediately causes the related invoice's paid amount, balance and status to be recalculated.
8. Invoice Status Logic
Status is calculated automatically; there is no separate manual status field.
| Status | Condition |
|---|---|
| Paid | Remaining balance is at or below the small calculation tolerance of 0.005. |
| Overdue | Balance remains outstanding and the due date is earlier than today. |
| Partially Paid | Some payment has been recorded but the invoice is not fully paid and is not overdue. |
| Unpaid | No payment has been recorded and the due date has not passed. |
Core balance formula
Balance = Invoice Total − Sum of Linked Payments
The balance is never displayed below zero because the application clamps it to zero.
9. Dashboard
The Dashboard gives a high-level collection snapshot.
| Metric | Meaning |
|---|---|
| Total Invoiced | Sum of all saved invoice totals. |
| Total Paid | Sum of all recorded payments. |
| Outstanding | Total invoiced minus total recorded payments. |
| Overdue | Outstanding balance belonging to invoices whose due date has passed. |
| Invoices | Total number of invoices, with a small summary of paid and overdue counts. |
Invoice Status panel
Displays counts for Unpaid, Partially Paid, Paid and Overdue invoices using proportional bars.
Collection Progress
The collection percentage is based on total payments divided by total invoiced amount, capped between 0% and 100% for display.
Due within 7 days
The Dashboard identifies unpaid invoices whose due dates fall from today through the next seven days. Paid invoices are excluded. Up to five due-soon invoices are shown.
Recent Invoices
The Dashboard displays the eight most recently dated invoices and provides an Edit action plus a link to view all invoices.
10. Invoice Search & Filters
The Invoices page provides practical filtering for finding records.
Search
The search field checks invoice number, customer name/company, customer email, customer phone, invoice notes and line-item descriptions.
Status filter
Available choices are All statuses, Unpaid, Partially Paid, Paid and Overdue.
Date filters
The From and To fields filter by invoice date, not payment date or due date.
Invoice actions
- Edit: Modify an invoice.
- Pay: Record a payment when a balance remains.
- Print: Open the print-ready invoice and invoke the browser print dialog.
- Delete: Delete the invoice and all payments linked to it after confirmation.
- Clear: Remove invoice search/status/date filters.
11. Printing an Invoice
The application creates a dedicated print view for the selected invoice and calls the browser's print dialog.
The printed invoice includes
- Business name, address, email and phone.
- Invoice title and invoice number.
- Issue date and due date.
- Customer name, company, email, phone and address.
- Line-item description, quantity, rate and amount.
- Subtotal, discount, tax and total.
- Total paid.
- Balance due.
- Invoice notes.
Recommended printing workflow
- Open Invoices.
- Find the required invoice.
- Click Print.
- Review the print preview.
- Select a physical printer or the browser's PDF option if available.
12. Business Settings
| Setting | Behavior |
|---|---|
| Business Name | Displayed on printed invoices and stored with the tracker settings. |
| Business contact email; basic format validation is applied. | |
| Phone | Business contact phone. |
| Business Address | Displayed on printed invoices. |
| Currency | Controls monetary display formatting. Options include USD, EUR, GBP, CAD, AUD, PKR, SAR, AED and INR. |
| Default Tax Rate | Default tax rate for new invoices. |
| Invoice Prefix | Used when generating invoice numbers; default is INV-. |
| Next Invoice Number | Controls the next numeric sequence used for generated invoice numbers. |
13. Backup & Restore
Backup
The Backup function creates a JSON file containing the application state. The exported payload identifies the app as Advanced Invoice Tracker Level 3, includes version information and an export timestamp.
The filename follows the pattern:
invoice-tracker-backup-YYYY-MM-DD.json
Restore
What validation checks
- Customers, invoices and payments must be arrays.
- Customer IDs must exist and be unique.
- Invoice IDs and invoice numbers must be unique.
- Invoices must reference existing customers.
- Payments must reference existing invoices.
- Payment amounts must be valid positive numbers.
- Settings, if present, must have a valid object structure.
14. Data & Storage Logic
The application stores its state in the browser's localStorage. The primary storage key is level3_invoice_tracker_v2. The loader also checks the earlier level3_invoice_tracker_v1 key for compatibility.
Stored data groups
- customers — customer records.
- invoices — invoice headers, line items and calculated totals.
- payments — payment records linked to invoices.
- settings — business and numbering settings.
Privacy/storage model
The application's Settings page states that data is stored locally in the browser, is not uploaded to a server, and recommends regular backups.
Safe-save behavior
When a change is saved, the application attempts to write the state to localStorage. If storage fails, the application displays an error and attempts to restore the previous in-memory state for the operation.
15. Recommended Complete Workflow
Set business name, contact details, currency, default tax, invoice prefix and starting number.
Create clean customer records before issuing invoices.
Select the customer, set invoice/due dates, add line items, discount and tax, then save.
Use the invoice Print action and the browser print dialog.
Whenever money is received, link the payment to the correct invoice.
Use Outstanding, Overdue, Collection Progress and Due within 7 days to prioritize collections.
Use the Payments page when checking received amounts or correcting a payment record.
Download a JSON backup after important changes or on a regular schedule.
Suggested daily routine
- Check overdue invoices.
- Check invoices due within seven days.
- Record newly received payments.
- Correct any payment or invoice data entry errors.
- Create a backup when the dataset has materially changed.
16. Validation & Data Integrity
The supplied application contains several safeguards intended to prevent broken invoice relationships and invalid financial entries.
| Protection | Behavior |
|---|---|
| Unique invoice numbers | Duplicate invoice numbers are rejected. Generated numbers also skip existing numbers. |
| Customer relationship | An invoice must reference an existing customer. |
| Customer deletion protection | Customers linked to invoices cannot be deleted. |
| Payment overage protection | A payment cannot exceed the remaining invoice balance. |
| Invoice date validation | Invalid dates are rejected; due date cannot precede invoice date. |
| Line-item validation | Description is required, quantity must be greater than zero and rate cannot be negative. |
| Discount protection | Discount is capped at the invoice subtotal. |
| Payment date validation | Payment date must be a valid date string. |
| Backup validation | Relationships and core record structure are checked before restore. |
| HTML escaping | User-entered text is escaped before being inserted into generated HTML in the main data-rendering paths. |
Deleting an invoice
Deleting an invoice also deletes all payments linked to that invoice. This is intentional because keeping orphaned payments would break the invoice/payment relationship.
17. FAQ & Troubleshooting
Why can't I create an invoice?
The application requires at least one customer. Go to Customers → Add Customer, save a customer, and then create the invoice.
Why does an invoice show Overdue?
An invoice is Overdue when it still has a balance and its due date is earlier than today.
Why can't I enter a payment larger than the amount shown?
The tracker prevents payments from exceeding the available invoice balance. This protects the balance calculation from becoming negative.
Why did the invoice become Paid automatically?
Status is calculated from the invoice total and linked payments. Once the remaining balance is at or below the application's small tolerance, the status becomes Paid.
Can I delete a customer with invoices?
No. The application blocks this to protect invoice history.
Can I change an existing invoice's currency by changing Settings?
You can change the currency setting, but the application states that existing invoice amounts are unchanged; the setting affects display formatting. It is not a currency conversion tool.
Where is my data stored?
The supplied application uses browser localStorage. It does not upload the stored state to a server according to the application's Settings notice.
Can I restore an old backup?
Yes. Use Restore and select the JSON backup. The backup is validated before replacement. Because restore replaces the current state, back up the current state first.
Can I create a PDF?
The tracker creates a print-ready invoice and calls the browser print dialog. If the browser provides a Save as PDF option, you can use that print option.
Why are my invoice filters showing no results?
Check the From and To dates. The From date must not be later than the To date. Also remember that the date filter is based on invoice date.
What happens if browser storage is unavailable or full?
The save operation can fail and the application displays an error. The code attempts to keep the prior in-memory state rather than treating the failed write as a successful save.
18. Quick Reference
| Task | Path |
|---|---|
| Configure business | Settings → Business Settings |
| Add customer | Customers → Add Customer |
| Create invoice | New Invoice |
| Add line item | Invoice modal → Add Item |
| Apply payment terms | Invoice modal → Payment Terms |
| Record payment | Payments → Record Payment or Invoice → Pay |
| View outstanding | Dashboard → Outstanding |
| Find invoice | Invoices → Search / Status / Date filters |
| Print invoice | Invoices → Print |
| Edit payment | Payments → Edit |
| Delete payment | Payments → Delete |
| Backup | Top bar → Backup or Settings → Download Backup |
| Restore | Top bar → Restore or Settings → Restore Backup |
| Delete everything | Settings → Delete All Data |
Core formulas at a glance
| Metric | Formula |
|---|---|
| Line Total | Qty × Unit Price |
| Taxable | Subtotal − Discount |
| Tax | Taxable × Tax Rate ÷ 100 |
| Invoice Total | Taxable + Tax |
| Paid | Sum of linked payments |
| Balance | Invoice Total − Paid |
| Collection % | Total Paid ÷ Total Invoiced × 100 |