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

# Profit and Loss

> Generate a Profit and Loss Statement



## OpenAPI

````yaml https://dev.tight.com/v3/api-docs post /v6/reports/profitAndLoss
openapi: 3.0.1
info:
  title: Tight API
  contact:
    name: Hurdlr, Inc. (dba Tight)
    url: https://www.tight.com
    email: api@tight.com
  version: 6.0.0
servers:
  - url: https://sandbox.tight.com
    description: Staging Environment
  - url: https://prod.tight.com
    description: Production Environment
security:
  - EmbedToken: []
paths:
  /v6/reports/profitAndLoss:
    post:
      tags:
        - Reports
      summary: Profit and Loss
      description: Generate a Profit and Loss Statement
      operationId: generateProfitAndLoss
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfitAndLossRequestDto'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/SuccessResponseReportDtoAccountingReportDtoProfitAndLossJson
              example:
                result: SUCCESS
                data:
                  json:
                    - name: 2025-07-01 to 2025-12-03
                      period:
                        beginDate: '2025-07-01'
                        endDate: '2025-12-03'
                      data:
                        - name: Engineering
                          netIncome: 1997089
                          income:
                            name: Income
                            total: 6438616
                            children:
                              - name: Services Income
                                accountId: gla_167242985
                                accountNo: '41000'
                                total: 6438616
                          cogs:
                            name: Cost of Services/Goods Sold
                            total: 8066
                            children:
                              - name: Merchandise COGS
                                accountId: gla_167242995
                                accountNo: '55020'
                                total: 8066
                          grossProfit: 6430550
                          profitMargin: 99.87
                          expenses:
                            name: Expenses
                            total: 4572517
                            children:
                              - name: >-
                                  Automobile Expenses (not deductible if taking
                                  Mileage Deduction)
                                accountId: gla_167242999
                                accountNo: '60020'
                                total: 36033
                              - name: Business Licenses, Permits and Generic Taxes
                                accountId: gla_167243002
                                accountNo: '60040'
                                total: 20380
                              - name: Commissions and Fees
                                accountId: gla_167243005
                                accountNo: '60060'
                                total: 146597
                              - name: >-
                                  Noncap. Computers, Mobile Devices, Servers and
                                  Related Hardware
                                accountId: gla_167243006
                                accountNo: '60070'
                                total: -4559
                              - name: Dues and Subscriptions
                                accountId: gla_167243011
                                accountNo: '60110'
                                total: 53938
                              - name: Insurance Expense
                                accountId: gla_167243013
                                accountNo: '60130'
                                total: 18380
                              - name: Interest Expense
                                accountId: gla_167243014
                                accountNo: '60140'
                                total: 2894
                              - name: Local Meals and Entertainment (50% Deductible)
                                accountId: gla_167243015
                                accountNo: '60150'
                                total: 1341829
                              - name: >-
                                  Local Meals and Entertainment (100%
                                  Deductible)
                                accountId: gla_167243016
                                accountNo: '60155'
                                total: 96701
                              - name: Office Supplies
                                accountId: gla_167243018
                                accountNo: '60170'
                                total: 22333
                              - name: Postage and Delivery
                                accountId: gla_167243027
                                accountNo: '60230'
                                total: 599
                              - name: Rent Expense (Property)
                                accountId: gla_167243031
                                accountNo: '60270'
                                total: 1875000
                              - name: Supplies
                                accountId: gla_167243034
                                accountNo: '60295'
                                total: 2746
                              - name: Travel Expenses (excl. Meals)
                                accountId: gla_167243036
                                accountNo: '60310'
                                total: 250114
                              - name: Utilities
                                accountId: gla_167243038
                                accountNo: '60330'
                                total: 149977
                              - name: Uncategorized Expenses
                                accountId: gla_167243043
                                accountNo: '65000'
                                total: 559555
                          netOperatingIncome: 1858033
                          operatingMargin: 28.86
                          otherIncome:
                            name: Other Income
                            total: 140000
                            children:
                              - name: Other/Miscellaneous Income
                                accountId: gla_167243048
                                accountNo: '74000'
                                total: 140000
                          otherExpenses:
                            name: Other Expenses
                            total: 944
                            children:
                              - name: Penalties, Interest and Settlements
                                accountId: gla_167243051
                                accountNo: '82000'
                                total: 944
                  meta:
                    title: Profit and Loss
                    generatedOn: '2025-12-03T10:30:00'
                    generatedBy: Joe LaForgia
                    footerLine: Generated on 12/03/2025 at 7:45:55 PM by Joseph LaForgia
                error: []
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                result: FAILURE
                error:
                  - type: REQUIRED
                    message: Amount is required
                    param: amount
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                result: FAILURE
                error:
                  - type: INVALID_TOKEN
                    message: Invalid access token
        '403':
          description: Not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                result: FAILURE
                error:
                  - type: FORBIDDEN
                    message: Expired access token
        '404':
          description: Endpoint not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                result: FAILURE
                error:
                  - type: BAD_REQUEST
                    message: Resource not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                result: FAILURE
                error:
                  - type: UNKNOWN_ERROR
                    message: Something went wrong. Please try again later.
      security:
        - EmbedToken: []
