Home Documentation Invoices & Payments

Invoices & Payments

Manage the full billing lifecycle — from generating proforma invoices and folio statements to recording payments, issuing refunds and producing financial summaries.

For information on connecting M-Pesa, Pesapal, DPO or MomoPay to accept online payments, see Connecting Payment Gateways →

Invoice types

BnBFlows generates four types of billing documents:

  • Proforma Invoice — sent to the guest before check-in to confirm the booking and request a deposit. Does not affect your accounting ledger.
  • Tax Invoice / Receipt — the official VAT-compliant invoice generated at or after payment. Includes your tax number and a sequential invoice number.
  • Folio Statement — an itemised running total of all charges posted to a guest's room during their stay (room charges + extras). Shown at checkout.
  • Credit Note — issued when a refund is processed. Reduces the outstanding amount on the corresponding invoice.

Generating an invoice

1
Open the booking

Go to Bookings → [Booking Reference]. The Finance tab shows all billing history for this booking.

2
Click "Generate Invoice"

Choose the invoice type: Proforma, Tax Invoice, or Folio Statement. The system pre-fills all line items based on the booking and any posted charges.

3
Review and customise line items

Add, remove or edit line items if needed. Each line shows a description, quantity, unit price, VAT rate and subtotal. You can also add discounts per line or on the total.

4
Send or print

Click Send to Guest to email the PDF, or Print for a physical copy. The invoice is also downloadable as a PDF at any time.

Recording a payment

To record a payment against an invoice:

1
Open the invoice and click "Record Payment"

You can also record payments from Finance → Payments → + New Payment and link it to an invoice manually.

2
Select the payment method

Options: Cash, M-Pesa (manual entry), M-Pesa STK Push (automatic), Card (manual), Pesapal, DPO, MomoPay, Bank Transfer, Cheque, or House Account (city ledger).

3
Enter the amount and reference

For M-Pesa, enter the Mpesa transaction code (e.g. QJL2XKFM5P). For bank transfers, enter the bank reference. This is stored in the audit trail.

4
Save

The invoice status updates to Paid (or Partially Paid if the amount is less than the balance). A payment receipt is generated automatically.

Online payment via STK Push (M-Pesa)

If you have M-Pesa Daraja configured, you can trigger a payment directly from the invoice:

  1. Open the invoice and click Request M-Pesa Payment.
  2. Enter the guest's Safaricom number (07XX or 254XX format).
  3. Click Send STK Push. An M-Pesa prompt appears on the guest's phone within seconds.
  4. The guest enters their M-Pesa PIN. Payment confirmation arrives in real time and the invoice is automatically marked Paid.
STK Push works for amounts up to KES 300,000 per transaction (Safaricom limit). For larger amounts, use Pesapal or bank transfer.

Refunds & credit notes

To issue a refund:

  1. Open the original invoice and click Issue Refund.
  2. Enter the refund amount and reason.
  3. Select the refund method (must match or be compatible with the original payment method).
  4. A Credit Note is generated and linked to the original invoice. The net balance is updated.
M-Pesa refunds are processed as reverse transactions via Daraja B2C. They may take up to 5 minutes to reflect on the guest's phone. Always capture the B2C transaction ID for your records.

House accounts (corporate / city ledger)

For corporate guests billed to a company account:

  • Create the company under Guests → Companies → + New Company.
  • Set a credit limit and billing cycle (weekly, monthly).
  • When checking in a corporate guest, select Post to House Account as the payment method.
  • At the end of each billing cycle, go to Finance → House Accounts → [Company] → Generate Statement. Send the consolidated invoice to the company's accounts department.

Financial reports

Find all financial reports under Finance → Reports:

  • Daily Revenue Report — total revenue by room type, extras category and payment method for any date range.
  • Outstanding Invoices — all unpaid or partially paid invoices, aged by 30 / 60 / 90+ days.
  • VAT Report — tax collected per period, formatted for KRA or your local authority.
  • Payment Method Breakdown — cash, M-Pesa, card and other channel split.
  • Occupancy & RevPAR — occupancy %, average daily rate (ADR) and revenue per available room.

All reports can be exported to PDF, Excel or CSV.