Skip to content

Invoices

Create, manage, and send professional invoices linked to bookings, with integrated tax calculation and PDF generation.

Overview

The invoicing module handles the full lifecycle of billing — from creating itemized invoices linked to bookings, through tax calculation and PDF generation, to sending invoices via Gmail and recording payments.

Invoice Creation

Creating an Invoice from a Booking

The most common workflow is to generate an invoice directly from a booking:

  1. Open a booking and click Create Invoice
  2. Room charges and dates are pre-populated from the booking
  3. Add additional line items (services, minibar, etc.) as needed
  4. Review tax calculations
  5. Save as Draft or Finalize immediately

Creating a Standalone Invoice

You can also create invoices independent of bookings:

  1. Navigate to Invoices → New Invoice
  2. Select or create a guest
  3. Add line items manually
  4. Configure taxes and totals
  5. Save the invoice

Invoice Fields

FieldDescription
Invoice NumberAuto-generated based on your series configuration
Invoice DateDate of invoice creation (defaults to today)
Due DatePayment due date
GuestLinked guest profile
BookingOptionally linked booking
NotesInternal or customer-facing notes
TermsPayment terms displayed on the invoice

Invoice Structure

Line Items

Each invoice contains one or more line items:

PropertyDescription
DescriptionItem name or description (e.g., "Deluxe Room — 3 nights")
HSN/SAC CodeHarmonized System code for GST classification
QuantityNumber of units
RatePrice per unit
DiscountDiscount amount or percentage per line item
TaxApplicable tax rate(s) from your tax configuration
AmountCalculated total for this line item

Taxes

Taxes are applied per line item based on your configured tax rates:

  • CGST — Central GST (e.g., 6%)
  • SGST — State GST (e.g., 6%)
  • IGST — Integrated GST for inter-state (e.g., 12%)
  • Tax Groups — Composite groups combining multiple tax rates

The system automatically determines whether to apply CGST+SGST or IGST based on the guest's state vs. your organization's state.

Tax Calculation

Tax can be configured as exclusive (added on top of the rate) or inclusive (already included in the rate). The invoice displays the breakdown either way.

Totals & Summary

The invoice summary section shows:

LineDescription
SubtotalSum of all line items before tax
DiscountTotal discount applied
Taxable AmountSubtotal minus discounts
CGSTTotal Central GST
SGSTTotal State GST
IGSTTotal Integrated GST (if applicable)
TotalGrand total including all taxes
Amount PaidSum of all recorded payments
Balance DueRemaining amount to be paid

Invoice Lookup by Code

Every invoice is assigned a unique invoice code (e.g., INV-2026-00042). You can look up any invoice by its code:

  1. Navigate to Invoices
  2. Use the search bar and enter the full or partial invoice code
  3. The system matches against invoice numbers across all bookings

This is useful for quickly finding an invoice when a guest calls with their invoice reference number.

Sending Invoices via Gmail

Prerequisites

Before sending invoices, you must connect your Gmail account. See the Integrations guide for setup instructions.

Sending Process

  1. Open a finalized invoice
  2. Click Send via Email
  3. The system generates a PDF of the invoice using Puppeteer
  4. A compose dialog appears with:
    • To: Guest's email (pre-filled from guest profile)
    • Subject: Customizable subject line
    • Body: Rendered from your email template
    • Attachment: The generated PDF invoice
  5. Review and click Send

PDF Generation

Invoices are rendered to PDF using Puppeteer (headless Chromium):

  • Professional layout matching your organization branding
  • Organization logo, name, and address in the header
  • Full itemized breakdown with taxes
  • QR code (if enabled) for payment
  • Proper page breaks for multi-page invoices
  • GST-compliant format with HSN codes and tax breakdowns

TIP

PDF generation happens server-side. The generated PDF is temporarily stored and attached to the outgoing email.

Payment Recording

Recording a Payment

To record a payment against an invoice:

  1. Open the invoice
  2. Click Record Payment
  3. Enter payment details:
FieldDescription
AmountPayment amount (defaults to balance due)
DatePayment date
Payment ModeCash, Bank Transfer, UPI, Card, Cheque, etc.
ReferenceTransaction reference number
NotesOptional notes
  1. Save the payment

Payment Effects

When a payment is recorded:

  • The invoice's Amount Paid updates automatically
  • The invoice status changes accordingly:
    • Paid — when full amount is received
    • Partially Paid — when partial amount is received
  • An accounting entry is created automatically (double-entry)
  • The booking's payment status updates if the invoice is linked to a booking

Payment History

Each invoice maintains a payment history showing all recorded payments with dates, amounts, payment modes, and references. Payments can be viewed but not edited after creation to maintain audit integrity.

Invoice Statuses

StatusDescription
DraftCreated but not finalized — can still be edited
FinalizedLocked for editing — ready to send
SentEmailed to the guest
Partially PaidSome payment received
PaidFull amount received
OverduePast due date with outstanding balance
CancelledVoided invoice

Permissions

Invoice operations are controlled by the Invoices RBAC module:

PermissionAccess
ViewBrowse and view invoices
CreateCreate new invoices
UpdateEdit draft invoices, record payments
DeleteCancel or delete invoices
ManageFull access including send and bulk operations

Released under the MIT License.