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

# Fetch bookkeeping reporting status

> Returns a rich bookkeeping status summary for a single business, including enrollment dates, periods waiting on the business, latest fully closed period, pending tasks, and last inbound SMS.

Returns a point-in-time bookkeeping status summary for analytics and support workflows, including enrollment, periods waiting on the business, latest closed period, pending tasks, and last inbound SMS.


## OpenAPI

````yaml get /v1/businesses/{businessId}/reports/bookkeeping/status
openapi: 3.0.1
info:
  title: API
  version: latest
servers: []
security:
  - BearerAuth: []
tags: []
externalDocs:
  url: /
paths:
  /v1/businesses/{businessId}/reports/bookkeeping/status:
    get:
      tags: []
      summary: Fetch bookkeeping reporting status
      description: >-
        Returns a rich bookkeeping status summary for a single business,
        including enrollment dates, periods waiting on the business, latest
        fully closed period, pending tasks, and last inbound SMS.
      operationId: business.reports.bookkeeping.status.get
      parameters:
        - name: businessId
          in: path
          description: The UUID of the business.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Bookkeeping reporting status summary.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ApiBookkeepingReportingSummary'
                required:
                  - data
        '404':
          description: Business or bookkeeping configuration not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      deprecated: false
components:
  schemas:
    ApiBookkeepingReportingSummary:
      type: object
      description: >-
        Enrollment, outstanding work, latest close, and latest inbound SMS for a
        single business.
      properties:
        type:
          type: string
          description: >-
            Resource type. Value will be
            `com.layerfi.routers.ApiBookkeepingReportingSummary`.
          example: com.layerfi.routers.ApiBookkeepingReportingSummary
        business_id:
          type: string
          format: uuid
          description: The business this summary describes.
        onboarding_date:
          type: string
          format: date
          nullable: true
          description: >-
            Date bookkeeping onboarding was marked complete. Null if still
            onboarding or not enrolled.
        first_bookkeeping_months:
          type: string
          format: date
          nullable: true
          description: >-
            First month Layer is responsible for (start of the books
            subscription / catch-up window).
        enrollment_status:
          $ref: '#/components/schemas/BookkeepingEnrollmentStatus'
        bookkeeping_end_date:
          type: string
          format: date
          nullable: true
          description: >-
            Last billable month when bookkeeping is paused. Null while actively
            enrolled.
        churned_at:
          type: string
          format: date
          nullable: true
          description: Date enrollment was paused or churned. Null if not paused.
        periods_awaiting_business_count:
          type: integer
          description: How many periods are currently blocked waiting on the business.
        latest_closed_period:
          allOf:
            - $ref: '#/components/schemas/ApiBookkeepingReportingClosedPeriod'
          nullable: true
          description: Most recent monthly period fully closed. Null if none.
        pending_business_tasks_count:
          type: integer
          description: Open tasks across the business that still need a response.
        last_message_received_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Timestamp of the most recent SMS received from this business. Null
            if none.
        as_of:
          type: string
          format: date-time
          description: Server timestamp when this snapshot was evaluated.
      required:
        - business_id
        - enrollment_status
        - periods_awaiting_business_count
        - pending_business_tasks_count
        - as_of
    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
    BookkeepingEnrollmentStatus:
      type: string
      enum:
        - NOT_PURCHASED
        - ONBOARDING
        - ACTIVE
        - BOOKKEEPING_PAUSED
      description: Bookkeeping enrollment status for a business.
      example: ACTIVE
    ApiBookkeepingReportingClosedPeriod:
      type: object
      properties:
        id:
          type: string
          format: uuid
        year:
          type: integer
        month:
          type: integer
          minimum: 1
          maximum: 12
      required:
        - id
        - year
        - month
    ApiErrorType:
      type: string
      enum:
        - ResourceArchived
        - AuthFailure
        - Plaid
        - Stripe
        - InvalidState
        - ResourceNotFound
        - InvalidParameters
        - JsonSerialization
        - Unknown
        - BadRequest
        - PaginationCursor
        - Conflict
        - LedgerOperationFailed
    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
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````