Invoices and billing documents¶
Finance teams have exact expectations for an invoice: where the totals sit, how tax is broken out, which logo appears. CxReports is built for documents where the layout is the requirement, not an afterthought.
What it produces¶
A PDF that matches a specified layout every time — the same margins, the same table geometry, the same rounding — driven by your billing data.
How you build it¶
- Connect your billing data with a data source — SQL, an API, or a file
- Lay the document out in the Report Editor
- Put line items in a Data Table, with totals in its footer
- Move fixed parts — letterhead, payment terms, footer — into a template so every invoice shares them
- Drive per-customer variation with parameters
- Deliver on a schedule with Report Generation Jobs
The invoice tutorial walks the whole thing end to end.
What makes it tricky¶
- Totals must be computed, not transcribed. Use the Data Table's aggregate footer rather than a separate query, so the figures cannot drift from the lines above them.
- Tax breakdowns are usually grouped. Grouping levels in the Data Table produce per-rate subtotals without a second data source.
- Currency formatting is per-report, not per-cell. Set the default in Formatting and override only where a column genuinely differs — see Text Formats.
- Branding belongs in a theme, not in each component. One theme swap then re-brands every invoice.