Navigation
14.17. Export Finalized MSP Invoices for Import into QuickBooks, Xero, and Other Accounting Systems
Create AlgaPSA accounting export batches for QuickBooks Online, QuickBooks Desktop, QuickBooks CSV, and Xero so MSP finalized invoices can be imported into your accounting system.
Accounting exports are how an MSP closes the loop between Alga PSA billing and the accounting system of record. Once invoices are finalized, the accounting team builds an export batch, validates the line mappings, and delivers a file or sync payload that the accounting system can ingest. This keeps revenue, taxes, and customer records consistent between Alga PSA and your books without re-keying invoices.
Navigate to Billing > Tracking & Reports > Accounting Exports.
Supported adapters
When you create a batch, pick the adapter that matches the destination accounting system:
| Adapter | System |
|---|---|
| QuickBooks CSV | QuickBooks (CSV file import) |
| Xero CSV | Xero (CSV file import) |
| QuickBooks Online | QuickBooks Online (direct integration) |
| QuickBooks Desktop | QuickBooks Desktop (IIF or similar format) |
CSV adapters are the right choice when your accounting team prefers to drive the import on their side or when a direct integration is not yet wired up. The QuickBooks Online adapter is intended for tenants that have completed the QuickBooks Online connection in tenant billing settings.
The export batch list
The Accounting Exports page is a working list of every batch the tenant has created. Each row represents one export attempt — typically scoped to a billing period — with the columns:
| Column | Description |
|---|---|
| Batch | The batch identifier (short monospace ID). |
| Adapter | The accounting system adapter used. |
| Status | Current lifecycle state of the batch. |
| Created | When the batch was created. |
| Updated | When the batch was last updated. |
| Actions | Inline buttons to open or execute the batch. |
Use Refresh in the page header to reload the list after running a batch.
Batch lifecycle
Each batch moves through a defined lifecycle so accounting and billing staff always know where it stands:
| Status | Meaning |
|---|---|
| pending | Batch created, not yet processed. |
| validating | Alga PSA is checking line mappings and invoice data. |
| ready | Validation passed; the batch is ready to deliver. |
| delivered | The batch file or payload has been delivered or made available for import. |
| posted | Lines have been marked as posted in the accounting system. |
| failed | Processing encountered errors that block delivery. |
| cancelled | The batch was cancelled before completion. |
| needs_attention | The batch requires manual review (for example, a mapping or data error). |
A batch is considered "complete" when its lines reach posted. Until then the underlying invoices are still owned by Alga PSA from a sync standpoint.
Create an export batch
- Click New Export.
- Fill in the export parameters:
- Adapter — the accounting system to target.
- Start Date / End Date — the invoice date range to include.
- Client Search (optional) — narrow the batch to a specific client by name.
- Invoice Statuses — comma-separated list of invoice statuses to include (for example,
finalized,posted). - Notes (optional) — internal notes about this export run.
- Click Create Batch.
By default, every batch is created with excludeSyncedInvoices: true. That means any invoice already included in a previous accounting export is automatically left out of the new batch. This protects the accounting team from accidentally double-importing the same invoice when re-running an export for a billing period.
Open and execute a batch
The Actions column shows two inline buttons on every row, regardless of the batch's current status. They are not status-conditioned — both are always visible:
- Open — opens the batch detail dialog so you can review lines, errors, and metadata.
- Execute — runs (or re-runs) the batch through the adapter pipeline.
The detail dialog summarizes the batch:
- Batch ID, Adapter, Status, and Created timestamp.
- Number of Lines and number of Errors.
- Delivered timestamp (once the batch has been delivered).
The detail dialog also exposes a Refresh button next to Execute so you can reload the latest batch state without closing the dialog. This is useful while a batch is moving through validating, ready, and delivered states.
Error handling
When a batch surfaces errors, each error record includes:
- Error Code — the type of error (mapping, validation, adapter failure, and so on).
- Message — a description of what went wrong.
- Resolution State — one of open, pending_review, resolved, or dismissed.
Typical errors involve an unmapped service, product, tax code, account, or customer in the target accounting system. Resolve mapping or data issues — usually in tenant billing settings or directly on the affected invoice — and re-execute the batch.
Best practices for MSP billing operations
- Run accounting exports on a regular schedule after each billing cycle's invoices are finalized and delivered to clients.
- Use the date range filter to scope each export to a specific billing period rather than exporting all open invoices in a single batch.
- Review the detail dialog (lines and errors) before treating the batch as posted, so you catch any unmapped services or clients before they show up in the accounting system.
- Keep the default
excludeSyncedInvoices: truebehavior in place so finalized invoices cannot be exported twice. - Use Notes to record the billing period or any special handling — useful for audits and handoffs between billing and accounting staff.
