---
title: "Get tax settings for a company"
method: GET
path: "/companies/{companyId}/tax-settings"
tags: ["Tax Settings"]
---

# Get tax settings for a company

`GET /companies/{companyId}/tax-settings`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/tax-settings`
- Auth: HTTP bearer

## Response `200`

Current tax settings (returns defaults if not yet set)

- TaxSettingsResponse
  - `success` boolean
  - `data` TaxInformation
    - `companyId` string, uuid
    - `ein` string, nullable
    - `accountingMethod` 'cash' | 'accrual' | 'tbd' | 'null', nullable
    - `state` string, nullable
    - `taxYearEndMonth` integer, nullable
    - `sources` object
      - `ein` 'onboarding' | 'settings' | 'default': Where the displayed value came from. 'onboarding' = what the customer entered during onboarding (companies table). 'settings' = an override in tax_settings. 'default' = neither source had a value and the field falls back to an app default (UI renders "TBD").
      - `accountingMethod` 'onboarding' | 'settings' | 'default': Where the displayed value came from. 'onboarding' = what the customer entered during onboarding (companies table). 'settings' = an override in tax_settings. 'default' = neither source had a value and the field falls back to an app default (UI renders "TBD").
      - `state` 'onboarding' | 'settings' | 'default': Where the displayed value came from. 'onboarding' = what the customer entered during onboarding (companies table). 'settings' = an override in tax_settings. 'default' = neither source had a value and the field falls back to an app default (UI renders "TBD").
      - `taxYearEndMonth` 'onboarding' | 'settings' | 'default': Where the displayed value came from. 'onboarding' = what the customer entered during onboarding (companies table). 'settings' = an override in tax_settings. 'default' = neither source had a value and the field falls back to an app default (UI renders "TBD").
    - `settings` TaxSettings
      - `id` string
      - `companyId` string, uuid
      - `federalTaxId` string, nullable
      - `stateTaxId` string, nullable
      - `filingFrequency` 'monthly' | 'quarterly' | 'annual' | 'null', nullable
      - `fiscalYearEnd` integer, nullable
      - `entityType` string, nullable
      - `accountingMethod` 'cash' | 'accrual' | 'tbd' | 'null', nullable: Override for the onboarding accounting-method answer. 'tbd' is rendered as "TBD" in the UI and maps from the onboarding 'unsure' choice; null means "fall back to companies.accounting_method".
      - `stateOfIncorporation` string, nullable: Override for the onboarding state-of-incorporation answer. null means "fall back to companies.state".
      - `notes` string, nullable
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `history` TaxSettingsHistoryEntry[]: Most recent change-history entries, newest first.
      - `id` string, uuid
      - `companyId` string, uuid
      - `ein` string, nullable
      - `accountingMethod` 'cash' | 'accrual' | 'tbd' | 'null', nullable
      - `stateOfIncorporation` string, nullable
      - `taxYearEndMonth` integer, nullable
      - `stateTaxId` string, nullable
      - `filingFrequency` 'monthly' | 'quarterly' | 'annual' | 'null', nullable
      - `entityType` string, nullable
      - `notes` string, nullable
      - `changedByUserId` string, uuid, nullable
      - `changeSource` 'onboarding' | 'settings_update' | 'accountant_edit' | 'migration'
      - `changeReason` string, nullable
      - `changedAt` string, date-time

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
