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

# compare_filing_statuses

`POST /v1/tools/compare_filing_statuses`

## Request

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

Compute the answer under every filing status for the same facts — e.g. to answer 'should we file jointly or separately?'. Statuses that need more facts report their error instead of guessing.

## Headers

- `X-OpenTax-Return-Id` string

## Request body

- object
  - `facts` object, required: facts for the computation: either flat corpus fact ids (see list_input_facts) or the same group objects calculate_tax accepts (filing, income, retirement, …), plus optional target and asOf. Business/fiduciary/dependent facts are accepted flat. Unknown keys are rejected by name — nothing is ever silently dropped.

## 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)
