GET /taxes to discover your company’s existing income-tax and Delaware franchise-tax filing records. Use GET /taxes/{id} to retrieve one record and refresh its document links. Both require API access: Manage and Taxes: View for the key owner. Your API key selects the company.
Discover records first
Start without filters so you can see the types, years, and jurisdictions Finta has recorded:has_more, next_cursor, and data fields. An empty data array means no existing records match the request; it does not establish that the company has no tax obligations. Reading taxes does not create a filing or start filing work.
Understand one tax record
An income record covers federal income tax (US) and its recorded state jurisdictions, such as California (US-CA), under one shared filing workflow and document package. The record has one filing_status, filed_at, and extension_filed_at for that workflow. Filtering for California returns the whole record, including federal and other covered jurisdictions. These fields do not report independent federal and state filing outcomes.
A Delaware franchise record has type: "franchise" and jurisdictions: ["US-DE"]. Its filing progress and documents describe the Delaware franchise filing.
The year is the recorded tax year, not the calendar year of submission. Jurisdiction codes use US for federal and US- plus the state code for states or the District of Columbia. Washington, D.C. returns uploaded through Finta normalize to US-DC.
unmapped_jurisdictions contains stored state names Finta could not normalize. Preserve these values if you need to inspect coverage; do not invent a code for them or assume the jurisdictions array includes every stored state when this array is nonempty.
The read API exposes these existing filing workflows and their PDFs. It does not expose tax credits, balances due, or filing submission actions. Vendor 1099 filings have their own read endpoints; see 1099 Filings.
Filter and paginate
Every filter is optional:
For example, find the income workflow covering California for tax year 2025:
created descending, then public ID descending. When has_more is true, pass next_cursor as starting_after and keep the same filters on every page. When has_more is false, next_cursor is null.
A cursor must still belong to the filtered company collection. If it is missing or no longer matches the filters, the list returns 404 resource_missing with param: "starting_after". Restart from the first page with the filters you want. See Pagination.
Read filing progress
filing_status describes the recorded workflow stage:
Use this status for filing progress. It does not establish tax payment or acceptance by a tax authority. Preserve an unfamiliar status if one is added later, rather than treating it as
filed.
Interpret dates and documents
All timestamps are integer Unix seconds. Dates staynull when unavailable:
Never substitute
updated for an unknown filing date. The tax endpoints do not offer an updated_after filter; re-read the record when you need its current status or documents.
documents lists available attachments and can be empty even for a filed record:
Each document has
filename, content_type: "application/pdf", download_url, and expires_at. Download URLs expire after five minutes. Treat each URL as a temporary credential and keep it private. To obtain a fresh link, retrieve the tax again:
tax_income_ or tax_franchise_ IDs exactly as issued; their suffixes are opaque. Numeric database IDs are not accepted.
Handle errors
An invalid status filter returns this exchange. Rate-limit headers may also be present; see Usage limits.
taxes_not_ready.