Accounting is where money actually moves. You record the bills your suppliers and subcontractors send (and match them to your orders), pay them, raise sales invoices to your clients, capture expenses, and keep it all in step with Xero. When a bill is recorded against a cost code, it becomes an actual cost in Job Cost — closing the loop from budget to committed to actual.
Cost codes and budget first. Invoice and expense lines are coded to cost codes, and bills match against the purchase orders they relate to. Have your cost codes, budget and orders in place first (see Jobs & Job Cost and Purchasing).
Vendors
A vendor is anyone you pay — categorised as a Subcontractor, Supplier, Consultant or Authority, with a GST treatment.
- Vendor list shows everyone you deal with. Add a vendor with their contact and payment details, or add one on the fly while creating an invoice.
- Sync vendors from Xero to bring your existing contacts across rather than retyping them.
- Edit, delete and restore vendors as your list changes. Each vendor’s record shows their invoices and payment history.
Supplier invoices (bills)
A vendor invoice is a bill you’ve received. It’s tied to a project and vendor, and optionally to the purchase order or subcontract order it relates to.
Recording a bill manually
- Open Invoices and Create invoice.
- Choose the vendor and project, enter the invoice number, dates and amounts (ex GST, GST, inc GST).
- Link it to the relevant PO or subcontract order so the bill matches what you ordered, and code the lines to cost codes / budget lines.
- Save. CortexPM assigns an internal reference for tracking.
The bill lifecycle
A bill moves through Received → Under Review → Approved → Partially Paid → Paid, and can also be Disputed, Rejected or Cancelled. As it’s approved and coded:
- Its cost lands as an actual cost against the cost codes in Job Cost.
- It increases the matched PO’s billed amount, reducing the PO’s unbilled balance.
Capturing bills with OCR
Rather than keying every bill, let CortexPM read them for you. OCR extracts the vendor, invoice number, dates and amounts from the document so you only review and confirm.
A single invoice
- Upload an invoice (PDF or image) to OCR.
- CortexPM reads it and pre-fills a review screen. It searches for the matching vendor, and you confirm the project, cost codes and any PO match.
- Create the invoice from the reviewed data.
A batch of invoices
For a stack of bills, use batch upload:
- Upload the batch — each document is read separately.
- Watch the batch status as each is processed. Review each one, retry any that didn’t read cleanly, and create the invoice from each once it’s right.
Letting vendors send their own
You can invite a vendor to submit their invoice directly. They receive a secure link (no login needed), upload their invoice, and it’s OCR-read and matched against their order and the project’s cost codes — landing in your review queue. Accounts and the project manager are notified when one arrives.
Tip: OCR gets you most of the way, but always check the cost codes and PO match before creating the invoice — that’s what keeps Job Cost accurate.
The Invoice Inbox
Every invoice that isn’t ready to be a cost lands here. Accounting → Invoice Inbox is the queue of things waiting on a job or a cost code, and working it to zero is the daily habit that keeps job cost accurate.
The tabs
| Tab | What’s in it |
|---|---|
| Everything | Every invoice in the inbox |
| No job | An invoice with no project on it |
| No cost code | On a job, but a line still needs coding |
| Not yet a bill | Uploaded and scanned, not yet turned into a bill |
Across the top: Waiting, Bills (ex-GST), Client invoices (ex-GST) and Oldest — which turns red once anything has been waiting more than 30 days.
Working it
Tick rows and hit Process… to set the job and the cost codes in one go. An invoice either leaves the inbox fully sorted or stays put, so you never end up with half-coded bills.
CortexPM suggests a job per row where it can — matching a PO or commitment number against the invoice number, or failing that, the most recent job for that vendor. The reason for the suggestion is shown, so you can tell a confident match from a guess.
Group the list by reason, by supplier or client, or by source — Xero, OCR or manual — and use the search and supplier filter to work a batch at a time.
Watch out: processing an invoice isn’t approving it. Cost is recognised on approval and allocation, so a processed bill still needs approving. There’s an Approve button on the same screen for that.
Watch out: bills and client invoices are processed separately — select one kind at a time.
Client invoices too
A sales invoice with no job lands here as well, in the Client invoices tile. Same treatment.
What unallocated money still does
Unallocated invoices aren’t ignored. They still count in your payables and receivables totals (shown with an “incl. $X unassigned” note), in the ageing strip as their own Unassigned segment, in the Overdue figure, and in the AP Ageing report.
What they don’t do is affect any job-level figures — job cost dashboards, budget vs actuals, forecasts, cash flow, and both portals all exclude them until they’re placed. They also can’t be claimed on an invoice-based progress claim until processed.
Tip: the badge on the Invoice Inbox button counts bills needing a job or a code, plus client invoices with no job. Getting it to zero before you run a job cost report is a good rule.
Paying vendors
Payments
A payment records money paid to a vendor and can be allocated across one or more of their outstanding invoices.
- Open Payments and Create payment.
- Choose the vendor and payment method (bank transfer, etc.), then select which of their invoices the payment covers and how much against each.
- Save. The invoices’ amount paid updates and their status moves toward Paid.
Payments run Draft → Pending → Processing → Completed (or Failed / Cancelled / Refunded).
ABA batch payments
To pay a batch of suppliers or subcontractors at once, CortexPM generates an ABA file (the Australian bank format) you upload to your bank.
- Preview the ABA export to check the payment lines.
- Download the ABA file and upload it to your online banking to make the payments.
- Mark as paid in CortexPM once the bank run is done, so the records reconcile.
ABA payments use the ABA settings on your company (bank code, user name/ID, transaction code) — set these up in Company settings first (see Getting Started). Progress claim payments can be paid this way too (see Contracts).
Expenses
Expenses capture costs that aren’t a supplier invoice — out-of-pocket spends, petty cash, general overheads — with a receipt attached.
- Create an expense, code it to the project and cost code, and attach the receipt.
- It runs through Draft → Submitted → Under Review → Approved → Paid (or Rejected).
Approved expenses also feed Job Cost as actual costs.
Sales invoices (billing your clients)
Sales invoices are the invoices you send to clients — your money in.
- Open Sales invoices and Create sales invoice for the project.
- Add the line items (you can pull cost code / budget data to build them), set the amounts, and save.
- Generate the sales invoice PDF to send, and send it to Xero if connected.
A sales invoice moves through Draft → Approved → Sent → Viewed → Partially Paid → Paid, and can be Overdue, Cancelled or Voided.
Note: for contract billing, progress claims in the Contracts module are usually how you bill clients against the contract — see Contracts. Sales invoices cover direct/ad-hoc billing.
Client payments
When a client pays, record a client payment against their sales invoice (or confirm a payment from the client portal). The invoice’s paid amount and status update, and you can see each project’s receivables in the client accounts dashboard.
Dashboards and the transaction ledger
- The Accounting dashboard is your overview of money in and out.
- Vendor accounts and client accounts dashboards focus on payables and receivables respectively.
- Cost transactions and financial transactions give you the underlying ledger — every revenue, cost and commitment entry across the system.
Xero sync
CortexPM connects to Xero for bills, sales invoices, payments, contacts and purchase orders. Setting up the connection is covered in Getting Started; this is what it means day to day.
One Xero organisation per company entity. Each company you trade through connects to its own Xero organisation with its own sync settings and its own import cutoff.
How a bill finds its job
An incoming bill gets its job from the CortexPM Jobs tracking category in Xero, then that’s cross-checked against any matching purchase order or subcontract order.
- Tracking and the commitment agree — the bill goes onto the job.
- They disagree — the bill goes to the Invoice Inbox for you to decide. CortexPM won’t guess between two plausible answers.
- No tracking category and no matching order — the Invoice Inbox again.
Tip: the more you use POs and subcontract orders, the more bills place themselves.
The import cutoff
Import bills dated on or after… on the entity’s sync settings controls what comes across. Anything dated before it isn’t imported, and any balance still owing from before it is treated as aged rather than current payables — so your ageing report reflects the business you’re running now, not everything Xero has ever held.
Editing a bill that’s already in Xero
Edit a bill in CortexPM — dates, invoice number, line descriptions, quantities, amounts — and the change is sent to Xero, which updates the existing bill in place. Your accountant’s per-line account codes and tax treatment aren’t touched.
No duplicate bills
Before sending a bill to Xero, CortexPM checks for an existing Xero bill with the same invoice number and the same contact. If one exists, the two records are linked rather than a second bill being created — so sending the same bill twice never produces a duplicate in Xero.
Invoice scans reach the bill
When file sync is on, a scan attached in CortexPM is pushed up onto the matching Xero bill, so the source document sits with the bill your accountant sees. Documents that came from Xero are never sent back up. Turn file sync off and bills still sync — only their documents stay behind.
CortexPM also checks both sides periodically for attachments that haven’t yet been copied across, so a scan added later still reaches the bill.
Where to next
Bills here become the actual costs in Jobs & Job Cost, and match back to the orders in Purchasing. For billing clients against the contract and certifying subcontractor claims, see Contracts.