All requests in this flow assume you have a valid access token attached in your request headers. See our authentication guide for more information.

Creating a Journal Entry

This section will guide you through the process of creating a single entity journal entry in Campfire.
1

Fetch related data

We’ll need to grab some object references for related objects to create our journal. We’ll need to pass in the id’s of the related objects where applicable in the journal creation request. Linked here are the filter endpoints for the applicable objects. These include:
2

Assemble the request

We can now create our request body by filling in the related fields. Here are the required fields:
FieldDescriptionExample
dateJournal entry date in YYYY-MM-DD format"2025-08-01"
typeJournal entry type"journal_entry"
transactionsArray of transaction items for the journalSee transaction fields below
memoJournal entry memo"Journal Memo"
reversal_dateReversal date in YYYY-MM-DD format, will post a reversing journal if provided (optional)"2025-08-02"
entityID from entity"54"
currencyISO Currency code of the journal"USD"
exchange_rate_bookExchange rate between transactional and entity currency (auto-computed if not provided)1.23
exchange_rateExchange rate between entity and consolidation currency (auto-computed if not provided)1.23
Transaction Fields:
FieldDescriptionExample
tagsArray of custom dimension field IDs (optional)[{"id": "7737"}]
accountID from accounts"180564"
debit_amount_nativeDebit amount in native currency (required)1000
debit_amount_bookDebit amount in book currency (optional: auto-computed if not provided)1000
debit_amountDebit amount in consolidation currency (optional: auto-computed if not provided)1000
credit_amount_nativeCredit amount in native currency (required)1000
credit_amount_bookCredit amount in book currency (optional: auto-computed if not provided)1000
credit_amountCredit amount in consolidation currency (optional: auto-computed if not provided)1000
bank_descriptionTransaction description"Line 1 Desc"
vendorID from vendor (optional)"34182"
departmentID from department (optional)"3613"
Each transaction can only have either it’s debit (debit_amount_native, debit_amount_book, debit_amount) or credit (credit_amount_native, credit_amount_book, credit_amount) amount set. But not both.
Example request body:
{
    "date": "2025-08-01",
    "type": "journal_entry",
    "transactions": [
        {
            "tags": [
                {
                    "id": "7737"
                }
            ],
            "account": "180564",
            "debit_amount_native": 1000,
            "debit_amount_book": 1000,
            "debit_amount": 1000,
            "bank_description": "Line 1 Desc",
            "vendor": "34182",
            "department": "3613"
        },
        {
            "tags": [
                {
                    "id": "8330"
                }
            ],
            "account": "8856",
            "credit_amount_native": 1000,
            "credit_amount_book": 1000,
            "credit_amount": 1000,
            "bank_description": "Line 2 Desc",
            "vendor": "111883",
            "department": "3436"
        }
    ],
    "memo": "Journal Memo",
    "reversal_date": "2025-08-02",
    "entity": "54",
    "currency": "USD",
    "exchange_rate_book": 1,
    "exchange_rate": 1
}
3

Post the journal entry

Now that we have the request we can post it via the Create Journal Entry endpoint.Congrats! You’ve created your first journal entry!

Creating an Intercompany Journal Entry

This section will guide you through the process of creating an intercompany journal entry in Campfire. It is largely the same as a regular journal, with a few distinct differences.
1

Fetch related data

We’ll need to grab some object references for related objects to create our journal. We’ll need to pass in the id’s of the related objects where applicable in the journal creation request. Linked here are the filter endpoints for the applicable objects. These include:
2

Assemble the request

We can now create our intercompany request body by filling in the related fields. Here are the required fields:
For intercompany journals, you must specify an entity for each transaction AND include an entities section with exchange rates for each entity involved.
FieldDescriptionExample
dateJournal entry date in YYYY-MM-DD format"2025-07-01"
typeJournal entry type"journal_entry"
transactionsArray of transaction items for the journalSee transaction fields below
memoJournal entry memo"Interco Journal Desc"
currencyISO Currency code of the journal"USD"
reversal_dateReversal date in YYYY-MM-DD format (optional)"2025-07-02"
entitiesRequired for intercompany: Object with exchange rates for each entitySee entities section below
Transaction Fields:
FieldDescriptionExample
entityRequired for intercompany: ID from entity for this transaction54
tagsArray of custom dimension field IDs (optional)[{"id": "8330"}]
accountID from accounts"180564"
debit_amount_nativeDebit amount in native currency (required)1000
debit_amount_bookDebit amount in book currency (optional: auto-computed if not provided)1000
debit_amountDebit amount in consolidation currency (optional: auto-computed if not provided)1000
credit_amount_nativeCredit amount in native currency (required)1000
credit_amount_bookCredit amount in book currency (optional: auto-computed if not provided)728.33
credit_amountCredit amount in consolidation currency (optional: auto-computed if not provided)1000
bank_descriptionTransaction description"Line 1 Desc"
vendorID from vendor (optional)"111883"
departmentID from department (optional)"3046"
Entities Section:
FieldDescriptionExample
idEntity ID5
exchange_rateExchange rate between entity and consolidation currency1.373
exchange_rate_bookExchange rate between transactional and entity currency0.728332
Each transaction can only have either its debit (debit_amount_native, debit_amount_book, debit_amount) or credit (credit_amount_native, credit_amount_book, credit_amount) amount set. But not both.
Example request body:
{
    "date": "2025-07-01",
    "type": "journal_entry",
    "transactions": [
        {
            "tags": [
                {
                    "id": "8330"
                }
            ],
            "entity": 54,
            "account": "180564",
            "debit_amount_native": 1000,
            "debit_amount_book": 1000,
            "debit_amount": 1000,
            "bank_description": "Line 1 Desc",
            "vendor": "111883",
            "department": "3046"
        },
        {
            "tags": [
                {
                    "id": "8211"
                }
            ],
            "entity": 5,
            "account": "7409",
            "credit_amount_native": 1000,
            "credit_amount_book": 728.33,
            "credit_amount": 1000,
            "bank_description": "Line 2 Desc",
            "vendor": "22327",
            "department": "3436"
        },
        {
            "entity": 5,
            "tags": [],
            "debit_amount_native": 1000,
            "debit_amount_book": 728.33,
            "debit_amount": 1000,
            "account": "7405",
            "bank_description": "Line 3 Desc"
        },
        {
            "entity": 54,
            "tags": [],
            "credit_amount_native": 1000,
            "credit_amount_book": 1000,
            "credit_amount": 1000,
            "account": "8856",
            "bank_description": "Line 4 Desc"
        }
    ],
    "memo": "Interco Journal Desc",
    "currency": "USD",
    "reversal_date": "2025-07-02",
    "entities": {
        "5": {
            "id": 5,
            "exchange_rate": 1.373,
            "exchange_rate_book": 0.728332
        },
        "54": {
            "id": 54,
            "exchange_rate": 1,
            "exchange_rate_book": 1
        }
    }
}
3

Post the intercompany journal entry

Now that we have the request we can post it via the Create Intercompany Journal Entry endpoint.Congrats! You’ve created your first intercompany journal entry!