> ## 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 Transaction Match



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json put /coa/api/transaction-matches/{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.


    ## Rate limits

    API users can make up to **5 requests per second**. This limit is shared
    across

    all endpoints for the same API user. Requests that exceed the limit receive
    a

    `429 Too Many Requests` response. Wait for the number of seconds specified
    in

    the `Retry-After` response header before retrying.
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-matches/{id}:
    put:
      tags:
        - Core Accounting
      summary: Update Transaction Match
      operationId: update_transaction_match
      parameters:
        - in: path
          name: id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionMatch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TransactionMatch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TransactionMatch'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionMatch'
          description: ''
components:
  schemas:
    TransactionMatch:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        matched_object:
          type: string
          readOnly: true
        app_label:
          type: string
          readOnly: true
        model:
          type: string
          readOnly: true
        drafts:
          type: string
          readOnly: true
        object_id:
          type: integer
          maximum: 2147483647
          minimum: 0
        created_at:
          type: string
          format: date-time
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          nullable: true
        status:
          $ref: '#/components/schemas/TransactionMatchStatusEnum'
        confidence_score:
          type: number
          format: double
          maximum: 1
          minimum: 0
          nullable: true
        reason:
          type: string
          nullable: true
          description: >-
            Why the matcher assigned this status (e.g. reference_surfaced,
            reference_auto_approved, needs_review, auto_approved).
            Display/observability only.
          maxLength: 64
        snapshot:
          nullable: true
          description: >-
            Snapshot of transaction data preserved for training data when the
            transaction is deleted.
        auto_applied:
          type: boolean
          description: >-
            True when the matcher committed this match as accepted without human
            review. The durable auto-vs-human discriminator: reviewed_by is
            unreliable for this because the apply flow attributes the payment to
            the agent's attributed user.
        applied_payment_kind:
          nullable: true
          description: |-
            Kind of payment created when this match was applied.

            * `AIP` - Invoice payment
            * `ABP` - Bill payment
          oneOf:
            - $ref: '#/components/schemas/AppliedPaymentKindEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        applied_payment_id:
          type: integer
          maximum: 9223372036854776000
          minimum: -9223372036854776000
          format: int64
          nullable: true
          description: >-
            ID of the AccountingInvoicePayment/AccountingBillPayment created
            when this match was applied. Plain integer, not a FK: the match
            record must outlive the payment.
        threshold_at_apply:
          type: number
          format: double
          maximum: 1
          minimum: 0
          nullable: true
          description: >-
            The agent's auto-approve confidence threshold at the moment this
            match auto-applied.
        agent_run_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            AgentRun that produced this match. Plain UUID, not a FK: the audit
            record must outlive the run. Enables group-by-run views and bulk
            undo.
        reverted_at:
          type: string
          format: date-time
          nullable: true
        customer:
          type: integer
        transaction:
          type: integer
          nullable: true
        content_type:
          type: integer
        reviewed_by:
          type: integer
          nullable: true
        reverted_by:
          type: integer
          nullable: true
          description: >-
            User whose undo (or payment void/delete) reverted this applied
            match.
      required:
        - app_label
        - content_type
        - created_at
        - customer
        - drafts
        - id
        - matched_object
        - model
        - object_id
        - transaction
    TransactionMatchStatusEnum:
      enum:
        - pending
        - draft
        - accepted
        - rejected
        - reverted
      type: string
      description: |-
        * `pending` - Pending
        * `draft` - Draft
        * `accepted` - Accepted
        * `rejected` - Rejected
        * `reverted` - Reverted
    AppliedPaymentKindEnum:
      enum:
        - AIP
        - ABP
      type: string
      description: |-
        * `AIP` - Invoice payment
        * `ABP` - Bill payment
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null

````