HaloPSA Invoices
Overview
HaloPSA invoices represent bills generated for client work and contracts. Use these tools to view invoice status, track payment, and pull invoice data for reporting or reconciliation. Invoices are read-only via MCP; creation and dispatch happen through the HaloPSA UI or billing workflows.
Anti-triggers
This surface is read-only. There is no tool here that raises, edits,
sends, or credits an invoice — a request to do any of those cannot be
satisfied by this skill.
- Raising, sending, or crediting an invoice — no MCP tool exists;
route the operator to the HaloPSA UI rather than improvising a write.
- Payments, ledgers, and reconciliation in the accounting system —
the invoice of record for the books lives there; use
xero-invoices
and xero-payments.
- Why an invoice says what it says — recurring charges, prepaid-hour
deduction, and billing frequency are configured on the agreement; use
halopsa-contracts.
- The billable time behind a line — time entries are logged as ticket
actions; use
halopsa-tickets.
- The books are in QuickBooks rather than Xero — use
qbo-invoices.
- A distributor invoice — licence cost the MSP owes runs in the
opposite direction to a client invoice and inverts margin if the two
are mixed; use
pax8-invoices.
API Patterns
List Invoices
Tool: halopsa_invoices_list
Key parameters:
client_id — Filter invoices by client ID
status — Filter by invoice status (e.g., "draft", "sent", "paid" — values are instance-specific)
sent — Filter by sent status (true = sent, false = unsent)
paid — Filter by paid status (true = paid, false = outstanding)
invoice_date_start — Date range start (format: YYYY-MM-DD)
invoice_date_end — Date range end (format: YYYY-MM-DD)
limit — Maximum results (default: 50)
Response includes:
record_count — Total matching invoices
invoices — Array of invoice records with ID, client, amount, dates, and status
Get Invoice Details
Tool: halopsa_invoices_get
Parameters:
invoice_id (required) — The invoice's numeric ID
Returns the full invoice record including line items, totals, tax, payment history, and associated tickets/contracts.
Common Workflows
Find All Unpaid Invoices for a Client
- Find the client ID using
halopsa_clients_search or halopsa_clients_list
- Call
halopsa_invoices_list with client_id and paid: false
- Review outstanding invoices and amounts
Monthly Invoice Report
- Call
halopsa_invoices_list with invoice_date_start and invoice_date_end for the month
- Filter or group by client, status, or amount
- Export totals for finance reporting
Chase Unsent Invoices
- Call
halopsa_invoices_list with sent: false
- Review draft invoices not yet dispatched to clients
- Use HaloPSA UI to review and send
Invoice Detail Lookup
- Call
halopsa_invoices_list to locate the invoice by client/date
- Note the invoice
id
- Call
halopsa_invoices_get with that ID for full line-item detail
Notes
- Invoice status values are instance-specific; check your HaloPSA configuration for valid status strings
- Line item detail is only available via
halopsa_invoices_get — the list endpoint returns summary data
- Invoices are read-only via MCP; to create, edit, or send invoices, use the HaloPSA web interface
- To find a client's ID for filtering, use the
clients skill with halopsa_clients_search
1---2name: halopsa-invoices3description: HaloPSA invoices as a read-only MCP surface: listing by client or date range, filtering by payment and send status, retrieving line-item detail on a single invoice, and the reporting and reconciliation workflows built on them.4---56# HaloPSA Invoices78## Overview910HaloPSA invoices represent bills generated for client work and contracts. Use these tools to view invoice status, track payment, and pull invoice data for reporting or reconciliation. Invoices are read-only via MCP; creation and dispatch happen through the HaloPSA UI or billing workflows.1112## Anti-triggers1314This surface is read-only. There is no tool here that raises, edits,15sends, or credits an invoice — a request to do any of those cannot be16satisfied by this skill.1718- **Raising, sending, or crediting an invoice** — no MCP tool exists;19 route the operator to the HaloPSA UI rather than improvising a write.20- **Payments, ledgers, and reconciliation in the accounting system** —21 the invoice of record for the books lives there; use `xero-invoices`22 and `xero-payments`.23- **Why an invoice says what it says** — recurring charges, prepaid-hour24 deduction, and billing frequency are configured on the agreement; use25 `halopsa-contracts`.26- **The billable time behind a line** — time entries are logged as ticket27 actions; use `halopsa-tickets`.28- **The books are in QuickBooks rather than Xero** — use29 `qbo-invoices`.30- **A distributor invoice** — licence cost the MSP owes runs in the31 opposite direction to a client invoice and inverts margin if the two32 are mixed; use `pax8-invoices`.3334## API Patterns3536### List Invoices3738Tool: `halopsa_invoices_list`3940Key parameters:41- `client_id` — Filter invoices by client ID42- `status` — Filter by invoice status (e.g., "draft", "sent", "paid" — values are instance-specific)43- `sent` — Filter by sent status (`true` = sent, `false` = unsent)44- `paid` — Filter by paid status (`true` = paid, `false` = outstanding)45- `invoice_date_start` — Date range start (format: `YYYY-MM-DD`)46- `invoice_date_end` — Date range end (format: `YYYY-MM-DD`)47- `limit` — Maximum results (default: 50)4849Response includes:50- `record_count` — Total matching invoices51- `invoices` — Array of invoice records with ID, client, amount, dates, and status5253### Get Invoice Details5455Tool: `halopsa_invoices_get`5657Parameters:58- `invoice_id` (required) — The invoice's numeric ID5960Returns the full invoice record including line items, totals, tax, payment history, and associated tickets/contracts.6162## Common Workflows6364### Find All Unpaid Invoices for a Client65661. Find the client ID using `halopsa_clients_search` or `halopsa_clients_list`672. Call `halopsa_invoices_list` with `client_id` and `paid: false`683. Review outstanding invoices and amounts6970### Monthly Invoice Report71721. Call `halopsa_invoices_list` with `invoice_date_start` and `invoice_date_end` for the month732. Filter or group by client, status, or amount743. Export totals for finance reporting7576### Chase Unsent Invoices77781. Call `halopsa_invoices_list` with `sent: false`792. Review draft invoices not yet dispatched to clients803. Use HaloPSA UI to review and send8182### Invoice Detail Lookup83841. Call `halopsa_invoices_list` to locate the invoice by client/date852. Note the invoice `id`863. Call `halopsa_invoices_get` with that ID for full line-item detail8788## Notes8990- Invoice status values are instance-specific; check your HaloPSA configuration for valid status strings91- Line item detail is only available via `halopsa_invoices_get` — the list endpoint returns summary data92- Invoices are read-only via MCP; to create, edit, or send invoices, use the HaloPSA web interface93- To find a client's ID for filtering, use the `clients` skill with `halopsa_clients_search`