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

# Create Credit Memo

> 
        Creates a new accounting credit memo with line items and automatic journal entry generation.

        This endpoint allows for comprehensive credit memo creation with:
        - Multiple line items with different products, accounts, amounts, and departmental allocations
        - Automatic journal entry creation following double-entry bookkeeping principles
        - Multi-currency support with exchange rate handling
        - Client and entity relationship management
        - Contract associations for revenue recognition tracking
        - Product-based line item categorization with tax handling
        - Tag-based transaction categorization and reporting
        



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json post /coa/api/v1/credit-memo
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/v1/credit-memo:
    post:
      tags:
        - Accounts Receivable
      summary: Create Credit Memo
      description: |2-

                Creates a new accounting credit memo with line items and automatic journal entry generation.

                This endpoint allows for comprehensive credit memo creation with:
                - Multiple line items with different products, accounts, amounts, and departmental allocations
                - Automatic journal entry creation following double-entry bookkeeping principles
                - Multi-currency support with exchange rate handling
                - Client and entity relationship management
                - Contract associations for revenue recognition tracking
                - Product-based line item categorization with tax handling
                - Tag-based transaction categorization and reporting
                
      operationId: coa_api_v1_credit_memo_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountingCreditMemo'
            examples:
              CreateCreditMemoRequest:
                value:
                  lines:
                    - tags:
                        - id: '7736'
                          name: Other
                      product: '3679'
                      product_name: Annual Subscription
                      account: '169208'
                      account_name: Subscription fees
                      department: '35'
                      department_name: Engineering
                      description: Credit for overpayment on annual subscription
                      amount: 1000.23
                  entity: '54'
                  entity_name: Top Level
                  entity_currency: USD
                  currency: USD
                  client: '33973'
                  client_name: Client A
                  credit_memo_date: '2025-07-01'
                  exchange_rate_book: 1
                  exchange_rate: 1
                  credit_account: '41905'
                  credit_account_name: 5230 - Cloud Credits
                  message_on_credit_memo: >-
                    Credit memo for annual subscription overpayment. Thank you
                    for your business.
                summary: Create Credit Memo Request
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AccountingCreditMemo'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AccountingCreditMemo'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountingCreditMemo'
              examples:
                CreateCreditMemoResponse:
                  value:
                    id: 4258
                    lines:
                      - id: 5449
                        account_number: '4107'
                        account_name: 4107 - Subscription fees
                        product_name: Annual Subscription
                        department_name: Engineering
                        tags:
                          - id: 7736
                            parent_name: null
                            parent: null
                            name: Other
                            created_at: 2025-06-18T21:09:34+0000
                            last_modified_at: 2025-06-18T21:09:34+0000
                            group: null
                        description: Credit for overpayment on annual subscription
                        amount: 1000.23
                        created_at: 2025-07-25T21:04:38+0000
                        last_modified_at: 2025-07-25T21:04:38+0000
                        product: 3679
                        account: 169208
                        department: 35
                    payments: []
                    total_amount: 1000.23
                    amount_used: 0
                    amount_remaining: 1000.23
                    entity_name: Top Level
                    entity_currency: USD
                    client_name: Client A
                    credit_account_name: 5230 - Cloud Credits
                    attachments: []
                    credit_memo_number: CM-0000008
                    voided_date: null
                    ref_number: null
                    credit_memo_date: '2025-07-01'
                    applied_date: null
                    message_on_credit_memo: >-
                      Credit memo for annual subscription overpayment. Thank you
                      for your business.
                    application_status: open
                    currency: USD
                    exchange_rate: 1
                    exchange_rate_book: 1
                    created_at: 2025-07-25T21:04:38+0000
                    last_modified_at: 2025-07-25T21:04:38+0000
                    customer: 2
                    entity: 54
                    client: 33973
                    credit_account: 41905
                    journal_entry: 7491953
                    contract: null
                    voided_journal_entry: null
                  summary: Create Credit Memo Response
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    AccountingCreditMemo:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        lines:
          type: array
          items:
            $ref: '#/components/schemas/AccountingCreditMemoLine'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/AccountingCreditMemoPayment'
          readOnly: true
        amount_remaining:
          type: number
          format: double
          description: Calculate amount remaining from database fields
          readOnly: true
        entity_name:
          type: string
          readOnly: true
        entity_currency:
          type: string
          readOnly: true
        client_name:
          type: string
          readOnly: true
        client_email:
          type: string
          readOnly: true
        contract_name:
          type: string
          readOnly: true
        credit_account_number:
          type: string
          readOnly: true
        credit_account_name:
          type: string
          nullable: true
          description: Combines account number and name in the format "number - name"
          readOnly: true
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/File'
          readOnly: true
        credit_memo_number:
          type: string
        migrated_journal_id:
          type: integer
          writeOnly: true
          nullable: true
        voided_date:
          type: string
          format: date
          readOnly: true
        voided_journal_entry_order:
          type: string
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        chat_uuid:
          type: string
          format: uuid
          writeOnly: true
        search_vector:
          type: string
          readOnly: true
          nullable: true
        search_text:
          type: string
          readOnly: true
          nullable: true
        credit_memo_type:
          $ref: '#/components/schemas/CreditMemoTypeEnum'
        ref_number:
          type: string
          nullable: true
          maxLength: 120
        credit_memo_date:
          type: string
          format: date
        applied_date:
          type: string
          format: date
          nullable: true
        message_on_credit_memo:
          type: string
          nullable: true
        application_status:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ApplicationStatusEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        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
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_sent_at:
          type: string
          format: date-time
          nullable: true
        anrok_transaction_id:
          type: string
          nullable: true
          description: ID of the negation transaction in Anrok for this credit memo
          maxLength: 255
        integration_id:
          type: string
          nullable: true
          maxLength: 250
        integration_context:
          nullable: true
        vat_number:
          type: string
          nullable: true
          maxLength: 250
        total_amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          description: Sum of all line item amounts
        amount_used:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          description: Sum of all non-voided payment amounts
        chat_id:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        customer:
          type: integer
          readOnly: true
        entity:
          type: integer
        client:
          type: integer
          nullable: true
        credit_account:
          type: integer
          nullable: true
        journal_entry:
          type: integer
          nullable: true
        contract:
          type: integer
          nullable: true
        voided_journal_entry:
          type: integer
          nullable: true
        anrok_connection:
          type: integer
          nullable: true
        avalara_connection:
          type: integer
          nullable: true
        sphere_connection:
          type: integer
          nullable: true
      required:
        - amount_remaining
        - attachments
        - client_email
        - client_name
        - contract_name
        - created_at
        - credit_account_name
        - credit_account_number
        - credit_memo_date
        - customer
        - deleted_at
        - entity
        - entity_currency
        - entity_name
        - id
        - is_deleted
        - last_modified_at
        - lines
        - payments
        - search_text
        - search_vector
        - voided_date
        - voided_journal_entry_order
    AccountingCreditMemoLine:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        credit_memo:
          type: integer
          writeOnly: true
        account_number:
          type: string
          readOnly: true
        account_name:
          type: string
          nullable: true
          description: Combines account number and name in the format "number - name"
          readOnly: true
        product_name:
          type: string
          readOnly: true
        anrok_item_id:
          type: string
          readOnly: true
        department_name:
          type: string
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TransactionTag'
          readOnly: true
        tax_rate_name:
          type: string
          readOnly: true
        tax_rate_value:
          type: number
          format: double
          maximum: 1000000
          minimum: -1000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        description:
          type: string
          nullable: true
        amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        tax:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        tax_description:
          type: string
          nullable: true
          maxLength: 250
        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
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        customer:
          type: integer
          readOnly: true
        product:
          type: integer
          nullable: true
        account:
          type: integer
        tax_rate:
          type: integer
          nullable: true
        department:
          type: integer
          nullable: true
      required:
        - account
        - account_name
        - account_number
        - anrok_item_id
        - created_at
        - customer
        - department_name
        - id
        - last_modified_at
        - product_name
        - tags
        - tax_rate_name
        - tax_rate_value
    AccountingCreditMemoPayment:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        payment_journal_entry_order:
          type: string
          readOnly: true
        voided_journal_entry_order:
          type: string
          readOnly: true
          nullable: true
        invoice:
          type: string
          readOnly: true
        currency:
          type: string
          maxLength: 3
        amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
        payment_date:
          type: string
          format: date
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        voided_date:
          type: string
          format: date
          nullable: true
        customer:
          type: integer
          readOnly: true
        credit_memo:
          type: integer
        payment_journal_entry:
          type: integer
        payment_transaction:
          type: integer
          nullable: true
        voided_journal_entry:
          type: integer
          nullable: true
      required:
        - created_at
        - credit_memo
        - customer
        - id
        - invoice
        - last_modified_at
        - payment_journal_entry
        - payment_journal_entry_order
        - voided_journal_entry_order
    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
    CreditMemoTypeEnum:
      enum:
        - credit_memo
        - overpayment
      type: string
      description: |-
        * `credit_memo` - Credit Memo
        * `overpayment` - Overpayment
    ApplicationStatusEnum:
      enum:
        - open
        - partially_used
        - used
        - voided
      type: string
      description: |-
        * `open` - Open
        * `partially_used` - Partially Used
        * `used` - Used
        * `voided` - Voided
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
    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
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````