Expenses

Track and manage business expenses.

Overview

Expenses represent money going out of your business. They are used to record purchases, supplier bills, and any outgoing costs associated with your projects. Every expense belongs to a Project and is linked to a Company (the supplier or vendor you are paying).

Expenses give you visibility into:

  • What your business is spending money on, broken down by project and supplier
  • How much is owed to suppliers via the Trade Creditors liability account
  • Which payments have been made and what remains outstanding
  • Tax obligations through automatic GST/VAT tracking on each line item

Each expense is automatically assigned a unique number from the account's auto-incrementing sequence when it is created. This number is used for reference across PDFs, emails, and reports.

Expenses share the same underlying journal entry system as invoices and quotes, but track outgoing costs rather than incoming revenue. They use Expense Accounts (cost categories) rather than Income Accounts for their line items.

Expenses can also be created via API integrations (Zapier, N8n) and assigned to projects later.

You can access expenses from within a Project's financial documents section.

Note: Expenses do not support recurring schedules. Unlike invoices, there is no recurring feature for expenses. Use Duplicate to create copies of regular expenses.


Creating an Expense

Click the New Expense button within a project to create a new expense. A form will open with the following fields.

Fields

Field Required Description
Title Yes A descriptive name for the expense (e.g. "Office Supplies — January", "Web Hosting Q1").
Date (sent_on) Yes The date of the expense. Defaults to today's date. This is the date used for financial reporting and ledger entries.
Company / Supplier Yes The supplier or vendor this expense is for. Uses an autocomplete search across your existing businesses. If the company does not exist, it will be created automatically.
Project Yes The project this expense belongs to. Only active (unlocked) projects are available.
Number Auto Automatically generated from the account's next number sequence. Assigned on creation and again on finalisation if not already set.
Content No Free-text notes or description for the expense. Appears on the expense document.
Footer No Footer text displayed at the bottom of the PDF.
Tax Inclusive No Toggle to indicate whether line item amounts include tax. When enabled, tax is calculated as included in the entered amounts. When disabled, tax is added on top of the entered amounts.
Default Transaction Account No The default expense account (cost category) applied to new line items. Only Expense Accounts are available for selection.
Default Tax No The default tax rate applied to new line items on this expense.

Important Notes

  • The Title and Date fields are required — the expense cannot be saved without them
  • The Company field uses autocomplete and will create a new business record if the entered name does not match an existing one
  • Expenses can only be created within active (unlocked) projects — you cannot create expenses on locked projects
  • There is no recurring feature for expenses. Each expense must be created manually.

Line Items & Transaction Groups

Expenses use the same transaction structure as invoices: Transaction Groups containing Line Items (Transactions).

Transaction Groups

Transaction groups act as sections within an expense. Each group has a name and contains one or more line items. When an expense is first created, a default transaction group is automatically initialised using the expense title.

You can add multiple transaction groups to organise line items by category, phase, or any other logical grouping.

Line Items

Each line item within a transaction group represents an individual cost entry. Line items have the following fields:

Field Description
Description A text description of the item or service purchased
Quantity The number of units (defaults to 1)
Amount The unit price for the item
Tax Rate The tax rate applied to this line item. Inherited from the expense's Default Tax if set.
Transaction Account The expense account (cost category) for this line item. Inherited from the expense's Default Transaction Account if set. Only Expense Accounts are shown.

System Transactions

When an expense is saved, the system automatically creates and maintains two types of system transactions behind the scenes:

  • Trade Creditors — A liability transaction representing the amount owed to the supplier. This is recorded in the Trade Creditors loan account and tracks the total payable amount.
  • Tax Paid — A liability transaction for the tax component of the expense. This is recorded in a regional tax account (e.g. "GST Paid" in Australia, "VAT Paid" in other regions) and tracks the tax obligations on purchases.

These system transactions are recalculated every time the expense is saved. They are grouped by tax rate, meaning if line items use different tax rates, separate Tax Paid entries are created for each.

Tax Calculation Modes

The Tax Inclusive toggle on the expense controls how tax is calculated:

  • Tax Inclusive (on) — The amounts entered on line items already include tax. The system calculates the tax component by extracting it from the total. The subtotal displayed is the amount excluding tax.
  • Tax Exclusive (off) — The amounts entered on line items do not include tax. Tax is calculated and added on top. The total is the subtotal plus tax.

Expense States & Workflow

Every expense moves through a series of states that represent where it is in the approval, sending, and payment process. You change an expense's state through actions available on the expense detail page.

The States

State Description
Draft Initial state. The expense is editable and has not yet entered the accounting ledger.
Finalised The expense is locked for editing and has been entered into the accounting ledger.
PDF Sent The expense PDF has been emailed to a recipient.
Marked Sent The expense has been manually marked as sent (for tracking purposes when sent outside of Beeswax).
Partial Paid One or more payments have been recorded, but the full amount has not yet been paid.
Paid The expense has been fully paid. The payable amount is zero.

