> ## 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 Bill Payments

> 
        Retrieve a paginated list of bill payments (payments applied against accounts
        payable bills), designed for syncing payment data into external systems.

        Results are ordered by (last_modified_at, id) ascending, so pages are stable and
        a sync can resume from where it left off.

        **Full sync (cursor pagination):**
        - Pass an empty cursor parameter (cursor=) on the first request
        - Follow the 'next' URL from each response until it is null

        **Incremental sync (time-based):**
        - Store the highest last_modified_at value you have processed
        - On the next run, pass it as last_modified_at__gte to fetch only new and updated payments

        **Voids:**
        - Voided payments are included by default with voided_date set, so integrators can
          detect payments that were reversed after a previous sync
        - Filter with voided=true or voided=false to fetch only one kind
        



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json get /coa/api/v1/bill-payments
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/bill-payments:
    get:
      tags:
        - Accounts Payable
      summary: List Bill Payments
      description: |2-

                Retrieve a paginated list of bill payments (payments applied against accounts
                payable bills), designed for syncing payment data into external systems.

                Results are ordered by (last_modified_at, id) ascending, so pages are stable and
                a sync can resume from where it left off.

                **Full sync (cursor pagination):**
                - Pass an empty cursor parameter (cursor=) on the first request
                - Follow the 'next' URL from each response until it is null

                **Incremental sync (time-based):**
                - Store the highest last_modified_at value you have processed
                - On the next run, pass it as last_modified_at__gte to fetch only new and updated payments

                **Voids:**
                - Voided payments are included by default with voided_date set, so integrators can
                  detect payments that were reversed after a previous sync
                - Filter with voided=true or voided=false to fetch only one kind
                
      operationId: coa_api_v1_bill_payments_list
      parameters:
        - in: query
          name: cursor
          schema:
            type: string
          description: >-
            Opts into cursor pagination. Pass an empty value (cursor=) on the
            first request, then follow the 'next' URL from each response until
            it is null. The cursor value is opaque - do not parse or construct
            it. Cursor pagination is recommended for full syncs as it avoids the
            performance penalty of deep offsets on large result sets.
        - in: query
          name: last_modified_at__gte
          schema:
            type: string
          description: >-
            Filter for payments modified on or after this timestamp. Format: ISO
            8601 (e.g., '2024-01-01T00:00:00Z' or '2024-01-01'). Use this for
            incremental syncs: store the highest last_modified_at you have
            processed and pass it on the next sync run.
        - in: query
          name: last_modified_at__lte
          schema:
            type: string
          description: >-
            Filter for payments modified on or before this timestamp. Format:
            ISO 8601 (e.g., '2024-12-31T23:59:59Z' or '2024-12-31'). Date-only
            values are inclusive of the entire day.
        - in: query
          name: limit
          schema:
            type: integer
            default: 100
          description: >-
            Maximum number of records to return per page. Default 100, maximum
            10000. Use with offset to paginate
        - in: query
          name: offset
          schema:
            type: integer
            default: 0
          description: >-
            Number of records to skip before collecting the result page. Use
            with limit to paginate
        - in: query
          name: skip_count
          schema:
            type: boolean
            default: false
          description: >-
            When 'true', skips the total COUNT query and returns a lower-bound
            'count' instead. Recommended for large syncs where the exact total
            is not needed.
        - in: query
          name: voided
          schema:
            type: boolean
          description: >-
            Filter by void status. When 'true', returns only voided payments
            (voided_date is set). When 'false', returns only active payments.
            When omitted, returns both so integrators can detect and propagate
            voids.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBillPaymentSyncList'
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    PaginatedBillPaymentSyncList:
      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/BillPaymentSync'
    BillPaymentSync:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        bill_id:
          type: integer
          readOnly: true
        bill_number:
          type: string
          readOnly: true
        amount:
          type: number
          format: double
          maximum: 1000000000000000000
          minimum: -1000000000000000000
          exclusiveMaximum: true
          exclusiveMinimum: true
          readOnly: true
        currency:
          type: string
          readOnly: true
        payment_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        source:
          type: string
          readOnly: true
          nullable: true
        source_id:
          type: string
          readOnly: true
          nullable: true
        voided_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - amount
        - bill_id
        - bill_number
        - created_at
        - currency
        - id
        - last_modified_at
        - payment_date
        - source
        - source_id
        - voided_date
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````