---
title: "calculate_fiduciary_tax"
method: POST
path: "/v1/tools/calculate_fiduciary_tax"
tags: ["tools"]
---

# calculate_fiduciary_tax

`POST /v1/tools/calculate_fiduciary_tax`

## Request

- Base URL: `https://opentax.invaro.ai`
- URL: `https://opentax.invaro.ai/v1/tools/calculate_fiduciary_tax`
- Auth: one of:
  - HTTP bearer
  - none

Compute US federal income tax for an ESTATE or TRUST (Form 1041): the § 1(e) compressed brackets and § 642(b) exemption. Input is taxable income before the exemption, after the §§ 651/661 distribution deduction. Retained capital gains refuse loudly (§ 1(h) trust breakpoints not modeled). Grantor trusts belong on the grantor's individual return via calculate_tax.

## Headers

- `X-OpenTax-Return-Id` string

## Request body

- object
  - `fiduciaryType` 'estate' | 'simple-trust' | 'complex-trust': Form 1041 filer type for the § 642(b) exemption: estate ($600), simple trust required to distribute all income currently ($300), or complex trust ($100). Grantor trusts do not file their own tax — use the grantor's individual return.
  - `fiduciaryIncomeBeforeExemption` union: The estate/trust's taxable income BEFORE the § 642(b) exemption but AFTER the §§ 651/661 income-distribution deduction (the DNI machinery is attested by this input). In dollars.
    - number
    - string
  - `fiduciaryLongTermGains` union: Net long-term capital gain retained by the estate/trust. Any positive amount REFUSES — the § 1(h) preferential breakpoints for estates and trusts are not modeled. In dollars.
    - number
    - string
  - `target` string: rule to derive (default: us.federal.fiduciary.income_tax).
  - `asOf` string: REQUIRED for computation: the law-in-force date — use the intended tax year's year-end (e.g. "2025-12-31" for TY2025). Omitting it is an error, never a default.
  - `includeProof` boolean: include the full proof artifact in the response as `proof` (PROOF-FORMAT v2: every applied rule, input, assumption and rounding, verifiable offline against corpusMerkleRoot; ~200 KB). Default false — the hashes alone are returned.

## Response `200`

ok:true with the computed value, line set or lookup hits; ok:false with error.code when the engine refuses (NEEDS_FACTS, NO_APPLICABLE_RULE, UNHANDLED_ENUM_CASE)

- object
  - `ok` boolean, required

## Other responses

- `400`: transport-level error
- `401`: transport-level error
- `429`: transport-level error

---

[API](https://skmtc.dev/invaro/apis/opentax-rest-api.md) · [All operations](https://skmtc.dev/invaro/apis/opentax-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/invaro/apis/opentax-rest-api/revisions/61fd3e3e6018?raw)
