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

# Update Chart Transaction



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json put /coa/api/transaction/{id}
openapi: 3.0.3
info:
  title: Campfire Developer APIs
  version: 1.0.0
  description: >
    ## Introduction

    Campfire's developer APIs offer granular access to Campfire's core
    accounting,

    revenue recognition, and financial data features.


    These APIs are designed to be used by developers to build custom
    integrations,

    automate workflows, and perform any other programmatic operations.
servers:
  - url: https://api.meetcampfire.com
    description: Production server
security: []
tags:
  - name: Cash Management
    description: Operations related to accounts, transactions, and other bank-related data.
  - name: Core Accounting
    description: >-
      Operations related to core accounting data, such as the chart of accounts,
      entity management, and the general ledger.
  - name: Revenue Recognition
    description: >-
      Operations related to revenue recognition, contract management, and
      contract data aggregation.
  - name: Accounts Receivable
    description: Operations related to invoicing and the AR subledger
  - name: Accounts Payable
    description: Operations related to billing and the AP subledger.
  - name: Financial Statements
    description: Operations related to financial statement generation and data aggregation.
  - name: Settings
    description: Operations related to system and accounting settings configuration.
paths:
  /coa/api/transaction/{id}:
    put:
      tags:
        - Core Accounting
      summary: Update Chart Transaction
      operationId: coa_api_transaction_update
      parameters:
        - in: path
          name: id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChartTransaction'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ChartTransaction'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ChartTransaction'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartTransaction'
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    ChartTransaction:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        entity_name:
          type: string
          readOnly: true
        entity_currency:
          type: string
          readOnly: true
        account_name:
          type: string
          nullable: true
          description: Combines account number and name in the format "number - name"
          readOnly: true
        account_number:
          type: string
          readOnly: true
        vendor_name:
          type: string
          readOnly: true
        vendor_id:
          type: string
          readOnly: true
        department_name:
          type: string
          readOnly: true
        department_code:
          type: string
          readOnly: true
        parent_department_name:
          type: string
          readOnly: true
        parent_department:
          type: integer
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TransactionTag'
          readOnly: true
        journal:
          type: integer
          readOnly: true
        journal_order:
          type: string
          readOnly: true
        journal_memo:
          type: string
          readOnly: true
        journal_type:
          type: string
          readOnly: true
        intercompany_journal:
          type: integer
          readOnly: true
        created_automatically:
          type: boolean
          readOnly: true
        journal_attachments:
          type: array
          items:
            $ref: '#/components/schemas/File'
          readOnly: true
        journal_type_name:
          type: string
          readOnly: true
          nullable: true
        invoice:
          type: string
          readOnly: true
          nullable: true
        bill:
          type: string
          readOnly: true
          nullable: true
        date_month:
          type: string
          readOnly: true
          nullable: true
        date_year:
          type: string
          readOnly: true
          nullable: true
        balance_after_transaction:
          type: number
          format: double
          readOnly: true
        bank_account:
          type: string
          readOnly: true
        bank_account_name:
          type: string
          readOnly: true
        account:
          type: integer
          nullable: true
        last_modified_by_name:
          type: string
          readOnly: true
        account_type:
          type: string
          readOnly: true
        account_subtype:
          type: string
          readOnly: true
        parent_account_name:
          type: string
          readOnly: true
        files:
          type: string
          readOnly: true
        invoice_id:
          type: integer
          nullable: true
          readOnly: true
        invoice_number:
          type: string
          readOnly: true
          nullable: true
        bill_id:
          type: integer
          nullable: true
          readOnly: true
        bill_number:
          type: string
          readOnly: true
          nullable: true
        file_names:
          type: string
          readOnly: true
        has_matches:
          type: boolean
          readOnly: true
        has_ai:
          type: boolean
          readOnly: true
        has_rules:
          type: boolean
          readOnly: true
        has_merges:
          type: boolean
          readOnly: true
        has_fixed_asset_rule_matches:
          type: boolean
          readOnly: true
        primary_action_type:
          type: string
          readOnly: true
        suggested_account:
          type: integer
          nullable: true
          readOnly: true
        suggested_account_name:
          type: string
          readOnly: true
          nullable: true
        suggested_account_number:
          type: string
          readOnly: true
          nullable: true
        amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        amount_native:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        amount_book:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        amortization_schedule:
          type: array
          items:
            $ref: '#/components/schemas/AmortizationSchedule'
          readOnly: true
        linked_amortizations:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
        created_fixed_assets:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
          description: >-
            Return all fixed assets this transaction is linked to — via the
            legacy

            `purchase_transaction` FK (reverse: `created_fixed_assets`) AND the

            new `purchase_transactions` M2M (reverse: `linked_fixed_assets`).

            Dual-write keeps the FK target in the M2M, but using both covers any

            pre-backfill drift and surfaces non-primary M2M-only links (e.g. the

            secondary txns in a multi-txn fixed asset, or a split-resized txn).
          readOnly: true
        reconciliation_report:
          type: string
          readOnly: true
        opposing_account_name:
          type: string
          readOnly: true
        opposing_account_number:
          type: string
          readOnly: true
        tax_rate:
          type: integer
          writeOnly: true
          nullable: true
        apply_both_sides:
          type: boolean
          writeOnly: true
          default: false
        transaction_match_id:
          type: integer
          writeOnly: true
          nullable: true
        transaction_id:
          type: string
          format: uuid
          readOnly: true
        debit_amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        credit_amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        debit_amount_book:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        credit_amount_book:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        debit_amount_native:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        credit_amount_native:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        currency:
          type: string
          maxLength: 3
        exchange_rate:
          type: number
          format: double
          maximum: 100000000000000
          minimum: -100000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        exchange_rate_book:
          type: number
          format: double
          maximum: 100000000000000
          minimum: -100000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
        posted_at:
          type: string
          format: date
          nullable: true
          title: Posted Date
        merchant_name:
          type: string
          nullable: true
        bank_description:
          type: string
          nullable: true
        tag_ids:
          type: array
          items:
            type: integer
            maximum: 9223372036854776000
            minimum: -9223372036854776000
            format: int64
        tag_group_ids:
          type: array
          items:
            type: integer
            maximum: 9223372036854776000
            minimum: -9223372036854776000
            format: int64
        note:
          type: string
          nullable: true
        receipt_url:
          type: string
          format: uri
          nullable: true
          maxLength: 512
        balance_before_transaction:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        external_id:
          type: string
          nullable: true
        needs_review:
          type: boolean
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        draft_matches:
          nullable: true
        last_lam_prediction_attempt:
          type: string
          format: date-time
          nullable: true
        customer:
          type: integer
          readOnly: true
        entity:
          type: integer
        parent_bank_transaction:
          type: integer
          nullable: true
        vendor:
          type: integer
          nullable: true
        department:
          type: integer
          nullable: true
        last_modified_by:
          type: integer
          nullable: true
      required:
        - account_name
        - account_number
        - account_subtype
        - account_type
        - amortization_schedule
        - amount
        - amount_book
        - amount_native
        - balance_after_transaction
        - balance_before_transaction
        - bank_account
        - bank_account_name
        - bill
        - bill_id
        - bill_number
        - created_at
        - created_automatically
        - created_fixed_assets
        - customer
        - date_month
        - date_year
        - deleted_at
        - department_code
        - department_name
        - entity
        - entity_currency
        - entity_name
        - file_names
        - files
        - has_ai
        - has_fixed_asset_rule_matches
        - has_matches
        - has_merges
        - has_rules
        - id
        - intercompany_journal
        - invoice
        - invoice_id
        - invoice_number
        - is_deleted
        - journal
        - journal_attachments
        - journal_memo
        - journal_order
        - journal_type
        - journal_type_name
        - last_modified_at
        - last_modified_by_name
        - linked_amortizations
        - opposing_account_name
        - opposing_account_number
        - parent_account_name
        - parent_department
        - parent_department_name
        - primary_action_type
        - reconciliation_report
        - suggested_account
        - suggested_account_name
        - suggested_account_number
        - tags
        - transaction_id
        - vendor_id
        - vendor_name
    TransactionTag:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        group_name:
          type: string
          readOnly: true
        parent_name:
          type: string
          readOnly: true
          nullable: true
        parent:
          type: integer
          nullable: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        is_active:
          type: boolean
          default: true
        name:
          type: string
          nullable: true
          maxLength: 250
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        customer:
          type: integer
          readOnly: true
        group:
          type: integer
          nullable: true
      required:
        - created_at
        - customer
        - deleted_at
        - group_name
        - id
        - is_deleted
        - last_modified_at
        - name
        - parent_name
    File:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        customer:
          type: integer
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: integer
          nullable: true
          readOnly: true
        created_by_name:
          type: string
          readOnly: true
        created_by_email:
          type: string
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
        url:
          type: string
          readOnly: true
        s3_content_type:
          type: string
          nullable: true
        s3_content_length:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        s3_path:
          type: string
        object_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        app:
          type: string
          readOnly: true
        model:
          type: string
          readOnly: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
        - app
        - created_at
        - created_by
        - created_by_email
        - created_by_name
        - customer
        - deleted_at
        - id
        - is_deleted
        - last_modified_at
        - model
        - name
        - s3_path
        - url
    AmortizationSchedule:
      type: object
      properties:
        id:
          type: integer
        amortization:
          type: integer
          writeOnly: true
        accounting_amortization:
          type: integer
          writeOnly: true
        journal_entry_order:
          type: string
          readOnly: true
        date:
          type: string
          format: date
        amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        posted:
          type: boolean
        customer:
          type: integer
          readOnly: true
        transaction:
          type: integer
          nullable: true
        bill_line:
          type: integer
          nullable: true
        journal_entry:
          type: integer
          nullable: true
      required:
        - amount
        - customer
        - date
        - journal_entry_order
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````