> ## Documentation Index
> Fetch the complete documentation index at: https://docs.layerfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get tax details

> Returns detailed breakdown of tax calculations including adjusted gross income, deductions, and federal taxes.

<Info>
  To enable the Tax Estimates feature for your customers, request access from your Layer representative.
</Info>

Returns the full itemized breakdown of how a business's projected tax liability is calculated for the year. This is the most detailed of the Tax Estimates endpoints; use it when you need to show or reconcile the individual components behind the numbers surfaced by [Get tax summary](/api-reference/v1/tax-estimates/get-tax-summary) and [Get tax overview](/api-reference/v1/tax-estimates/get-tax-overview).

## Inputs to tax calculation

The calculation combines two sources:

1. The business's [tax profile](/api-reference/v1/tax-estimates/get-tax-profile): filing status, W-2 income, tip/overtime income, withholding, state, deductions configuration (home office, vehicle/mileage), and any user-estimated business revenue/expense overrides.
2. The business's year-to-date financials on the requested `reporting_basis`: business revenue and deductible expenses are pulled from the same P\&L data that powers the [P\&L report](/api-reference/v1/fetch-p\&l-report).

When `full_year_projection=true`, year-to-date income and expenses are projected forward to estimate a full-year figure before taxes are computed. The parameter defaults to `false`, so you must opt in to projection. For past years, the calculation always uses actual full-year data and `full_year_projection` has no effect.

All monetary fields in the response are in cents.

## Income and expense calculation

Business revenue and deductible expenses are not pulled from the P\&L directly. They are derived from the **Schedule C report**, which maps each categorized ledger account to a specific IRS Schedule C line. You can fetch that raw line-item report yourself with the [Schedule C report](/api-reference/v1/fetch-schedule-c-report) endpoint.

**Income (taxable business revenue)** comes from Schedule C Part I:

* Line 1 (Gross receipts) minus Line 2 (Returns and allowances), plus Line 6 (Other income).

**Deductible expenses** come from Schedule C Part II (operating expenses), Part III (cost of goods sold), Part V (other expenses), and Schedule A (charitable contributions). The vehicle expense (Line 9) is pulled out separately so the calculation can apply the mileage vs. actual-expense method from the [tax profile](/api-reference/v1/tax-estimates/get-tax-profile); see `vehicle_expense` in the deductions breakdown above.

**Categories excluded from the tax calculation** are those mapped to non-applicable Schedule C boxes:

