Skip to main content
After connecting Finta, your assistant can read tax filing progress, R&D credits, and tracked vendor 1099 records with three tools. Each tool supports both filtered discovery and exact ID retrieval. These tools require API access: Manage and Taxes: View in the connected company. OAuth finta:read is sufficient. Permissions are checked on each call, and a public ID cannot select a different company. All three tools are read-only. Try asking:
  • “Have we filed our 2025 taxes?”
  • “What is our 2025 R&D credit, and does payroll submission need action?”
  • “Which 2025 1099 records still need a W-9?”

Search or retrieve by ID

For discovery, omit id and pass filters, or pass an empty argument object to search all available records. Omit year to search all available years; there is no implicit current-year default. Filters combine with AND. The examples below show the tool name and arguments your MCP client sends. Your client handles OAuth and the MCP transport.
To retrieve a known record, pass its public id alone:
An ID combined with any filter or pagination argument is a tool error. Numeric IDs from the webapp are not accepted; use the public ID returned by the tool.

Filters

Every tool accepts an exact four-digit year from 1000 through 9999, limit (1–500, default 100), and starting_after for pagination. The year is the tax year for filings/credits and the reporting year for 1099s, not submission year. Use JSON booleans (true or false), rather than strings. Passing false applies the filter; it is different from omitting the argument.

Results and pagination

Successful calls include the same JSON in structuredContent and a text content block, with isError: false. Both search and ID retrieval return data, has_more, and next_cursor in a list envelope. An ID lookup returns one record, has_more: false, and next_cursor: null. A missing or inaccessible ID is an error, not an empty successful result. If has_more is true, repeat the same tool and filters, adding the returned next_cursor unchanged as starting_after. Never use a record ID as a cursor. Pagination is live, so records can change between pages. For an invalid or stale cursor, start a fresh search with the desired filters. Illustrative exact-ID structuredContent, with synthetic IDs and timestamps:

Annual 1099 summaries

Only search_1099s includes summaries. Filter searches return complete annual reports selected by year, independent of other filters or pagination. For example, pending: true restricts data to pending records, while summaries still counts the year’s filed records too. Summaries repeat on each page; never add their counts across pages. Required equals pending plus filed; review-required records are counted separately. ID retrieval returns summaries: [] because no annual summary was requested. It does not establish zero annual counts. Search by year to get the summary. An absent report is unknown; an existing report with no required or unconfirmed records is not_required. These describe tracked records, not legal obligations. Counts describe filing records, not unique recipients; do not merge records by vendor name. The 1099 guide defines the record and annual-summary stages.

Interpret progress and amounts

search_taxes reads the recorded filing workflow. One income record shares a filing status across federal and recorded state jurisdictions. Preserve any unmapped_jurisdictions; recognized codes may not cover every recorded state. filed means workflow completion is recorded, without establishing authority acceptance or payment. Read filing_status even when no PDF is available. See the filing guide for status definitions. search_tax_credits returns integer USD cents. Divide by 100 for dollars, and keep null as unknown rather than converting it to zero. State amount_basis when reporting a credit: estimate, prepared_return, filed_return, or null when unknown. claimed describes a positive credit recorded in the filed income-tax return; payroll_submission.status separately describes payroll submission recorded in Finta. submitted does not establish provider acceptance, and payroll allocation is not a refund received. The credit guide defines the amounts, claim stages, and payroll stages. Available tax PDFs and W-9/1099 document links expire after five minutes. Retrieve the record again with id alone to refresh them. Keep signed links private. An empty collection does not establish that a company has no tax obligations. Treat future unknown status values as unrecognized rather than complete.

Errors and limits

A business failure returns isError: true with text content in the MCP result, even when the transport returns HTTP 200. API error codes and parameters appear in that text. They are not a REST error object in structuredContent. An expired or revoked OAuth token is a transport authentication failure. Let the client refresh it, or reconnect. Calls consume the existing MCP allowance; the internal API read does not consume an additional API call. Honor rate-limit retry guidance and wait for the reset or an allowance change after a monthly limit rejection. These tools read existing records. They do not calculate or claim credits, file returns or 1099s, send W-9 requests, or change tax records.