More FeaturesReports

More Features

Reports

See who owes you and for how long, revenue per month, tax collected and payments received, filtered and exported to CSV or PDF.

Coming the week of 25 January 2027

This feature ships in the week of 25 January 2027. This page describes how it will work; details can change before release.

Reports turn your invoices, credit notes and payments into the numbers you need to run the business and to hand to your accountant: who owes you and for how long, how much you invoiced and collected each month, the tax you collected, and which payment methods your clients used. Reports are included on every plan, Free and Team. Each report is also an API call and an MCP tool, so your own code or your AI assistant gets exactly the same figures as the screen.

The reports

ReportWhat it showsReport name
Aged receivablesWho owes you and for how long. Open balances grouped Current, 1-30, 31-60, 61-90 and 90+ days past due, per client, with totals.aged-receivables
Outstanding by clientThe open balance of each client.outstanding-by-client
Client statementFor one client and a date range: invoices, credit notes and payments with a running balance. Ready to send to the client.client-statement
RevenueAmounts invoiced and paid per month.revenue
Tax collectedTax per tax rate and period, net of credit notes. Useful for your tax return.tax-collected
Payments receivedPayments per payment method (Stripe, bank transfer and so on) and month.payments-received

Filters

Every report takes the same filters:

  • Business: one business, or every business you can reach.
  • Client: one client.
  • Date range: from and to.
  • Currency: limit the report to one currency.

Your filters change only the view. The numbers come from the same documents and payments, so a CSV or PDF export of a filtered report shows exactly the figures on screen.

Several currencies

If you invoice in more than one currency, amounts are shown per currency, plus a total in the business currency. That total uses the exchange rate frozen on each document when it was issued, not today's rate, so last year's revenue does not change when rates move.

What counts

  • Credit notes reduce an invoice's balance, and tax collected is shown net of credit notes, so reports show the position after corrections.
  • A payment counts once it is recorded: from a verified payment-provider event, or a payment recorded by a person. A browser redirect after checkout never counts as a payment.
  • Each instalment of a payment schedule has its own due date.

View a report in the web app

1

Open Reports

Reports is in the app sidebar.

2

Pick a report

For example Aged receivables to see overdue balances, or Client statement for one client.

3

Set the filters

Choose the business, client, date range and currency. The report updates as you change them.

4

Export

Download the report as CSV for a spreadsheet or your accountant, or as PDF to share or send. Both give the same numbers as the screen.

A client statement as PDF is a quick way to show a client everything open on their account in one document. Clients with portal access can also see their own statement in the client portal.

Reports through the API

Each report is a GET request. Get a report takes the report name in the path; aged receivables also has its own endpoint, Get aged receivables. Filters are query parameters: business_id, client_id, from, to, currency and format.

curl "https://api.freeinvoiceautomation.com/v1/reports/aged-receivables?business_id=0193f2a1-7c4e-7b9a-9f10-3c2d1e0a4b51" \
  -H "Authorization: Bearer $FIA_API_KEY"

format is json (the default), csv or pdf. Asking for csv or pdf is an export (Export a report) and needs the reports.export permission. Money in JSON reports follows the usual rule: strings of integer minor units with a currency, so "125000" with "currency": "USD" is 1,250.00 USD. See Money and currencies.

With your AI assistant

Two MCP tools read reports: get_aged_receivables and get_report (with a report name). Both are read-only, so your assistant can call them without a confirmation step. Ask in plain language:

Which clients owe me money for more than 60 days?
How much tax did I collect between January and March 2027?

The assistant gets the same numbers as the Reports screen. See the MCP tool reference.

Rules and limits

  • Read-only. Reports never change your data.
  • Your scope only. A member who can reach only some businesses sees only those businesses in every report.
  • Exact maths. All totals are computed from integer minor units by the same money code that computes invoice totals, so a report total always matches the documents it lists.
  • Not tax filing. Tax collected is a figure to give your accountant. Free Invoice Automation does not file tax returns.
  • Full accounting reports (trial balance, profit and loss, balance sheet, general ledger) belong to the accounting ledger.

Errors

CodeWhen
validation_failedAn unknown report name, a bad date or an invalid filter value.
permission_deniedYour role lacks reports.view, or reports.export for CSV or PDF.
business_out_of_scopeYou asked for a business you cannot reach.
not_foundThe client id does not exist in your account.

Permissions

ActionPermission keyDefault roles
View reportsreports.viewOwner, Admin, Editor, Viewer, Accountant
Export to CSV or PDFreports.exportOwner, Admin, Editor, Accountant

See Roles and permissions.