No invoice selected. Click "+ New Invoice" or select one from the list.
🔒
Invoice Details
Customer
Line Items
Details
Unit Price
QTY
Tax
Amount
Notes
Totals
Total
0.00
Discount
0.00
Tax %
0.00
Grand Total USD
0.00
PAYMENTS
Balance Due0.00
Customers
Name
Email
Phone
TIN
Mailing List
Business
Invoices
Loading...
Tax
A claim can be added here (attached to a Tax Invoice or on its own), from Expenses ("Claim Input Tax"), or from the Input Tax button on a Tax Invoice.
#
Supplier Name
Supplier TIN
Invoice Number
Invoice Date
Total (excl. GST)
GST 8%
GST 17%
Act. No.
Type
Invoice Total
Total Tax
Tax Invoice
File
TOTAL
TOTAL
Select a date range and click Run Report.
Loading...
Select a date range and click Run Report.
Select a report type and click Run Report.
Reports
Select a report and click Run Report.
Expenses
#
Date
Type
Category
Payee
Description
Invoice No.
Input
Amount
TOTAL
Track spending on assets, inventory purchases, and money borrowed from or repaid to owners/lenders. These feed the Balance Sheet and Cash Flow reports, not the P&L.
#
Date
Category
Cash
Account
Counterparty
Description
Invoice No.
Amount
ID
Name
TIN
Address
Email
Phone
General
Manage general settings such as timezone and expense categories.
Currency
1 USD =
Additional currency and rate are used in reports for conversion display (e.g. Tax Payable, MIRA GST).
Pre-selected in the "Record Payment" method dropdown, when set.
Sets the default for the "Show Payments" checkbox in the Invoice preview. Users can still toggle it per invoice before printing.
Sets the default for the "Show Contacts" checkbox in the Invoice preview (Customer Email/Phone). Users can still toggle it per invoice before printing.
Outgoing Mail
Where system emails (password resets, Payment Link Paid notifications, test emails) are actually sent from. Doesn't affect Gmail Tool, which always uses its own connected Google account.
Generate this at myaccount.google.com/apppasswords — your regular Gmail password won't work here. Leave blank when saving to keep whatever's already stored.
Payment Methods
Shown in the "Record Payment" dropdown on invoices. Add, rename, delete, or reorder as needed.
Payment Accounts
Choose which account each payment method lands in. Used to build the Cash Position report.
Timezone
New Booking Row Filter
When a new row is added in Bookings, the grid's date filter jumps so the new row is visible. Choose how it should jump.
Default Bookings Search Field
The Bookings search box's field dropdown starts on this option each time the page loads.
Default Customer Options
Starting state of these checkboxes when adding a brand new customer. Editing an existing customer always shows its own saved values.
Invoice Date Restrictions
By default the Invoice Date is today. When auto-filling from a Booking Pay ID, the date follows the selection below.
Invoice Edit
Controls which existing invoices can be edited. New (unsaved) invoices are always editable.
Payments
What happens when a customer pays an invoice through its payment link.
Default Invoice Type
Which type a brand-new invoice starts as. A Tax Invoice still can't be saved until it's fully paid.
Invoice Footer
The footer line printed at the bottom of the invoice (Print / PDF). Set separate text for a Tax Invoice and a Proforma Invoice.
The Subtotal & Tax breakdown is hidden automatically in print when the tax rate is 0% (only the Grand Total shows); it appears whenever tax is applied.
Auto Fill from Detail (Bookings)
Detail text is split by spaces into fragments. For each segment below, choose how to locate it: a fixed
position from the start or end, the first fragment starting with a marker (e.g. Qty as "x2"), a keyword
match, or the span between two other segments. Feeds the Bookings "Auto Fill" button (Type/Date/Time) and
the voucher/invoice-from-booking parser (Ref/Full Name/Qty/Type/Date/Time).
Expense Categories
Classification determines where each category appears on the Profit & Loss statement.
Pre-selected when adding a new Expense.
Deleted Bookings
Permanently erase all bookings currently in the "Deleted records" filter. This cannot be undone.
Deleted Invoices
Permanently erase all invoices currently in the "Deleted Invoices" filter. This cannot be undone.
Voucher Images
Header and footer images printed on all confirmation vouchers.
Header Image
No image uploaded
Footer Image
Hotel/Room Field Label
Shown on Voucher and Voucher All in place of "HOTEL".
Confirmation Templates
Edit the inclusions printed on confirmation PDFs.
Arrival Confirmation
USE TITLE AS
TITLE TEXT
TITLE IMAGE
No image
INCLUSIONS
FOOTER TEXT
Departure Confirmation
USE TITLE AS
TITLE TEXT
TITLE IMAGE
No image
INCLUSIONS
FOOTER TEXT
Other Confirmation
USE TITLE AS
TITLE TEXT
TITLE IMAGE
No image
INCLUSIONS
FOOTER TEXT
Businesses
Manage businesses. Each has its own logo, tax rate and details.
Main Company
Once set, other businesses are treated as branches/subsidiaries. The Profit & Loss statement lists the Main Company first and uses its letterhead when printed.
Business Name
Code
TIN
Currency
Tax %
Input Tax 1%
Input Tax 2%
Loading...
User Management
Manage users for your company.
Loading...
Google Drive Integration
Upload invoices as PDF directly to a Google Drive folder using a Service Account.
Service Account JSON Configured
Upload the JSON key file downloaded from Google Cloud Console (IAM → Service Accounts → Keys).
Drive Folder ID (optional)
The folder ID from the Drive URL: drive.google.com/drive/folders/THIS_PART. Leave empty to upload to the service account’s root.
The service account email must be shared on the target folder in Google Drive.
Database Backup
Export all data as a SQL backup, or restore from a previous backup file.
Export
Downloads a complete backup of all businesses, customers, invoices, services and payments.
Import
Restore from a backup file. This will overwrite all existing data.
Remote Backup
Mirrors data into a separate MySQL server (a standalone, independently-queryable copy), configured in api/config.php (BACKUP_REMOTE_DB_* settings). The table list below is read fresh from the database each time, so newly added tables are always picked up. Each table is backed up in its own short request, so large databases can't be killed by a server timeout.
Applied when you run a backup — not stored on the server.
Service Catalogue
Manage your services and prices. Select from this list when creating invoices.
Categories
Loading...
Item
Display Name
Display Price
Category
Unit Price (USD)
Valid Period
Auto Fill
Input Tax
Vendor ID
Vendor Amt
Vendor Tax
Colour
Order
Actions
Loading...
Hotels / Rooms
Maintain the list of hotels. Bookings uses the Short Name (still free-text — this just offers matching names as you type); Voucher/Voucher All display the Long Name instead.
Email
Preparing the email...
Gmail Tool
Qty differs between selected cards — check them.
Click Reply on a fetched email to prepare a reply here.
None
Loading templates...
Ignored for replies — Gmail sets those automatically ("Re: ...").
Whose address this template's emails (and reply search) use — the booking's Customer, its Hotel (the email kept in Settings > Hotels), or the email on the booking's Invoice (which can differ from the booking's Customer).
On the Draft Email tab, this template's default button is shown in green.
Optional — this Data segment only applies to a <datasegment> slug when the condition matches (any one of the traced booking(s) is enough). Leave "Field" blank to always apply.
The signature saved in the Gmail Settings tab is added automatically to every draft — no need to include one here.
Create Payment Link
Invoice #
Invoice Type
Amount
Link
Ref
Status
Other
Gmail Settings
The connected Gmail account's signature, and (later) email templates.
Signature
Search for an email that carries your signature (one you sent from Gmail — try from:me plus a name or subject). The most recent match is shown; click "Use this signature" to save it here. It's only added to an email or draft where that is explicitly set to include it.
Saved signature
Sender emails
The addresses this business sends app emails from — they can be on different domains. The main one is the Email set in Super Admin > Companies. When there is more than one, the Draft Email tab shows a From choice, and each address uses its own signature (pick it under Signature above). Every address must also be a verified Send mail as address in the Gmail account (Gmail > Settings > Accounts).
Bookings email templates
Which template each "Email ..." item in the Bookings ⋮ menu uses. A change takes effect straight away. Automatic picks by name, as before.
Reply Ignore List
One email address per line. A reply is never sent into a conversation that has any of these addresses in its To, From or Cc, so Reply is not offered for it (New email still works). This list is not used when fetching payment links, which can come from any address.
Template order
The order of the Template dropdown on the Draft Email tab. Use the arrows to move a template up or down; it saves straight away. Data segments never appear in that dropdown, so they are not listed.
Send a test email
Sends a real email from the connected Gmail account — use it to check how the saved signature looks. It can't be undone once sent.
Files are prepared as soon as you pick them; Send only starts once they're all ready. Up to 5 MB in total.
Reply to this email?
🔒 Super Admin
BML Payment Gateway Webhook
The URL BML calls back to confirm a Payment Link has been paid. Use this when configuring the webhook endpoint in the BML Payment Gateway merchant portal.
To set this up in BML:
Open BML Merchants Portal.
Go to Developers and select Endpoints.
Enter the URL above for the Global Webhook.
Change Username
You will need to use the new username on your next login.
Change Password
Choose a strong password.
Loading...
Add, edit or delete companies. All data for a company is scoped by its ID.
Loading...
Select a user above to manage their access rights.
Every create, edit, delete and restore on Bookings and Invoices is recorded automatically. Select a business and Flush Range, then Flush Audit Trail to permanently delete that business's history.
Business
From
To
Action
Module
User
Record ID
Flush Range
Select a business to view logs.
Assign a dedicated MySQL database to each company. Leave blank to use the shared default database.
Loading...
Create New Database
Creates a new MySQL database and initialises the full schema (copies table structure from the main database). The MySQL user must have CREATE privilege.
Login Access Control
Control which countries are permitted to log in.
Maldives (MV) is always permitted. This setting only applies when Cloudflare country check is active on the login subdomain.
Locked Accounts
Accounts locked after too many failed login attempts. Admin can unlock immediately or user can reset via email.
Loading...
Blacklisted IPs
IPs permanently blocked. Auto-blocked for targeting multiple usernames; or block manually below.
IP Address
Reason (optional)
Loading...
Login Logs
All login attempts with IP and Cloudflare country code.
From
To
Status
Country
Loading...
Tax Invoice Preview
Voucher Preview
Select from Catalogue
Loading...
Click a service to add it as a line item. You can adjust the quantity and price after adding.
Add Service
to
Include in invoice auto fill
Charged once per invoice
A Tax Invoice with this service needs an Input Tax claim
Optional - the vendor this service is bought from
What the vendor charges for Qty 1, tax included
The tax in that charge, for Qty 1. With these filled, the Input Tax entry of a Tax Invoice is pre-filled (x Qty)