Campfire Core Accounting API
Operations related to core accounting data, such as the chart of accounts, entity management, and the general ledger.
Operations related to core accounting data, such as the chart of accounts, entity management, and the general ledger.
openapi: 3.0.3
info:
title: Campfire Developer APIs Accounts Payable Core Accounting API
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
tags:
- name: Core Accounting
description: Operations related to core accounting data, such as the chart of accounts, entity management, and the general ledger.
paths:
/coa/api/budgets:
get:
operationId: coa_api_budgets_list
description: "\n Retrieve a list of budgets with optional filtering and sorting.\n\n Supports including soft-deleted records for audit and recovery purposes.\n When include_deleted=true, returns ONLY deleted records instead of active records.\n Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,\n and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.\n This provides clean separation between active and deleted data.\n "
summary: List Budgets
parameters:
- in: query
name: entity
schema:
type: integer
description: Filter by entity ID
- in: query
name: entity_name
schema:
type: string
description: Filter by entity name (partial match)
- 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
- in: query
name: q
schema:
type: string
description: Search query - searches by budget name
- in: query
name: sort
schema:
type: string
default: name
description: 'Sort order. Use field name for ascending, -field for descending. Supports multiple fields separated by comma. Default: name'
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedBudgetList'
description: ''
x-mint:
mcp:
enabled: true
name: get_budgets
description: Retrieve budget information with optional filtering
post:
operationId: coa_api_budgets_create
description: 'Complete mixin for history filtering with pagination support.
Returns either active OR deleted records based on include_deleted parameter.'
summary: Create Budget
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Budget'
multipart/form-data:
schema:
$ref: '#/components/schemas/Budget'
required: true
security:
- knoxApiToken: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
description: ''
/coa/api/budgets/{budget_pk}/accounts:
get:
operationId: coa_api_budgets_accounts_list
description: "\n Retrieve a list of budget accounts with optional filtering and sorting.\n\n Supports including soft-deleted records for audit and recovery purposes.\n When include_deleted=true, returns ONLY deleted records instead of active records.\n Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,\n and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.\n This provides clean separation between active and deleted data.\n "
summary: List Budget Accounts
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
- 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).'
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BudgetAccount'
description: ''
post:
operationId: coa_api_budgets_accounts_create
description: 'Complete mixin for history filtering with pagination support.
Returns either active OR deleted records based on include_deleted parameter.'
summary: Create Budget
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/BudgetAccount'
multipart/form-data:
schema:
$ref: '#/components/schemas/BudgetAccount'
security:
- knoxApiToken: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
description: ''
/coa/api/budgets/{budget_pk}/accounts/{id}:
get:
operationId: coa_api_budgets_accounts_retrieve
summary: Retrieve Budget Account
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
description: ''
put:
operationId: coa_api_budgets_accounts_update
summary: Update Budget Account
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/BudgetAccount'
multipart/form-data:
schema:
$ref: '#/components/schemas/BudgetAccount'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
description: ''
patch:
operationId: coa_api_budgets_accounts_partial_update
summary: Partial Update Budget Account
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedBudgetAccount'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedBudgetAccount'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedBudgetAccount'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BudgetAccount'
description: ''
delete:
operationId: coa_api_budgets_accounts_destroy
summary: Delete Budget Account
parameters:
- in: path
name: budget_pk
schema:
type: integer
required: true
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'204':
description: No response body
/coa/api/budgets/{id}:
get:
operationId: coa_api_budgets_retrieve
summary: Retrieve Budget
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
description: ''
put:
operationId: coa_api_budgets_update
summary: Update Budget
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Budget'
multipart/form-data:
schema:
$ref: '#/components/schemas/Budget'
required: true
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
description: ''
patch:
operationId: coa_api_budgets_partial_update
summary: Partial Update Budget
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedBudget'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedBudget'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedBudget'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Budget'
description: ''
delete:
operationId: coa_api_budgets_destroy
summary: Delete Budget
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'204':
description: No response body
/coa/api/department/bulk-search:
post:
operationId: coa_api_department_bulk_search_create
description: Search for thousands of departments by exact name match in a single request. Optimized for performance. Supports upsert to create missing departments.
summary: Bulk Search Departments by Name
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDepartmentSearch'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/BulkDepartmentSearch'
multipart/form-data:
schema:
$ref: '#/components/schemas/BulkDepartmentSearch'
required: true
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Department'
description: ''
/coa/api/fixed-asset:
get:
operationId: coa_api_fixed_asset_list
description: "\n Retrieve a list of fixed assets with optional filtering and sorting.\n\n Supports including soft-deleted records for audit and recovery purposes.\n When include_deleted=true, returns ONLY deleted records instead of active records.\n Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,\n and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.\n This provides clean separation between active and deleted data.\n "
summary: List Fixed Assets
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
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFixedAssetList'
description: ''
post:
operationId: coa_api_fixed_asset_create
description: "Wraps ``CreateModelMixin.create`` (or any method named ``create``) with\n``Idempotency-Key`` handling.\n\nPlace this mixin **before** the view's other base classes so its ``create``\noverrides the inherited one::\n\n class JournalEntryListCreate(\n IdempotentCreateMixin,\n HistoryFilteringMixin,\n ListCreateAPIView,\n ):\n ..."
summary: Create Fixed Asset
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FixedAsset'
multipart/form-data:
schema:
$ref: '#/components/schemas/FixedAsset'
required: true
security:
- knoxApiToken: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
description: ''
/coa/api/fixed-asset-automation/:
get:
operationId: list_fixed_asset_automations
description: 'List all automation rules or create a new one.
GET /api/fixed-asset-automation/
POST /api/fixed-asset-automation/'
summary: List Fixed Asset Automations
parameters:
- 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
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFixedAssetAutomationRuleList'
description: ''
post:
operationId: create_fixed_asset_automation
description: 'List all automation rules or create a new one.
GET /api/fixed-asset-automation/
POST /api/fixed-asset-automation/'
summary: Create Fixed Asset Automation
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
multipart/form-data:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
required: true
security:
- knoxApiToken: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
description: ''
/coa/api/fixed-asset-automation-match/{id}/:
get:
operationId: get_fixed_asset_automation_match
description: 'Retrieve or update an automation match (for editing proposed values before acceptance).
GET/PATCH /api/fixed-asset-automation-match/<id>/'
summary: Retrieve Fixed Asset Automation Match
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
description: ''
put:
operationId: update_fixed_asset_automation_match
description: 'Retrieve or update an automation match (for editing proposed values before acceptance).
GET/PATCH /api/fixed-asset-automation-match/<id>/'
summary: Update Fixed Asset Automation Match
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
multipart/form-data:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
required: true
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
description: ''
patch:
operationId: partial_update_fixed_asset_automation_match
description: 'Retrieve or update an automation match (for editing proposed values before acceptance).
GET/PATCH /api/fixed-asset-automation-match/<id>/'
summary: Partial Update Fixed Asset Automation Match
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationMatch'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationMatch'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationMatch'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationMatch'
description: ''
/coa/api/fixed-asset-automation/{id}/:
get:
operationId: get_fixed_asset_automation
description: 'Retrieve, update, or delete an automation rule.
GET/PUT/PATCH/DELETE /api/fixed-asset-automation/<id>/'
summary: Retrieve Fixed Asset Automation
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
description: ''
put:
operationId: update_fixed_asset_automation
description: 'Retrieve, update, or delete an automation rule.
GET/PUT/PATCH/DELETE /api/fixed-asset-automation/<id>/'
summary: Update Fixed Asset Automation
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
multipart/form-data:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
required: true
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
description: ''
patch:
operationId: partial_update_fixed_asset_automation
description: 'Retrieve, update, or delete an automation rule.
GET/PUT/PATCH/DELETE /api/fixed-asset-automation/<id>/'
summary: Partial Update Fixed Asset Automation
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationRule'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationRule'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedFixedAssetAutomationRule'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAssetAutomationRule'
description: ''
delete:
operationId: delete_fixed_asset_automation
description: 'Retrieve, update, or delete an automation rule.
GET/PUT/PATCH/DELETE /api/fixed-asset-automation/<id>/'
summary: Delete Fixed Asset Automation
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'204':
description: No response body
/coa/api/fixed-asset-automation/accounts:
get:
operationId: list_fixed_asset_automation_accounts
description: 'List accounts that are of type FIXED_ASSET for use in automation rule creation.
GET /api/fixed-asset-automation/accounts
This endpoint returns only accounts with account_subtype=''FIXED_ASSET'' to ensure
automation rules are created with appropriate accounts.'
summary: List Fixed Asset Automation Accounts
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
description: No response body
/coa/api/fixed-asset-automation/asset-classes:
get:
operationId: list_fixed_asset_automation_asset_classes
description: 'List fixed asset classes that match a specific account.
GET /api/fixed-asset-automation/asset-classes?account_id=<id>
Filters asset classes to only those where asset_account matches the provided account_id.
This ensures users can only select compatible asset classes for the chosen account.'
summary: List Fixed Asset Automation Asset Classes
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
description: No response body
/coa/api/fixed-asset-automation/matches:
get:
operationId: list_fixed_asset_automation_matches
description: 'List pending asset matches for review.
GET /api/fixed-asset-automation/matches'
summary: List Fixed Asset Automation Matches
parameters:
- 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
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFixedAssetAutomationMatchList'
description: ''
/coa/api/fixed-asset-automation/run:
post:
operationId: run_fixed_asset_automation
description: 'Trigger automation processing.
POST /api/fixed-asset-automation/run
Optional body: {"rule_id": 123}'
summary: Run Fixed Asset Automation
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
description: No response body
/coa/api/fixed-asset/{id}:
get:
operationId: coa_api_fixed_asset_retrieve
summary: Retrieve Fixed Asset
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
description: ''
put:
operationId: coa_api_fixed_asset_update
summary: Update Fixed Asset
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FixedAsset'
multipart/form-data:
schema:
$ref: '#/components/schemas/FixedAsset'
required: true
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
description: ''
patch:
operationId: coa_api_fixed_asset_partial_update
summary: Partial Update Fixed Asset
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedFixedAsset'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedFixedAsset'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedFixedAsset'
security:
- knoxApiToken: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FixedAsset'
description: ''
delete:
operationId: coa_api_fixed_asset_destroy
summary: Delete Fixed Asset
parameters:
- in: path
name: id
schema:
type: integer
required: true
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'204':
description: No response body
/coa/api/fixed-asset/reconciliation/unmatched-gl:
get:
operationId: list_fixed_asset_reconciliation_unmatched_gl
description: 'Drilldown showing GL transactions NOT linked to any fixed asset.
Returns the journal entries on a control account that cannot be traced
back to a specific asset''s purchase, depreciation, or disposal entries.
These are the transactions that make up the "Unmatched GL" amount in
the reconciliation report.'
summary: List Unmatched GL Transactions for Fixed Asset Reconciliation
tags:
- Core Accounting
security:
- knoxApiToken: []
responses:
'200':
description: No response body
/coa/api/intercompany-journal-entry:
get:
operationId: coa_api_interc
# --- truncated at 32 KB (282 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/campfire/refs/heads/main/openapi/campfire-core-accounting-api-openapi.yml