Skip to content

Tax reports

A tax report in xTool represents regulatory or tax-reporting data for an organisation. It is an independent entity and can aggregate data from multiple sources.

Tax reports are typically created by the platform (for example during France processing). The public API is read-only: you can list and get reports, but not create or update them via API.

Sources

Each tax report can list sources — the business objects used to build it.

API source shape:

Field Description
id Source row id
source_type What the source is (for example document, payment, tax_report)
source_id Id of that entity

This keeps invoices, payments, and reports loosely coupled while still showing how a report was composed.

Relation to documents and transactions

  • A tax report is not a document and not a transaction.
  • A report may later be represented by documents (through document connections) if a file representation is needed.
  • If such a document is sent or received, that communication uses its own transaction.
  • France invoice transactions can still show related tax-report lifecycle as transaction events (for example france.tax_report.send), while the Tax Report entity itself remains separate.

See Transactions and Send and receive invoices.

How France reports appear (high level)

Depending on the scenario, xTool may create tax reports when:

  • invoice-side tax reporting is processed as part of France invoice handling, or
  • periodic / ledger-based reporting aggregates eligible invoices (and related data) later

Cross-border B2B and B2C often rely more on later aggregation; domestic B2B reporting is more often tied to invoice processing. Exact timing depends on configuration and provider flows.

Relation to payments

Payments allocated to invoices can become report sources when e-reporting needs payment facts as well as invoice facts.

API overview

Method Path Notes
GET /api/v2/tax-reports List. Returns data + count
GET /api/v2/tax-reports/{tax_report_id} Get one report with sources

There are no public create / update / delete endpoints for tax reports.

Example get response (shape):

{
  "id": "tax-report-uuid",
  "organisation_id": "organisation-uuid",
  "sources": [
    {
      "id": "source-uuid",
      "source_type": "document",
      "source_id": "document-uuid"
    }
  ],
  "created_at": "2026-08-10T08:00:00Z",
  "updated_at": "2026-08-10T08:00:00Z"
}