components:
  schemas:
    ProfitAndLossRequestDto:
      type: object
      properties:
        exportType:
          type: string
          description: Export format for the report
          enum:
            - JSON
            - CSV
        recipients:
          $ref: '#/components/schemas/Recipients'
        accountingMethod:
          type: string
          description: >-
            Accounting method to generate the report in. Defaults to the
            company's configured accounting method.
          enum:
            - ACCRUAL
            - CASH
        filter:
          $ref: '#/components/schemas/FullDateRangeFilters'
        grouping:
          $ref: '#/components/schemas/PeriodWithDimensionValueGrouping'
    SuccessResponseReportDtoAccountingReportDtoProfitAndLossJson:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed.
          enum:
            - SUCCESS
            - FAILURE
        data:
          $ref: '#/components/schemas/ReportDtoAccountingReportDtoProfitAndLossJson'
    ErrorResponse:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed.
          enum:
            - SUCCESS
            - FAILURE
        data:
          type: object
          description: The data generated by the action performed.
          nullable: true
        error:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
    Recipients:
      type: object
      properties:
        emails:
          type: array
          description: Primary email recipients
          items:
            type: string
            description: Primary email recipients
            format: email
      description: Email recipients for the report
    FullDateRangeFilters:
      type: object
      properties:
        beginDate:
          type: string
          description: Beginning date for the report
          format: date
          example: '2025-01-01'
        endDate:
          type: string
          description: Ending date for the report
          format: date
          example: '2025-12-31'
        dimensionValues:
          maxItems: 4
          type: array
          items:
            $ref: '#/components/schemas/DimensionValueFiltering'
        customerIds:
          type: array
          description: List of customer IDs to filter by
          items:
            type: string
            description: List of customer IDs to filter by
      description: Filters to apply to the report
    PeriodWithDimensionValueGrouping:
      type: object
      properties:
        period:
          type: string
          description: Date period to group the report by
          example: MONTHLY
          enum:
            - DAILY
            - MONTHLY
            - QUARTERLY
            - YEARLY
            - NONE
        dimensionId:
          type: string
          description: Dimension ID to group the report by
          example: tdim_439512
        dateGrouping:
          type: string
          enum:
            - DAILY
            - MONTHLY
            - QUARTERLY
            - YEARLY
            - NONE
      description: Grouping options for the report
    ReportDtoAccountingReportDtoProfitAndLossJson:
      type: object
      properties:
        json:
          type: array
          description: Report data in JSON format
          items:
            $ref: '#/components/schemas/AccountingReportDtoProfitAndLossJson'
        url:
          type: string
          description: URL to download the csv report
        meta:
          $ref: '#/components/schemas/ReportMeta'
      description: The data generated by the action performed.
    ErrorItem:
      type: object
      properties:
        type:
          type: string
          description: The type of the error. Safe for programmatic use.
          enum:
            - UNKNOWN_ERROR
            - INVALID_TOKEN
            - EXPIRED_TOKEN
            - FORBIDDEN
            - BAD_REQUEST
            - JSON_ERROR
            - DUPLICATE
            - REQUIRED
            - INVALID_VALUE
            - NOT_MODIFIABLE
            - INVALID_FORMAT
            - NOT_FOUND
        message:
          type: string
          description: >-
            A human-readable message providing more details about the error.
            Safe for displaying to a user.
        param:
          type: string
          description: >-
            If the error is parameter-specific, the parameter related to the
            error. This can be used to display a message near the correct form
            field.
      description: Errors associated with the action performed, if applicable.
    DimensionValueFiltering:
      type: object
      properties:
        dimensionId:
          type: string
          description: Dimension ID to filter by
          example: tdim_439512
        dimensionValueIds:
          type: array
          description: List of dimension value IDs under dimensionId to filter by
          items:
            type: string
            description: List of dimension value IDs under dimensionId to filter by
      description: List of dimensions and their dimension values to filter by
    AccountingReportDtoProfitAndLossJson:
      type: object
      properties:
        name:
          type: string
          description: Section name
          example: Jan 2025
        period:
          $ref: '#/components/schemas/Period'
        data:
          type: array
          description: Report data
          items:
            $ref: '#/components/schemas/ProfitAndLossJson'
      description: Report data in JSON format
    ReportMeta:
      type: object
      properties:
        title:
          type: string
          description: Report title
        generatedOn:
          type: string
          description: Date and time when the report was generated
          format: date-time
        generatedBy:
          type: string
          description: User who generated the report
          example: John Doe
        footerLine:
          type: string
          description: Footer line for the report
          example: Generated by Tight
      description: Metadata about the generated report
    Period:
      type: object
      properties:
        beginDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
      description: Period applicable for this section
    ProfitAndLossJson:
      type: object
      properties:
        name:
          type: string
          description: Section name
          example: Jan 2025
        groupingEntity:
          $ref: '#/components/schemas/GroupingEntity'
        netIncome:
          type: integer
          description: Net income for the period
        income:
          $ref: '#/components/schemas/ProfitAndLossSection'
        cogs:
          $ref: '#/components/schemas/ProfitAndLossSection'
        grossProfit:
          type: integer
          description: Gross profit
          nullable: true
        profitMargin:
          type: number
          description: Profit margin percentage
          nullable: true
          example: 99.87
        expenses:
          $ref: '#/components/schemas/ProfitAndLossSection'
        netOperatingIncome:
          type: integer
          description: Net operating income
          nullable: true
        operatingMargin:
          type: number
          description: Operating margin percentage
          nullable: true
          example: 28.86
        otherIncome:
          $ref: '#/components/schemas/ProfitAndLossSection'
        otherExpenses:
          $ref: '#/components/schemas/ProfitAndLossSection'
    GroupingEntity:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      description: Grouped entity for this section, if applicable
      nullable: true
    ProfitAndLossSection:
      type: object
      properties:
        name:
          type: string
          description: Section name
          example: Income
        total:
          type: integer
          description: Total amount for this section
        children:
          type: array
          description: Child line items
          items:
            $ref: '#/components/schemas/ProfitAndLossLineItem'
      description: Other expenses section
      nullable: true
    ProfitAndLossLineItem:
      type: object
      properties:
        name:
          type: string
          description: A user-friendly name of this line item
          example: Services Income
        accountId:
          type: string
          description: >-
            Id of the associated account, referencing an account in the Chart of
            Accounts
          nullable: true
        accountNo:
          type: string
          description: Number of the associated account
          example: '41000'
        total:
          type: integer
          description: Line item total amount
        children:
          type: array
          description: Child line items for this entry
          items:
            $ref: '#/components/schemas/ProfitAndLossLineItem'
      description: Child line items
  securitySchemes:
    EmbedToken:
      type: http
      description: >-
        Bearer authentication header of the form `Bearer <token>`, see
        [Authentication for more
        detail](/api-reference/authentication#partner-level-authentication).
      scheme: bearer

````