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

# List Contract Customers

> 
        Retrieve a list of contract customers with optional filtering and sorting.

        Supports including soft-deleted records for audit and recovery purposes.
        When include_deleted=true, returns ONLY deleted records instead of active records.
        Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,
        and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.
        This provides clean separation between active and deleted data.
        



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json get /rr/api/v1/customers
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:
  /rr/api/v1/customers:
    get:
      tags:
        - Revenue Recognition
      summary: List Contract Customers
      description: |2-

                Retrieve a list of contract customers with optional filtering and sorting.

                Supports including soft-deleted records for audit and recovery purposes.
                When include_deleted=true, returns ONLY deleted records instead of active records.
                Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,
                and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.
                This provides clean separation between active and deleted data.
                
      operationId: rr_api_v1_customers_list
      parameters:
        - in: query
          name: include_deleted
          schema:
            type: boolean
            default: false
          description: >-
            When set to 'true', returns ONLY deleted records instead of active
            records. Deleted records contain minimal data: 'id',
            'is_deleted=true', 'deleted_at' timestamp, and 'last_modified_at'.
            When 'false' or omitted, returns ONLY active records. This provides
            clean separation between active and deleted data.
        - in: query
          name: last_modified_at__gte
          schema:
            type: string
          description: >-
            Filter for records modified on or after this timestamp. Format: ISO
            8601 (e.g., '2024-01-01T00:00:00Z' or '2024-01-01'). Works with both
            active records and deleted records (filters by deletion time for
            deleted records).
        - in: query
          name: last_modified_at__lte
          schema:
            type: string
          description: >-
            Filter for records modified on or before this timestamp. Format: ISO
            8601 (e.g., '2024-12-31T23:59:59Z' or '2024-12-31'). Works with both
            active records and deleted records (filters by deletion time for
            deleted records).
        - name: limit
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
        - name: offset
          required: false
          in: query
          description: The initial index from which to return the results.
          schema:
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContractCustomerList'
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    PaginatedContractCustomerList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContractCustomer'
    ContractCustomer:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/VendorContact'
        parent_name:
          type: string
          readOnly: true
        stripe_connection_name:
          type: string
          readOnly: true
          nullable: true
        stripe_connection_entity:
          type: integer
          nullable: true
          readOnly: true
        stripe_connection_portal_url:
          type: string
          readOnly: true
          nullable: true
        stripe_connection_portal_enabled:
          type: boolean
          readOnly: true
          nullable: true
        stripe_connection_invoicing_enabled:
          type: boolean
          readOnly: true
          nullable: true
        vendor_custom_field_1_name:
          type: string
          readOnly: true
        payment_term_name_display:
          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
        active_contracts:
          type: integer
          readOnly: true
        completed_contracts:
          type: integer
          readOnly: true
        pending_contracts:
          type: integer
          readOnly: true
        total_contracts:
          type: integer
          readOnly: true
        total_revenue:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_deferred_revenue:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_mrr:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_billed:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_unbilled:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_paid:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_outstanding:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        total_credit_memos:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        credit_memo_applied:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        credit_memo_available:
          type: number
          format: double
          maximum: 10000000000000
          minimum: -10000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        currency:
          type: string
          readOnly: true
        search_vector:
          type: string
          readOnly: true
          nullable: true
        search_text:
          type: string
          readOnly: true
          nullable: true
        vendor_type:
          nullable: true
          default: vendor
          title: Payee Type
          oneOf:
            - $ref: '#/components/schemas/VendorType391Enum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        name:
          type: string
          nullable: true
          maxLength: 250
        dba:
          type: string
          nullable: true
          maxLength: 250
        company_name:
          type: string
          nullable: true
          maxLength: 250
        website:
          type: string
          nullable: true
          maxLength: 250
        first_name:
          type: string
          nullable: true
          maxLength: 250
        last_name:
          type: string
          nullable: true
          maxLength: 250
        email:
          type: string
          format: email
          nullable: true
          maxLength: 250
        phone_number:
          type: string
          nullable: true
          maxLength: 250
        mobile_number:
          type: string
          nullable: true
          maxLength: 250
        address_street_1:
          type: string
          nullable: true
          maxLength: 250
        address_street_2:
          type: string
          nullable: true
          maxLength: 250
        city:
          type: string
          nullable: true
          maxLength: 250
        state:
          type: string
          nullable: true
          maxLength: 250
        zip_code:
          type: string
          nullable: true
          maxLength: 250
        country:
          type: string
          nullable: true
          maxLength: 250
        billing_address_street_1:
          type: string
          nullable: true
          maxLength: 250
        billing_address_street_2:
          type: string
          nullable: true
          maxLength: 250
        billing_city:
          type: string
          nullable: true
          maxLength: 250
        billing_state:
          type: string
          nullable: true
          maxLength: 250
        billing_zip_code:
          type: string
          nullable: true
          maxLength: 250
        billing_country:
          type: string
          nullable: true
          maxLength: 250
        shipping_addressee:
          type: string
          nullable: true
          maxLength: 255
        billing_addressee:
          type: string
          nullable: true
          maxLength: 255
        notes:
          type: string
          nullable: true
          maxLength: 250
        business_id_ssn:
          type: string
          nullable: true
          title: Business ID/SSN
          maxLength: 250
        is_1099:
          type: boolean
        vat_number:
          type: string
          nullable: true
          maxLength: 250
        business_type:
          type: string
          nullable: true
          description: Business type classification (e.g., Korean NTS 업태)
          maxLength: 250
        business_category:
          type: string
          nullable: true
          description: Business category classification (e.g., Korean NTS 종목)
          maxLength: 250
        entity_use_code:
          type: string
          nullable: true
          description: >-
            Avalara entity/use code for tax exemptions (e.g., A - Federal
            Government, B - State/Local Govt)
          maxLength: 25
        stripe_customer_id:
          type: string
          nullable: true
          maxLength: 250
        use_stripe_auto_bill:
          type: boolean
          nullable: true
        bill_vendor_id:
          type: string
          nullable: true
          maxLength: 250
        external_id:
          type: string
          nullable: true
          maxLength: 250
        source:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Source170Enum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        invoice_message:
          type: string
          nullable: true
        abbreviation:
          type: string
          nullable: true
          maxLength: 250
        created_at:
          type: string
          format: date-time
          readOnly: true
        status:
          $ref: '#/components/schemas/Status372Enum'
        anrok_customer_id:
          type: string
          nullable: true
          maxLength: 250
        terms:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/TermsEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        invoice_labels:
          nullable: true
        invoice_language:
          type: string
          nullable: true
          maxLength: 10
        lineage_array:
          type: array
          items:
            type: string
            maxLength: 50
          nullable: true
          description: Pre-computed lineage array from root to this vendor
        customer:
          type: integer
        parent:
          type: integer
          nullable: true
        stripe_connection:
          type: integer
          nullable: true
        default_expense_category:
          type: integer
          nullable: true
        vendor_custom_field_1:
          type: integer
          nullable: true
        payment_term:
          type: integer
          nullable: true
          description: Payment term for this vendor
      required:
        - active_contracts
        - completed_contracts
        - created_at
        - credit_memo_applied
        - credit_memo_available
        - currency
        - customer
        - deleted_at
        - id
        - is_deleted
        - last_modified_at
        - name
        - parent_name
        - payment_term_name_display
        - pending_contracts
        - search_text
        - search_vector
        - stripe_connection
        - stripe_connection_entity
        - stripe_connection_invoicing_enabled
        - stripe_connection_name
        - stripe_connection_portal_enabled
        - stripe_connection_portal_url
        - total_billed
        - total_contracts
        - total_credit_memos
        - total_deferred_revenue
        - total_mrr
        - total_outstanding
        - total_paid
        - total_revenue
        - total_unbilled
        - vendor_custom_field_1_name
    VendorContact:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          nullable: true
        first_name:
          type: string
          nullable: true
          maxLength: 250
        last_name:
          type: string
          nullable: true
          maxLength: 250
        email:
          type: string
          format: email
          nullable: true
          maxLength: 250
        phone_number:
          type: string
          nullable: true
          maxLength: 250
        mobile_number:
          type: string
          nullable: true
          maxLength: 250
        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
      required:
        - deleted_at
        - id
        - is_deleted
        - last_modified_at
    VendorType391Enum:
      enum:
        - vendor
        - customer
        - employee
      type: string
      description: |-
        * `vendor` - Vendor
        * `customer` - Customer
        * `employee` - Employee
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
    Source170Enum:
      enum:
        - BILL
        - BREX
        - HUBSPOT
        - MANUAL
        - SALESFORCE
      type: string
      description: |-
        * `BILL` - Bill
        * `BREX` - Brex
        * `HUBSPOT` - Hubspot
        * `MANUAL` - Manual
        * `SALESFORCE` - Salesforce
    Status372Enum:
      enum:
        - ACTIVE
        - INACTIVE
      type: string
      description: |-
        * `ACTIVE` - Active
        * `INACTIVE` - Inactive
    TermsEnum:
      enum:
        - custom
        - net_5
        - net_7
        - net_10
        - net_15
        - net_20
        - net_30
        - net_40
        - net_45
        - net_60
        - net_90
        - net_105
        - net_120
        - due_on_receipt
      type: string
      description: |-
        * `custom` - Custom
        * `net_5` - Net 5
        * `net_7` - Net 7
        * `net_10` - Net 10
        * `net_15` - Net 15
        * `net_20` - Net 20
        * `net_30` - Net 30
        * `net_40` - Net 40
        * `net_45` - Net 45
        * `net_60` - Net 60
        * `net_90` - Net 90
        * `net_105` - Net 105
        * `net_120` - Net 120
        * `due_on_receipt` - Due on Receipt
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````