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

> Returns actionable items that need user attention for tax preparation.

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

Returns actionable items that need the business owner's attention before their tax estimate can be considered complete. Use this to surface a "to-do" list in your UI.

## Checklist item types

Each item has a `type` that indicates what needs attention:

* `UNCATEGORIZED_DEDUCTIONS`: deductible transactions that have not yet been categorized. `amount` is the uncategorized total in cents; `count` is the number of transactions. These reduce the accuracy of the deduction total in [Get tax details](/api-reference/v1/tax-estimates/get-tax-details) until categorized.
* `UNCATEGORIZED_DEPOSITS`: income transactions that have not yet been categorized. These reduce the accuracy of the income total in the calculation.
* `MISSING_PROFILE`: the business has not yet saved a [tax profile](/api-reference/v1/tax-estimates/get-tax-profile), so the calculation is running with default assumptions (e.g. `SINGLE` filing status, no W-2 income, no state).

Each item includes a human-readable `description` and an optional `action_url` deep link that your UI can open to help the user resolve it. Resolving checklist items improves the accuracy of [Get tax summary](/api-reference/v1/tax-estimates/get-tax-summary), [Get tax overview](/api-reference/v1/tax-estimates/get-tax-overview), and [Get tax details](/api-reference/v1/tax-estimates/get-tax-details).


## OpenAPI

````yaml get /v1/businesses/{businessId}/tax-estimates/checklist
openapi: 3.0.1
info:
  title: API
  version: latest
servers: []
security:
  - BearerAuth: []
tags: []
externalDocs:
  url: /
paths:
  /v1/businesses/{businessId}/tax-estimates/checklist:
    get:
      tags:
        - Tax Estimates
      summary: Get tax checklist
      description: Returns actionable items that need user attention for tax preparation.
      operationId: business.tax-estimates.checklist.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).
          required: true
          schema:
            type: integer
            format: int32
        - name: Content-Type
          in: header
          description: Content-Type must be set to application/json.
          schema:
            type: string
      responses:
        '200':
          description: Tax checklist for the specified year.
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ApiTaxChecklist'
                required:
                  - data
        '404':
          description: Business not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      deprecated: false
components:
  schemas:
    ApiTaxChecklist:
      type: object
      properties:
        type:
          type: string
          description: Resource type.
          example: Tax_Checklist
        year:
          type: integer
          format: int32
          description: The tax year for this checklist.
          example: 2025
        items:
          type: array
          items:
            $ref: '#/components/schemas/TaxChecklistItem'
          description: List of actionable items requiring attention.
      description: Actionable items that need user attention for tax preparation.
    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
    TaxChecklistItem:
      type: object
      properties:
        type:
          type: string
          enum:
            - UNCATEGORIZED_DEDUCTIONS
            - UNCATEGORIZED_DEPOSITS
            - MISSING_PROFILE
          description: The type of checklist item.
          example: UNCATEGORIZED_DEDUCTIONS
        description:
          type: string
          description: Human-readable description of the item.
        amount:
          type: integer
          format: int64
          nullable: true
          description: Associated amount in cents, if applicable.
        count:
          type: integer
          format: int32
          nullable: true
          description: Number of items, if applicable.
        action_url:
          type: string
          nullable: true
          description: Deep link URL to resolve this item.
      description: A single actionable item in the tax checklist.
    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
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````