Both tools require API access: Manage and Reports: View in the connected
company. OAuth
finta:read is sufficient; exporting creates a file without editing
the books. Permissions are checked on every call. Company and filename are inferred
from the connection, and an export ID cannot select a different company.
The existing get_income_statement, get_balance_sheet, and get_cash_flow
tools return financial data directly. Use the export tools when you need a file.
Create an export
The examples show the tool name and arguments your MCP client sends. Your client handles OAuth and the MCP transport.
Ranges may span at most 120 calendar months, counting both boundary months.
PDFs additionally support at most 13 displayed periods. For more columns,
shorten the range, use coarser grouping, or select CSV/XLSX. Balance-sheet periods
show cumulative balances through each cutoff, including history before the start.
Unknown API fields, including
email_on_completion, are refused.
Creation returns a report_export immediately, with its export_ ID, status,
parameters, timestamps, generation duration, and nullable file and error.
The assistant should retain that ID and use the retrieval tool to check it.
Retry safely
Generate a key once per requested export and keep it across retries. The tool sendsidempotency_key as the API’s Idempotency-Key header, not as a report field.
The same key and normalized inputs return the original export. Different inputs
under that key return idempotency_key_conflict; changing the key creates a new job.
If submission times out or queueing cannot be confirmed, retry the same key and
inputs. Once an ID is known, poll it instead of submitting again. A terminal failure
keeps its ID and key: fix the cause and use a new key if a new export is wanted.
The worker reads the books during generation. An existing export remains the
original file; to export updated books, use a new key.
Poll the export
A successfully retrieved export can have
status: "failed". Check the status and
error fields instead of assuming a successful tool call means generation succeeded.
There is no automatic completion notification in this flow.
Download or refresh the link
On success,file contains filename, content_type, size, download_url,
and expires_at. The assistant uses its host’s download/file tools to fetch the
URL and save the file, ideally using the returned filename. If the host cannot
download files, the assistant can give you the link instead. The MCP tool itself
does not save a file on your computer; the assistant should confirm a download
only after its host reports that saving succeeded.
Fresh links are available only before completed_at plus 30 days (2,592,000 seconds). At or after that cutoff, retrieval and creation replays still return succeeded, with file/error null. The stored file is retained. A new export with a new key generates another report from current books; it does not restore the old snapshot.
Within that window, successful retrieval requests a fresh link expiring seven days from that
retrieval. Credentials or storage policies can invalidate it sooner. Retrieve
the same export again for a fresh link before the cutoff; this does not regenerate the report. Previously issued links keep their original expiry, even beyond the cutoff.
Export records and files have no automatic age-based cleanup in the application.
Five unfinished API exports are allowed per company, including those queued or
waiting to retry. At capacity, creation returns report_export_limit_exceeded;
polling and replay remain available, subject to normal limits. For other refusal
and recovery details, see Report Exports and
Errors.