* Equity accounts (owner's draw, capital contributions, personal expenses).
* Non-deductible items (accounts explicitly marked non-deductible).
* Capitalized assets (these belong on the balance sheet, not the P\&L).
* Clearing and liability accounts (temporary or non-business accounts).
* Uncategorized expenses awaiting review (see [Pending and uncategorized transactions](#pending-and-uncategorized-transactions) below).

One special rule: meals are reduced by 50% per IRS rules before being counted as a deductible expense.

### Pending and uncategorized transactions

Only **categorized** transactions appear in the Schedule C report and therefore in the tax calculation. Transactions that have not yet been categorized do not have ledger entries and are implicitly excluded from every income and expense figure in this response. There is no query parameter to include pending transactions in the calculation.

`total_income`, `total_deductions` and every downstream number can shift as the user categorizes more transactions. To surface the amounts that are currently missing from the calculation, use [Get tax checklist](/api-reference/v1/tax-estimates/get-tax-checklist), which returns the uncategorized deduction and deposit totals with counts.


## OpenAPI

````yaml get /v1/businesses/{businessId}/tax-estimates/details
openapi: 3.0.1
info:
  title: API
  version: latest
servers: []
security:
  - BearerAuth: []
tags: []
externalDocs:
  url: /
paths:
  /v1/businesses/{businessId}/tax-estimates/details:
    get:
      tags:
        - Tax Estimates
      summary: Get tax details
      description: >-
        Returns detailed breakdown of tax calculations including adjusted gross
        income, deductions, and federal taxes.
      operationId: business.tax-estimates.details.get
      parameters:
        - name: businessId
          in: path
          description: The UUID of the business.
          required: true
          schema:
            type: string
            format: uuid
        - name: year
          in: query
          description: 'The tax year (e.g., 2025). Supported years: 2024-2026.'
          required: true
          schema:
            type: integer
            format: int32
        - name: reporting_basis
          in: query
          description: >-
            The accounting basis for reporting. Defaults to the business's
            default reporting basis, or CASH if not set.
          required: false
          schema:
            type: string
            enum:
              - ACCRUAL
              - CASH
            default: CASH
        - name: full_year_projection
          in: query
          description: >-
            Whether to project income/expenses for the full year based on
            year-to-date data. Only applicable for the current year. Defaults to
            false.
          required: false
          schema:
            type: boolean
            default: false
        - name: Content-Type
          in: header
          description: Content-Type must be set to application/json.
          schema:
            type: string
      responses:
        '200':
          description: Detailed tax breakdown.
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ApiTaxDetails'
                required:
                  - data
        '404':
          description: Business not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      deprecated: false
components:
  schemas:
    ApiTaxDetails:
      type: object
      properties:
        type:
          type: string
          description: Resource type.
          example: Tax_Details
        year:
          type: integer
          format: int32
          description: The tax year for this details breakdown.
          example: 2025
        filing_status:
          type: string
          description: Tax filing status.
          example: SINGLE
        adjusted_gross_income:
          $ref: '#/components/schemas/ApiAdjustedGrossIncome'
        taxes:
          $ref: '#/components/schemas/ApiTaxes'
        quarterly_estimates:
          $ref: '#/components/schemas/ApiQuarterlyEstimates'
      description: >-
        Detailed breakdown of tax calculations including adjusted gross income,
        deductions, and federal taxes.
    ApiError:
      type: object
      description: An error object returned in API error responses.
      properties:
        type:
          $ref: '#/components/schemas/ApiErrorType'
          description: >-
            A fixed category for the error, helpful for categorizing and
            processing errors.
        description:
          type: string
          description: A human-readable error description.
        error_enum:
          $ref: '#/components/schemas/ApiEnumErrorType'
          description: >-
            A stable, machine-readable identifier for programmatically handling
            specific error conditions. Only present for 4xx client errors—not
            included for 5xx server errors. Use this instead of parsing the
            description field, as enum values remain stable across API versions.
          nullable: true
        meta:
          type: object
          description: Optional additional information about the error.
          nullable: true
      required:
        - type
        - description
    ApiAdjustedGrossIncome:
      type: object
      properties:
        income:
          $ref: '#/components/schemas/ApiIncome'
        deductions:
          $ref: '#/components/schemas/ApiDeductions'
        total_adjusted_gross_income:
          type: integer
          format: int64
          description: Total adjusted gross income, in cents.
      description: Adjusted gross income breakdown including income and deductions.
    ApiTaxes:
      type: object
      properties:
        us_federal:
          $ref: '#/components/schemas/ApiUsFederalTax'
          nullable: true
        us_state:
          $ref: '#/components/schemas/ApiUsStateTax'
          nullable: true
      description: Tax calculations breakdown including federal and state taxes.
    ApiQuarterlyEstimates:
      type: object
      properties:
        q1:
          $ref: '#/components/schemas/ApiQuarterEstimate'
        q2:
          $ref: '#/components/schemas/ApiQuarterEstimate'
        q3:
          $ref: '#/components/schemas/ApiQuarterEstimate'
        q4:
          $ref: '#/components/schemas/ApiQuarterEstimate'
      description: Quarterly tax estimates breakdown.
    ApiErrorType:
      type: string
      enum:
        - ResourceArchived
        - AuthFailure
        - Plaid
        - Stripe
        - InvalidState
        - ResourceNotFound
        - InvalidParameters
        - JsonSerialization
        - Unknown
        - BadRequest
        - PaginationCursor
        - Conflict
        - LedgerOperationFailed
      example: InvalidParameters
    ApiEnumErrorType:
      type: string
      description: >-
        Stable enum values for programmatic error handling. Only present in 4xx
        error responses.
      enum:
        - AccessCodeInvalid
        - BalanceSheetDoesNotBalance
        - BalanceSheetMissingAccount
        - BankStatementParserError
        - BillStateError
        - BulkCategorizeFailure
        - BulkMatchFailure
        - BusinessTaskAlreadyCompleted
        - BusinessTaskDeleted
        - CalendlyOAuthError
        - CallBookingError
        - CantUpdateTransactionInCustomerPayout
        - CantUpdateTransactionInVendorPayout
        - CheckPayrollConfigNotFound
        - CheckPayrollServiceNotFound
        - ClerkUserAlreadyExists
        - ConflictingQueryParams
        - CustomAccountAlreadyExists
        - CustomTransactionCsvParsingError
        - CustomTransactionUploadFailure
        - CustomerPayoutInputFormatError
        - DoesNotMatchExistingEntity
        - EmptyBatchRequest
        - ExpenseParserError
        - ExternalAccountBalanceReconciliationError
        - ExternalIdConflict
        - InvalidCategory
        - InvalidEffectiveDate
        - InvalidLedgerOperation
        - InvalidMonthlyAverageRange
        - InvalidMultiPartRequest
        - InvalidPaginationCursor
        - InvalidPayload
        - InvoiceDeleted
        - InvoiceNotFound
        - InvoiceReferenceMismatch
        - InvoiceStateError
        - ManualRateLimit
        - MultipleTagKeyFiltersUnsupported
        - NoCognitoUserFound
        - NoOpeningBalanceFound
        - NotYetReconciled
        - OnePasswordApiError
        - OnePasswordItemNotFound
        - OnePasswordVaultNotFound
        - OpenAICategorizationError
        - PaymentLinkInvalid
        - PayrollStateError
        - PeriodIsClosed
        - PeriodNotClosed
        - PhoneNumberAlreadyRegistered
        - PlaidApiError
        - PlaidConnectionBroken
        - PlaidCreateLinkTokenError
        - PlaidCredentialsNotConfigured
        - PlaidExchangePublicTokenError
        - PlaidGetInstitutionByIdError
        - PlaidGetItemError
        - PlaidInvalidEnvironment
        - PlaidItemAlreadyExists
        - PlaidItemNotFound
        - PlaidProcessorApiError
        - PlaidUnlinkItemError
        - QueryParamFormat
        - QueryParamMissing
        - QuickbooksBrokenConnection
        - QuickbooksConnectionAlreadyExists
        - QuickbooksConnectionAlreadySyncing
        - QuickbooksConnectionMissing
        - QuickbooksConnectionNotActivated
        - QuickbooksInvalidRequest
        - QuickbooksInvalidState
        - QuickbooksNoMatchingAccount
        - QuickbooksNonPostingAccountType
        - QuickbooksNotConfigured
        - QuickbooksOAuthCallbackInvalid
        - QuickbooksOAuthError
        - QuickbooksTokenExpired
        - ResourceArchived
        - ScheduleCNotConfigured
        - SmsNotEnabled
        - SpecifiedBadRequest
        - SpecifiedIdNotFound
        - SplitTransactionError
        - StepEvaluationBadRequest
        - StripeConnectAccountIdNotFound
        - StripeCredentialsNotConfigured
        - StripeGetBalanceForConnectAccountFailure
        - StripeRedirectOrRefreshUrlNotConfigured
        - TagFilterNotFound
        - UnexpectedQueryParam
        - UnitAccountsInUse
        - WrongAnswerType
      example: InvalidPayload
    ApiIncome:
      type: object
      properties:
        w2_income:
          type: integer
          format: int64
          description: W-2 wage income, in cents.
        w2_withholding:
          type: integer
          format: int64
          description: W-2 tax withholding, in cents.
        business_revenue:
          type: integer
          format: int64
          description: Business revenue from Schedule C, in cents.
        total:
          type: integer
          format: int64
          description: Total income, in cents.
      description: Income breakdown.
    ApiDeductions:
      type: object
      properties:
        business_expenses:
          type: integer
          format: int64
          description: Total business expenses, in cents.
        vehicle_expense:
          $ref: '#/components/schemas/ApiVehicleExpense'
        home_office:
          $ref: '#/components/schemas/ApiHomeOffice'
        qualified_tip_deduction:
          type: integer
          format: int64
          description: Qualified tip income deduction, in cents.
        qualified_overtime_deduction:
          type: integer
          format: int64
          description: Qualified overtime income deduction, in cents.
        self_employment_tax_deduction:
          type: integer
          format: int64
          description: Deductible portion of self-employment tax, in cents.
        total:
          type: integer
          format: int64
          description: Total deductions, in cents.
      description: Deductions breakdown.
    ApiUsFederalTax:
      type: object
      properties:
        federal_income_tax:
          $ref: '#/components/schemas/ApiFederalIncomeTax'
        social_security_tax:
          $ref: '#/components/schemas/ApiSocialSecurityTax'
        medicare_tax:
          $ref: '#/components/schemas/ApiMedicareTax'
        medicare_surtax:
          $ref: '#/components/schemas/ApiMedicareSurtax'
        total_federal_tax:
          $ref: '#/components/schemas/ApiTotalFederalTax'
      description: US Federal tax breakdown.
    ApiUsStateTax:
      type: object
      properties:
        state_code:
          type: string
          description: Two-letter state code.
          example: CA
        state_name:
          type: string
          description: Full state name.
          example: California
        filing_status:
          type: string
          description: State tax filing status.
          example: SINGLE
        state_income_tax:
          $ref: '#/components/schemas/ApiStateIncomeTax'
        additional_taxes:
          type: array
          items:
            $ref: '#/components/schemas/ApiStateAdditionalTax'
          description: Additional state-specific taxes (e.g., SDI, mental health tax).
        total_state_tax:
          $ref: '#/components/schemas/ApiTotalStateTax'
      description: US State tax breakdown.
    ApiQuarterEstimate:
      type: object
      properties:
        us_federal:
          $ref: '#/components/schemas/ApiQuarterFederalTax'
          nullable: true
        us_state:
          $ref: '#/components/schemas/ApiQuarterStateTax'
          nullable: true
      description: Tax estimate for a single quarter including federal and state taxes.
    ApiVehicleExpense:
      type: object
      properties:
        method:
          type: string
          description: Vehicle expense calculation method.
          example: MILEAGE
        amount:
          type: integer
          format: int64
          description: Vehicle expense deduction amount, in cents.
      description: Vehicle expense deduction details.
    ApiHomeOffice:
      type: object
      properties:
        method:
          type: string
          description: Home office deduction calculation method.
          example: SIMPLIFIED
        amount:
          type: integer
          format: int64
          description: Home office deduction amount, in cents.
      description: Home office deduction details.
    ApiFederalIncomeTax:
      type: object
      properties:
        federal_deductions:
          type: integer
          format: int64
          description: Federal deductions (standard deduction), in cents.
        qualified_business_income_deduction:
          type: integer
          format: int64
          description: Qualified Business Income (QBI) deduction, in cents.
        qbi_effective_rate:
          type: string
          description: Effective QBI deduction rate after phase-out.
          example: '0.20'
        taxable_income:
          type: integer
          format: int64
          description: Taxable income after deductions, in cents.
        effective_federal_tax_rate:
          type: string
          description: Effective federal income tax rate.
          example: '0.22'
        federal_income_tax_owed:
          type: integer
          format: int64
          description: Federal income tax owed, in cents.
      description: Federal income tax calculation details.
    ApiSocialSecurityTax:
      type: object
      properties:
        social_security_income:
          type: integer
          format: int64
          description: Income subject to Social Security tax, in cents.
        social_security_tax_rate:
          type: string
          description: Social Security tax rate.
          example: '0.124'
        social_security_tax_owed:
          type: integer
          format: int64
          description: Social Security tax owed, in cents.
      description: Social Security tax calculation details.
    ApiMedicareTax:
      type: object
      properties:
        medicare_income:
          type: integer
          format: int64
          description: Income subject to Medicare tax, in cents.
        medicare_tax_rate:
          type: string
          description: Medicare tax rate.
          example: '0.029'
        medicare_tax_owed:
          type: integer
          format: int64
          description: Medicare tax owed, in cents.
      description: Medicare tax calculation details.
    ApiMedicareSurtax:
      type: object
      properties:
        medicare_surtax_income:
          type: integer
          format: int64
          description: Income subject to Medicare surtax (above threshold), in cents.
        medicare_surtax_rate:
          type: string
          description: Medicare surtax rate (0.9% for high earners).
          example: '0.009'
        medicare_surtax_owed:
          type: integer
          format: int64
          description: Medicare surtax owed, in cents.
      description: Medicare surtax calculation details for high earners.
    ApiTotalFederalTax:
      type: object
      properties:
        federal_income_tax_owed:
          type: integer
          format: int64
          description: Federal income tax owed, in cents.
        social_security_tax_owed:
          type: integer
          format: int64
          description: Social Security tax owed, in cents.
        medicare_tax_owed:
          type: integer
          format: int64
          description: Medicare tax owed, in cents.
        medicare_surtax_owed:
          type: integer
          format: int64
          description: Medicare surtax owed, in cents.
        w2_withholdings:
          type: integer
          format: int64
          description: W-2 tax withholdings already paid, in cents.
        total_federal_tax_owed:
          type: integer
          format: int64
          description: >-
            Total federal tax owed after withholdings, in cents. Can be negative
            if refund is due.
      description: Total federal tax summary.
    ApiStateIncomeTax:
      type: object
      properties:
        state_agi:
          type: integer
          format: int64
          description: State adjusted gross income, in cents.
        state_deductions:
          type: integer
          format: int64
          description: State deductions (standard or itemized), in cents.
        state_taxable_income:
          type: integer
          format: int64
          description: State taxable income after deductions, in cents.
        effective_state_tax_rate:
          type: string
          description: Effective state income tax rate.
          example: '0.093'
        state_income_tax_owed:
          type: integer
          format: int64
          description: State income tax owed, in cents.
      description: State income tax calculation details.
    ApiStateAdditionalTax:
      type: object
      properties:
        tax_name:
          type: string
          description: Name of the additional tax.
          example: CA SDI
        tax_rate:
          type: string
          description: Tax rate for this additional tax.
          example: '0.011'
        taxable_amount:
          type: integer
          format: int64
          description: Amount subject to this tax, in cents.
        tax_owed:
          type: integer
          format: int64
          description: Amount of this additional tax owed, in cents.
      description: Additional state-specific tax details.
    ApiTotalStateTax:
      type: object
      properties:
        state_income_tax_owed:
          type: integer
          format: int64
          description: State income tax owed, in cents.
        additional_taxes_owed:
          type: integer
          format: int64
          description: Total additional state taxes owed, in cents.
        state_withholdings:
          type: integer
          format: int64
          description: State tax withholdings already paid, in cents.
        total_state_tax_owed:
          type: integer
          format: int64
          description: >-
            Total state tax owed after withholdings, in cents. Can be negative
            if refund is due.
      description: Total state tax summary.
    ApiQuarterFederalTax:
      type: object
      properties:
        due_date:
          type: string
          format: date
          description: Due date for this quarter's payment.
          example: '2025-04-15'
        owed:
          type: integer
          format: int64
          description: Amount owed for this quarter, in cents.
        paid:
          type: integer
          format: int64
          description: Amount already paid for this quarter, in cents.
        balance:
          type: integer
          format: int64
          description: Remaining balance for this quarter (owed - paid), in cents.
      description: Federal tax details for a single quarter.
    ApiQuarterStateTax:
      type: object
      properties:
        state_code:
          type: string
          description: Two-letter state code.
          example: CA
        due_date:
          type: string
          format: date
          description: Due date for this quarter's state payment.
          example: '2025-04-15'
        owed:
          type: integer
          format: int64
          description: State tax amount owed for this quarter, in cents.
        paid:
          type: integer
          format: int64
          description: State tax amount already paid for this quarter, in cents.
        balance:
          type: integer
          format: int64
          description: >-
            Remaining state tax balance for this quarter (owed - paid), in
            cents.
      description: State tax details for a single quarter.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````