Typical Workflow

Draft --> Finalised --> PDF Sent --> Paid
                   |              |
                   +--> Marked Sent --> PDF Sent
                   |
                   +--> Partial Paid --> Paid

State Transitions

Event From To Description
finalise Draft Finalised Locks the expense and enters it into the ledger
send_pdf Finalised, PDF Sent, Marked Sent PDF Sent Emails the PDF and updates the state
marked_sent Finalised Marked Sent Manually marks the expense as sent
remove_marked_sent Marked Sent Finalised Reverts the marked sent status
payment_made Finalised, PDF Sent, Marked Sent, Partial Paid Paid or Partial Paid Records a payment. Moves to Paid if payable is zero, otherwise Partial Paid.
payment_deleted PDF Sent, Paid, Partial Paid Finalised or Partial Paid Removes a payment. Reverts to Finalised if no payments remain, otherwise stays Partial Paid.
unfinalise Finalised Draft Returns the expense to draft for editing

Key Differences from Invoices

Unlike invoices, expenses do not have First Notice, Second Notice, or Final Notice states. The notice workflow applies only to invoices for chasing overdue payments from clients. Expenses follow a simpler progression from finalised through to paid.


Finalising an Expense

Finalising an expense is the step that transitions it from a working draft into an official financial record.

What Finalising Does

  • Locks the expense for editing — Once finalised, the expense fields and line items cannot be modified
  • Enters the expense into the accounting ledger — The expense and its system transactions (Trade Creditors, Tax Paid) become visible in ledger reports and BAS/tax statements
  • Assigns a number — If the expense does not already have a number, one is assigned from the auto-incrementing sequence

Requirements

Before an expense can be finalised, the following conditions must be met:

  • The total must be non-negative — An expense with a negative total cannot be finalised. Individual line items can be negative, but the overall total must be zero or above.
  • The project must not be locked — Expenses on locked projects cannot have their state changed.

Unfinalising

If an expense has been finalised but needs to be corrected, it can be unfinalised. This returns the expense to the Draft state, making it editable again and removing it from the finalised ledger entries.

Unfinalising is only available when the expense is in the Finalised state. Expenses that have been sent, partially paid, or fully paid cannot be unfinalised directly — payments must be deleted first.


Sending & PDF Export

Expenses can be exported as PDFs and emailed directly from Beeswax.

Emailing an Expense PDF

From the expense detail page, use the Send action to email the expense as a PDF attachment. The email form includes:

  • TO — The primary recipient email address(es)
  • CC — Optional carbon copy recipient(s)
  • Message — A custom message body to include in the email

Sending the PDF transitions the expense state from Finalised to PDF Sent.

Mark as Sent

If you have sent the expense through another channel (e.g. postal mail, a different email client), you can use Mark as Sent to update the expense state to Marked Sent without emailing a PDF. This is useful for manual tracking. The Mark as Sent action can be reversed using Remove Marked Sent, which returns the expense to the Finalised state.

PDF Layout Options

When generating or sending a PDF, you can choose from five layout options that control the level of detail shown:

Layout Description
Everything Shows all information including line item descriptions, quantities, amounts, and tax
No Details Removes individual line item details, showing only group-level information
No Qty or Amounts Removes quantity and amount columns, showing just group totals
Total Only (without details) Shows only the overall total without individual line item details
Total Only + (with details) Shows the overall total along with line item details

Payments & Remittances

Recording payments against expenses tracks how much has been paid to suppliers and how much remains outstanding.

How Payments Work

Payments are recorded through the Remittance model. Each remittance represents a payment made against an expense and includes:

  • Amount — The payment amount (must be a valid number)
  • Bank Account — The bank or transaction account the payment was made from
  • Paid On — The date the payment was made

What Happens When a Payment Is Recorded

When a remittance is created against an expense:

  1. An ExpensePayment journal entry is automatically created in the same project
  2. The ExpensePayment records a system transaction against the Trade Creditors account, reducing the liability
  3. A transaction is created against the selected bank account, recording the outflow of funds
  4. The expense state transitions via the payment_made event:
    • If the remaining payable amount is zero, the expense moves to the Paid state
    • If there is still an outstanding balance, the expense moves to the Partial Paid state

Partial Payments

You can record multiple payments against a single expense. Each payment reduces the payable amount. The expense remains in the Partial Paid state until the total of all payments equals the expense total, at which point it transitions to Paid.

Tracking Payable and Paid Amounts

Each expense tracks two key financial figures:

  • Payable — The remaining amount owed, calculated as the expense total minus the sum of all remittance payments
  • Paid — The total amount already paid, calculated as the sum of all remittance amounts

Payment Deletion

