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

# Save transactions

> Save a new (or update an existing) set of transactions



## OpenAPI

````yaml https://dev.tight.com/v3/api-docs post /v6/banks/transactions
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/banks/transactions:
    post:
      tags:
        - Bank Transactions
      summary: Save transactions
      description: Save a new (or update an existing) set of transactions
      operationId: postBankTransactions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiParamBankTransactionPostDto'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResponseListMultiResponseBankTransactionGetDto
        '207':
          description: >-
            Some bank transactions failed to save. See response body for error
            details.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResponseListMultiResponseBankTransactionGetDto
        '400':
          description: All bank transactions failed to save.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ResponseListMultiResponseBankTransactionGetDto
        '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:
    MultiParamBankTransactionPostDto:
      required:
        - data
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BankTransactionPostDto'
    ResponseListMultiResponseBankTransactionGetDto:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed.
          enum:
            - SUCCESS
            - FAILURE
        data:
          type: array
          description: The data generated by the action performed.
          items:
            $ref: '#/components/schemas/MultiResponseBankTransactionGetDto'
        error:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
    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'
    BankTransactionPostDto:
      required:
        - amount
        - apiName
        - bankAccountId
        - date
        - description
      type: object
      properties:
        id:
          type: string
          description: >-
            Id of the bank transaction, required when updating an existing bank
            transaction
        date:
          type: string
          description: Date of the bank transaction
          format: date
          nullable: false
          example: '2025-02-24'
        amount:
          type: integer
          description: >-
            Total amount of the bank transaction (in cents or lowest fractional
            unit)
          format: int32
          nullable: false
          example: 5001
        originalCurrency:
          type: string
          description: Currency code in which the transaction amount is being ingested
          nullable: false
          example: USD
          enum:
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - UYI
            - UYU
            - UYW
            - UZS
            - VED
            - VES
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XTS
            - XUA
            - XXX
            - YER
            - ZAR
            - ZMW
            - ZWL
        description:
          type: string
          description: >-
            Transaction description, similar to what will show on the user's
            bank statement
          nullable: false
        notes:
          type: string
          description: Notes for the bank transactions
          nullable: true
          example: Gas purchase
        status:
          type: string
          description: Status of the bank transaction
          nullable: false
          enum:
            - ACTIVE
            - INACTIVE
            - REMOVED
        reviewStatus:
          type: string
          description: Review status of the bank transaction
          nullable: false
          enum:
            - RECONCILIATION_DISCREPANCY
            - USER_REVIEW_REQUIRED
            - ACCOUNTANT_REVIEW_REQUIRED
            - PARTNER_REVIEW_REQUIRED
            - AWAITING_MATCH
            - STAGED
            - RECONCILED
        userAccess:
          type: string
          description: >-
            Access level for the user. This field uses the default configuration
            for the Partner; however, it can be overridden to manipulate how a
            user can interact with this 
          nullable: false
          enum:
            - NONE
            - READ_ONLY
            - READ_WRITE
        accountantAccess:
          type: string
          description: >-
            Access level for the accountant. This field uses the default
            configuration for the Partner; however, it can be overridden to
            manipulate how an accountant can interact with this 
          nullable: false
          enum:
            - NONE
            - READ_ONLY
            - READ_WRITE
        apiName:
          type: string
          description: Name of the API from which this transaction originated
          nullable: false
          example: PLAID
          enum:
            - PLAID
            - UNIT
            - STRIPE
            - SHOPIFY
            - SQUARE
            - RUTTER
            - UBER
            - MOOV
            - QUALPAY
            - MANUAL_ENTRY
            - CSV_IMPORT
            - PARTNER_IMPLEMENTATION
            - QBO
            - XERO
            - BENCH
            - WAVE
        apiSourceId:
          type: string
          description: Id of the bank transaction on associated API
          nullable: true
        bankAccountId:
          type: string
          description: Id of the bank account associated with this bank transaction
          nullable: false
        matchingBankTransactionId:
          type: string
          description: Id of the matching bank transaction
          nullable: true
        vendorId:
          type: string
          description: Id of the vendor associated with this bank transaction
          nullable: true
        customerId:
          type: string
          description: Id of the customer assigned to this bank transaction
          nullable: true
        dimensionValueIds:
          type: array
          nullable: true
          items:
            type: string
        categoryId:
          type: string
          description: Id of the category assigned to this bank transaction
          nullable: false
        glAccountId:
          type: string
          description: GL account id, referencing an account in the chart of accounts
          nullable: false
        tax:
          $ref: '#/components/schemas/TaxData'
        children:
          type: array
          nullable: true
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  Id of the bank transaction, required when updating an existing
                  bank transaction
              amount:
                type: integer
                description: Total amount of the bank transaction (in cents)
                format: int32
                nullable: false
                example: 5001
              notes:
                type: string
                description: Notes for the bank transaction
                nullable: true
                example: Gas purchase
              dimensionValueIds:
                type: array
                nullable: true
                items:
                  type: string
              customerId:
                type: string
                description: Id of the customer assigned to this bank transaction
                nullable: true
              categoryId:
                type: string
                description: Id of the category associated with this bank transaction
                nullable: false
              glAccountId:
                type: string
                description: GL account id, referencing an account in the chart of accounts
                nullable: false
              invoiceId:
                type: string
                description: Id of the invoice that this bank transaction paid for
                nullable: true
              billId:
                type: string
                description: Id of the bill that this bank transaction paid for
                nullable: true
              payrollId:
                type: string
                description: Id of the payroll that this bank transaction paid for
                nullable: true
              apiItemId:
                type: string
                description: Id of the bank transaction item on associated API
                nullable: true
        attachmentIds:
          type: array
          nullable: true
          items:
            type: string
        customData:
          $ref: '#/components/schemas/JsonNode'
    MultiResponseBankTransactionGetDto:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed.
          enum:
            - SUCCESS
            - FAILURE
        statusCode:
          $ref: '#/components/schemas/HttpStatus'
        data:
          $ref: '#/components/schemas/BankTransactionGetDto'
        error:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
      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.
    TaxData:
      type: object
      properties:
        paymentInfo:
          $ref: '#/components/schemas/TaxPaymentFields'
      description: Tax data associated with this transaction
    JsonNode:
      type: object
      properties:
        empty:
          type: boolean
        array:
          type: boolean
        'null':
          type: boolean
        object:
          type: boolean
        float:
          type: boolean
        string:
          type: boolean
        number:
          type: boolean
        missingNode:
          type: boolean
        valueNode:
          type: boolean
        nodeType:
          type: string
          enum:
            - ARRAY
            - BINARY
            - BOOLEAN
            - MISSING
            - 'NULL'
            - NUMBER
            - OBJECT
            - POJO
            - STRING
        pojo:
          type: boolean
        integralNumber:
          type: boolean
        floatingPointNumber:
          type: boolean
        short:
          type: boolean
        int:
          type: boolean
        long:
          type: boolean
        double:
          type: boolean
        bigDecimal:
          type: boolean
        bigInteger:
          type: boolean
        textual:
          type: boolean
          deprecated: true
        boolean:
          type: boolean
        binary:
          type: boolean
        container:
          type: boolean
        embeddedValue:
          type: boolean
      description: >-
        Custom JSON in which you can store any data with max length of 2000
        characters
      nullable: true
      example:
        internal_key: some_internal_key
        some_other_field: 23434
    HttpStatus:
      type: integer
      description: The HTTP status code for the action performed.
      format: int32
      enum:
        - 200
        - 400
        - 401
        - 403
        - 404
        - 500
    BankTransactionGetDto:
      required:
        - amount
        - apiName
        - apiSourceId
        - attachments
        - bankAccount
        - category
        - children
        - company
        - conversation
        - currencyInfo
        - customer
        - date
        - description
        - dimensionValues
        - displayName
        - glAccount
        - iconUrl
        - id
        - lastUpdatedDateTime
        - notes
        - reconciliationMatch
        - reviewStatus
        - status
        - suggestedCategories
        - tax
        - type
        - vendor
      type: object
      properties:
        id:
          type: string
          description: >-
            Id of the bank transaction, required when updating an existing bank
            transaction
          example: btxn_158998869
        type:
          type: string
          description: Type of the bank transaction
          enum:
            - EXPENSE
            - REVENUE
            - TRANSFER_IN
            - TRANSFER_OUT
        date:
          type: string
          description: Date of the bank transaction
          format: date
          example: '2025-06-26'
        amount:
          type: integer
          description: Total amount of the bank transaction (in cents)
          format: int32
          example: -273479
        currencyInfo:
          $ref: '#/components/schemas/CurrencyInfo'
        displayName:
          type: string
          description: >-
            Transaction display name, useful for displaying this transaction to
            a user
          example: Gusto
        description:
          type: string
          description: >-
            Transaction description, similar to what will show on the user's
            bank statement
          example: 'WITHDRAWAL ACH GUSTO TAXID: 4001'
        notes:
          type: string
          description: Notes for the bank transactions
          nullable: true
          example: June Payroll
        status:
          type: string
          description: Status of the bank transaction
          example: ACTIVE
          enum:
            - ACTIVE
            - INACTIVE
            - REMOVED
        reviewStatus:
          type: string
          description: Review status of the bank transaction
          example: RECONCILED
          enum:
            - RECONCILIATION_DISCREPANCY
            - USER_REVIEW_REQUIRED
            - ACCOUNTANT_REVIEW_REQUIRED
            - PARTNER_REVIEW_REQUIRED
            - AWAITING_MATCH
            - STAGED
            - RECONCILED
        apiName:
          type: string
          description: Name of the API from which this transaction originated
          example: PLAID
          enum:
            - PLAID
            - UNIT
            - STRIPE
            - SHOPIFY
            - SQUARE
            - RUTTER
            - UBER
            - MOOV
            - QUALPAY
            - MANUAL_ENTRY
            - CSV_IMPORT
            - PARTNER_IMPLEMENTATION
            - QBO
            - XERO
            - BENCH
            - WAVE
        iconUrl:
          type: string
          description: Icon URL for the bank transaction
          example: https://cdn.sandbox.tight.com/icons/defaults/default-vendor.png
        apiSourceId:
          type: string
          description: Id of the bank transaction on associated API
          nullable: true
          example: QeXqN7XJT50dwE4S19ZgVv4nnhLvjX7
        bankAccount:
          $ref: '#/components/schemas/BankAccountExpanded'
        dimensionValues:
          maxItems: 4
          type: array
          items:
            $ref: '#/components/schemas/DimensionValueExpanded'
        customer:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CustomerExpanded'
        vendor:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/VendorExpanded'
        category:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CategoryExpanded'
        suggestedCategories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryExpanded'
        glAccount:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/GlAccountExpanded'
        reconciliationMatch:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/MatchingBankTransactionExpanded'
        conversation:
          $ref: '#/components/schemas/ConversationExpanded'
        company:
          $ref: '#/components/schemas/CompanyExpanded'
        attachments:
          maxItems: 3
          type: array
          items:
            $ref: '#/components/schemas/BankTransactionAttachmentExpanded'
        tax:
          $ref: '#/components/schemas/TaxData'
        children:
          type: array
          items:
            $ref: '#/components/schemas/BankTransactionChildGetDto'
        lastUpdatedDateTime:
          type: string
          description: Timestamp of when the bank transaction was last updated
          format: date-time
        customData:
          $ref: '#/components/schemas/JsonNode'
      description: The data generated by the action performed.
      example:
        id: btxn_158998869
        type: EXPENSE
        date: '2025-06-26'
        amount: -273479
        currencyInfo:
          originalCurrency: USD
          originalAmount: -273479
        displayName: Gusto
        description: 'WITHDRAWAL ACH GUSTO TAXID: 4001'
        notes: June Payroll
        status: ACTIVE
        reviewStatus: RECONCILED
        apiName: GUSTO
        iconUrl: https://cdn.sandbox.tight.com/icons/integrations/gusto.png
        apiSourceId: QeXqN7XJT50dwE4S19ZgVv4nnhLvjX7
        bankAccount:
          id: bka_7542850
          name: Business Checking
          displayName: Business Checking *1687
        dimensionValues:
          - id: dv_593051
            dimension:
              id: dim_4521
              name: Region
              requiredness: REQUIRED
            name: Mid Atlantic
            child:
              id: dv_593054
              dimension:
                id: dim_4522
                name: Location
                requiredness: NOT_REQUIRED
              name: Washington DC
          - id: dv_594913
            dimension:
              id: dim_4523
              name: Job Code
              requiredness: NOT_REQUIRED
            name: 7050 – Interior Finishes
        customer:
          id: cus_4852707
          name: Abigail Adams
          email: abigail@tight.com
        vendor:
          id: vnd_28868401
          name: Gusto
        category:
          id: ctg_58932890
          name: Wages
          iconUrl: https://cdn.sandbox.tight.com/icons/expenseCategories/payroll.svg
        suggestedCategories:
          - id: ctg_58932891
          - id: ctg_58932892
        glAccount:
          id: gla_38560327
          name: Officer(s) Salaries and Wages
          accountNo: '60210'
          type: EXPENSE
          iconUrl: https://cdn.sandbox.tight.com/icons/glAccountTypes/expense.png
          displayName: '#60210 Officer(s) Salaries and Wages'
        invoiceItem:
          id: <string>
          description: <string>
        reconciliationMatch:
          id: <string>
          amount: 123
          date: '2025-06-28'
          description: <string>
          apiName: UNIT
          apiInstitutionId: <string>
          bankAccount:
            id: bka_7542850
            name: Business Checking
            displayName: Business Checking *1234
        matchingBankTransaction:
          id: <string>
          amount: 123
          date: '2025-06-28'
          description: <string>
          apiName: UNIT
          apiInstitutionId: <string>
          bankAccount:
            id: bka_7542850
            name: Business Checking
            displayName: Business Checking *1234
        conversation:
          id: <string>
          readStatus: UNREAD
        company:
          id: co_123456
          name: ACME Corp
        attachments:
          - id: att_894321
            url: https://files.example.com/attachment/receipt1.pdf
            fileName: receipt1.pdf
            fileSize: 24.5 KB
            createdDateTime: '2026-07-23T18:25:15.336863379'
            iconUrl: https://cdn.sandbox.tight.com/icons/attachments/pdf.svg
          - id: att_894322
            url: https://files.example.com/attachment/receipt2.pdf
            fileName: receipt2.pdf
            fileSize: 156.2 KB
            createdDateTime: '2026-07-22T18:25:15.336918002'
            iconUrl: https://cdn.sandbox.tight.com/icons/attachments/pdf.svg
        tax: {}
        children: []
        customData:
          empty: false
          object: true
          nodeType: OBJECT
          array: false
          'null': false
          embeddedValue: false
          missingNode: false
          valueNode: false
          container: true
          float: false
          string: false
          number: false
          pojo: false
          integralNumber: false
          floatingPointNumber: false
          short: false
          int: false
          long: false
          double: false
          bigDecimal: false
          bigInteger: false
          textual: false
          boolean: false
          binary: false
    TaxPaymentFields:
      type: object
      properties:
        region:
          type: string
          description: Tax region of bank transaction
          enum:
            - FEDERAL
            - STATE
            - SALES
        year:
          type: integer
          description: Year for which tax payment was made
          format: int32
        quarter:
          type: string
          description: Quarter for which tax payment was made
          enum:
            - Q1
            - Q2
            - Q3
            - Q4
      description: Payment information; only applicable for tax payment transactions
      nullable: true
    CurrencyInfo:
      type: object
      properties:
        originalCurrency:
          type: string
          description: Original currency in which the transaction was ingested
          enum:
            - AED
            - AFN
            - ALL
            - AMD
            - ANG
            - AOA
            - ARS
            - AUD
            - AWG
            - AZN
            - BAM
            - BBD
            - BDT
            - BGN
            - BHD
            - BIF
            - BMD
            - BND
            - BOB
            - BOV
            - BRL
            - BSD
            - BTN
            - BWP
            - BYN
            - BZD
            - CAD
            - CDF
            - CHE
            - CHF
            - CHW
            - CLF
            - CLP
            - CNY
            - COP
            - COU
            - CRC
            - CUC
            - CUP
            - CVE
            - CZK
            - DJF
            - DKK
            - DOP
            - DZD
            - EGP
            - ERN
            - ETB
            - EUR
            - FJD
            - FKP
            - GBP
            - GEL
            - GHS
            - GIP
            - GMD
            - GNF
            - GTQ
            - GYD
            - HKD
            - HNL
            - HRK
            - HTG
            - HUF
            - IDR
            - ILS
            - INR
            - IQD
            - IRR
            - ISK
            - JMD
            - JOD
            - JPY
            - KES
            - KGS
            - KHR
            - KMF
            - KPW
            - KRW
            - KWD
            - KYD
            - KZT
            - LAK
            - LBP
            - LKR
            - LRD
            - LSL
            - LYD
            - MAD
            - MDL
            - MGA
            - MKD
            - MMK
            - MNT
            - MOP
            - MRU
            - MUR
            - MVR
            - MWK
            - MXN
            - MXV
            - MYR
            - MZN
            - NAD
            - NGN
            - NIO
            - NOK
            - NPR
            - NZD
            - OMR
            - PAB
            - PEN
            - PGK
            - PHP
            - PKR
            - PLN
            - PYG
            - QAR
            - RON
            - RSD
            - RUB
            - RWF
            - SAR
            - SBD
            - SCR
            - SDG
            - SEK
            - SGD
            - SHP
            - SLL
            - SOS
            - SRD
            - SSP
            - STN
            - SVC
            - SYP
            - SZL
            - THB
            - TJS
            - TMT
            - TND
            - TOP
            - TRY
            - TTD
            - TWD
            - TZS
            - UAH
            - UGX
            - USD
            - USN
            - UYI
            - UYU
            - UYW
            - UZS
            - VED
            - VES
            - VND
            - VUV
            - WST
            - XAF
            - XAG
            - XAU
            - XBA
            - XBB
            - XBC
            - XBD
            - XCD
            - XDR
            - XOF
            - XPD
            - XPF
            - XPT
            - XSU
            - XTS
            - XUA
            - XXX
            - YER
            - ZAR
            - ZMW
            - ZWL
        originalAmount:
          type: integer
          description: Amount in the original currency which the transaction was ingested
          format: int32
        exchangeDate:
          type: string
          description: >-
            Date on which the transaction amount was converted, if ingested in a
            different currency
          format: date
      description: Currency conversion info for the bank transaction
    BankAccountExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the bank account
          example: bka_7542850
        name:
          type: string
          description: Name of the bank account
          example: Business Checking
        displayName:
          type: string
          description: Display Name of the bank account
          example: Business Checking *1687
      description: Bank account of the matching bank transaction
    DimensionValueExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the dimension value
          example: dv_593051
        dimension:
          $ref: '#/components/schemas/DimensionExpanded'
        name:
          type: string
          description: Name of the dimension value
          example: Mid-Atlantic
        child:
          $ref: '#/components/schemas/ChildDimensionValue'
      description: List of dimension values associated with this time entry
    CustomerExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the customer
          example: cus_4852707
        name:
          type: string
          description: Name of the customer
          example: Abigail Adams
        email:
          type: string
          description: Email of the customer
          example: abigail@tight.com
      description: Customer associated with this time entry
      nullable: true
    VendorExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the vendor
          example: vnd_28868401
        name:
          type: string
          description: Name of the vendor
          example: Gusto
      description: Vendor associated with this child payment
      nullable: true
    CategoryExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the category
          example: ctg_58932890
        name:
          type: string
          description: Name of the category
          example: Wages
        iconUrl:
          type: string
          description: Icon URL of the category
          example: https://cdn.sandbox.tight.com/icons/expenseCategories/payroll.svg
      description: Category associated with this child payment
      nullable: true
    GlAccountExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the GL account
          example: gla_38560327
        name:
          type: string
          description: Name of the GL account
          example: Officer(s) Salaries and Wages
        accountNo:
          type: string
          description: Number of the GL account
          example: '60210'
        type:
          type: string
          description: Type the GL account
          example: EXPENSE
          enum:
            - ASSET
            - LIABILITY
            - EQUITY
            - INCOME
            - COGS
            - EXPENSE
            - OTHER_INCOME
            - OTHER_EXPENSE
            - SUSPENSE
        iconUrl:
          type: string
          description: Icon URL of the GL account
          example: https://cdn.sandbox.tight.com/icons/glAccountTypes/expense.png
        displayName:
          type: string
          description: Display name of the GL account
          example: '#60210 Officer(s) Salaries and Wages'
      description: GL account details
    MatchingBankTransactionExpanded:
      type: object
      properties:
        id:
          type: string
          description: Id of the matching bank transaction
        apiSourceId:
          type: string
          description: Id from the source of matching bank transaction
          nullable: true
        amount:
          type: integer
          description: Amount of the matching bank transaction (in cents)
          format: int32
        date:
          type: string
          description: Date of the matching bank transaction
          format: date
        description:
          type: string
          description: Description of the matching bank transaction
        apiName:
          type: string
          description: Name of the API of the matching bank transaction
          enum:
            - BOX
            - CLOVER
            - STRIPE
            - PLAID
            - KNOX
            - UBER
            - FRESHBOOKS
            - HARVEST
            - KW
            - FRESHBOOKS2
            - CAPITAL_ONE
            - SQUARE
            - DOTLOOP
            - REALOGY
            - UPWORK
            - SHOPIFY
            - DEDUCTR
            - ENTERPRISE
            - MOXIWORKS
            - APPDIRECT
            - LONEWOLF
            - LONEWOLF_TRANSACTIONDESK
            - SAMPLE_BANK
            - TAXBOT
            - GUSTO
            - XERO
            - UNIT
            - MOOV
            - QBO
            - QUALPAY
            - BENCH
            - PARTNER_IMPLEMENTATION
            - CHECK
            - RUTTER
            - WAVE
            - MANUAL_ENTRY
            - CSV_IMPORT
            - ADYEN
            - PAYABLI
        apiInstitutionId:
          type: string
          description: >-
            Id of the institution that the matching bank transaction originated
            from
          nullable: true
        bankAccount:
          $ref: '#/components/schemas/BankAccountExpanded'
      description: The bank transaction matched to this payroll line item
      nullable: true
    ConversationExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the conversation
        readStatus:
          type: string
          description: Read status of the conversation for the authenticated user
          enum:
            - READ
            - UNREAD
      description: The conversation associated with this entity
      nullable: true
    CompanyExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the company
          example: co_123456
        name:
          type: string
          description: Name of the company
          example: ACME Corp
      description: Company associated with this conversation
    BankTransactionAttachmentExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the attachment
          example: att_894321
        url:
          type: string
          description: URL at which the attachment is located
          example: https://files.example.com/attachment/receipt.pdf
        fileName:
          type: string
          description: File name of attachment
          example: receipt.pdf
        fileSize:
          type: string
          description: File size of attachment
          example: 24 KB
        createdDateTime:
          type: string
          description: Date that attachment was uploaded
          format: date-time
        iconUrl:
          type: string
          description: Icon URL based on file extension
          example: https://cdn.sandbox.tight.com/icons/attachments/pdf.svg
      description: List of attachments associated with this bank transaction
    BankTransactionChildGetDto:
      required:
        - amount
        - apiName
        - apiSourceId
        - bankAccount
        - bill
        - category
        - customer
        - date
        - description
        - dimensionValues
        - displayName
        - glAccount
        - iconUrl
        - id
        - invoice
        - notes
        - paymentId
        - payroll
        - reviewStatus
        - type
        - vendor
      type: object
      properties:
        id:
          type: string
          description: Id of the child, required when updating an existing child
          example: itm_349412
        type:
          type: string
          description: Type of the bank transaction
          enum:
            - EXPENSE
            - REVENUE
            - TRANSFER_IN
            - TRANSFER_OUT
        date:
          type: string
          description: Date of the bank transaction
          format: date
          example: '2025-06-26'
        amount:
          type: integer
          description: Total amount of the bank transaction (in cents)
          format: int32
          example: -134051
        displayName:
          type: string
          description: >-
            Transaction display name, useful for displaying this transaction to
            a user
          example: Gusto
        description:
          type: string
          description: >-
            Transaction description, similar to what will show on the user's
            bank statement
          example: 'WITHDRAWAL ACH GUSTO TAXID: 4001'
        notes:
          type: string
          description: Notes for the bank transaction
          nullable: true
          example: Gas purchase
        reviewStatus:
          type: string
          description: Review status of the bank transaction
          example: RECONCILED
          enum:
            - RECONCILIATION_DISCREPANCY
            - USER_REVIEW_REQUIRED
            - ACCOUNTANT_REVIEW_REQUIRED
            - PARTNER_REVIEW_REQUIRED
            - AWAITING_MATCH
            - STAGED
            - RECONCILED
        apiName:
          type: string
          description: Name of the API from which this transaction originated
          example: PLAID
          enum:
            - PLAID
            - UNIT
            - STRIPE
            - SHOPIFY
            - SQUARE
            - RUTTER
            - UBER
            - MOOV
            - QUALPAY
            - MANUAL_ENTRY
            - CSV_IMPORT
            - PARTNER_IMPLEMENTATION
            - QBO
            - XERO
            - BENCH
            - WAVE
        iconUrl:
          type: string
          description: Icon URL for the bank transaction
          example: https://cdn.sandbox.tight.com/icons/defaults/default-vendor.png
        apiSourceId:
          type: string
          description: Id of the bank transaction on associated API
          nullable: true
        bankAccount:
          $ref: '#/components/schemas/BankAccountExpanded'
        dimensionValues:
          maxItems: 4
          type: array
          items:
            $ref: '#/components/schemas/DimensionValueExpanded'
        customer:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CustomerExpanded'
        vendor:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/VendorExpanded'
        category:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CategoryExpanded'
        glAccount:
          $ref: '#/components/schemas/GlAccountExpanded'
        invoice:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InvoiceExpanded'
        bill:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BillExpanded'
        payroll:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PayrollExpanded'
        paymentId:
          type: string
          description: ID of the payment linked to this child
          nullable: true
        apiItemId:
          type: string
          description: Id of the bank transaction item on associated API
          nullable: true
      description: >-
        List of child transactions; applicable for payouts and split
        transactions. Transactions can be split into as many children as needed.
    DimensionExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the dimension
          example: dim_4521
        name:
          type: string
          description: Name of the dimension
          example: Region
        requiredness:
          type: string
          description: Requiredness of the dimension
          example: NOT_REQUIRED
          enum:
            - REQUIRED
            - NOT_REQUIRED
      description: Dimension for this dimension value
    ChildDimensionValue:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the dimension value
          example: dv_593052
        dimension:
          $ref: '#/components/schemas/DimensionExpanded'
        name:
          type: string
          description: Name of the dimension value
          example: Washington DC
        child:
          $ref: '#/components/schemas/ChildDimensionValue'
      description: Child dimension value, if applicable
    InvoiceExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the invoice
        name:
          type: string
          description: Name of the invoice
        date:
          type: string
          description: Date of the invoice
          format: date
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceLineItem'
      description: Invoice associated with this time entry
      nullable: true
    BillExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the bill
        name:
          type: string
          description: Name of the bill
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/BillLineItem'
      description: Bill associated with this child payment
      nullable: true
    PayrollExpanded:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: Id of the payroll
        date:
          type: string
          description: Date when payroll was processed
          format: date
        checkDate:
          type: string
          description: Payroll check date
          format: date
        description:
          type: string
          description: Description if any
          example: 2021-01-01 to 2021-01-31
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/PayrollLineItem'
      description: Payroll associated with this bank transaction
      nullable: true
    InvoiceLineItem:
      type: object
      properties:
        id:
          type: string
          description: Id of the invoice line item
          example: ili_123456
        amount:
          type: integer
          description: Total amount of the invoice line item (in cents)
          format: int32
          example: 5001
      description: Line items of the invoice
    BillLineItem:
      type: object
      properties:
        id:
          type: string
          description: Id of the bill line item
          example: bli_123456
        amount:
          type: integer
          description: Total amount of the bill line item (in cents)
          format: int32
          example: 5001
      description: Line items of the bill
    PayrollLineItem:
      type: object
      properties:
        id:
          type: string
          description: Id of the payroll line item
          example: pli_123456
        amount:
          type: integer
          description: Total amount of the payroll line item (in cents)
          format: int32
          example: 5001
      description: Line items of the payroll
  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

````