When a remittance is deleted:

  • The corresponding ExpensePayment journal entry is automatically destroyed
  • The expense state transitions via the payment_deleted event:
    • If no remittances remain, the expense reverts to Finalised
    • If other remittances still exist, the expense moves to Partial Paid

Restrictions

  • An expense cannot be deleted while it has existing payment remittances. You must delete all payments before the expense itself can be removed.
  • A paid expense is locked for editing — it cannot be modified while in the Paid or Partial Paid state.

Uncategorised Expenses

Expenses created through external integrations may arrive without a project assignment. Beeswax provides a dedicated view for reviewing and reassigning these expenses.

How Uncategorised Expenses Are Created

When an expense is created via API integrations (such as Zapier or N8n workflows) without a project_id, it is automatically held in the Incoming Expenses area. This acts as a holding area for expenses that have not yet been assigned to a real project.

The Uncategorised Expenses Page

The Incoming Expenses page displays all expenses that are waiting to be assigned. From this page, you can:

  • Review each expense to verify its details (title, amount, supplier, date)
  • Reassign expenses to the correct project by editing the expense and selecting the appropriate project
  • Edit line items and categorisation as needed

Note: New API-created expenses without a project_id will automatically appear on this page until assigned.

Best Practice

Regularly check the Incoming Expenses page to ensure all expenses are assigned to their correct projects. Expenses left in Incoming will not appear in project-level financial reports until they are assigned.


Attachments & Receipts

You can attach files to expenses for record-keeping, such as supplier invoices, receipts, purchase orders, or supporting documentation.

How Attachments Work

File attachments are managed through the Asset model. Each expense can have multiple files attached to it.

Supported Actions

  • Upload — Attach files (images, PDFs, documents) directly to the expense
  • Preview — View attached files inline where supported
  • Delete — Remove individual attachments from the expense

Important Notes

  • There is no OCR (Optical Character Recognition) functionality — files are uploaded for reference only and their contents are not automatically extracted into expense fields
  • Attachments are stored against the expense record and follow the expense through all state transitions
  • Multiple files can be attached to a single expense
  • Common file types include images (PNG, JPG), PDF documents, and office documents

How-to Guides

Create an Expense

  1. Navigate to the Project
  2. In the Money section, select Expenses
  3. Click New Expense
  4. Add line items and details
  5. Click Save

Delete an Expense

  1. Locate the Expense
  2. Click the Delete icon
  3. Confirm deletion

Note: Expenses with payments cannot be deleted. Unreconcile first if needed, then remove the payment before deleting.

Preview an Expense

  1. Find the expense
  2. Click the Eye icon in Page Tools
  3. Choose a display option

Duplicate an Expense

  1. Locate the expense
  2. Click the Duplicate icon in page actions

Use Expenses as Purchase Orders

Expenses can function as purchase orders — send them as PDFs to suppliers. Expenses are colour-coded red in the interface to distinguish them from invoices.

Expense States

State Description
Draft Editable, not yet in the accounting ledger
Finalised Locked for editing. You must manually select the Company when finalising.
Sent PDF has been emailed to the supplier
Part Paid One or more payments recorded, balance remains
Paid Fully paid

Permissions by Role

Different roles have different levels of access to expenses and related financial features.

Expense Actions by Role

Action Owner Super Admin Admin Accountant General User Contractor Client
View expenses Yes Yes Yes Yes No No No
Create expenses Yes Yes Yes Yes No No No
Edit expenses Yes Yes Yes Yes No No No
Delete expenses Yes Yes Yes Yes No No No
Attach files Yes Yes Yes Yes No No No
Finalise / Unfinalise Yes Yes Yes Yes No No No
Send PDF Yes Yes Yes Yes No No No
Record payments Yes Yes Yes Yes No No No
View ledger Yes Yes No Yes No No No
View BAS statements Yes Yes No Yes No No No
Manage raw journal entries Yes Yes No Yes No No No
Manage bank transfers Yes Yes No Yes No No No
Manage payroll Yes Yes No Yes No No No
Approve payments Yes Yes No No No No No
Account settings Yes Yes No No No No No
Billing & subscription Yes No No No No No No

Key Permission Notes

  • Owner has full access to all expense and accounting features, including billing and subscription management.
  • Super Admin has full access to all expense and accounting features except billing and subscription settings.
  • Admin can create, edit, delete, finalise, send, and record payments on expenses. However, Admins cannot access the ledger, BAS statements, raw journal entries, bank transfers, payroll, or payment approval.
  • Accountant has full access to expense management and all accounting features (ledger, BAS, journal entries, bank transfers, payroll) except payment approval and account settings.
  • General User has limited access and cannot manage expenses directly. They do not have access to financial documents.
  • Client roles are external users who cannot view or access expenses in any capacity.
  • Contractor roles cannot view or access expenses in any capacity.