> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.tabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.tabs.com/_mcp/server.

# Connecting Campfire

The Tabs and Campfire integration lets Tabs sync invoicing, customer, and accounting data with Campfire.

Once connected, Tabs can:

* Sync customers between systems
* Push invoices and credit memos to Campfire
* Import products, chart of accounts, and departments from Campfire
* Sync payments both ways
* Push journal entries during month-end close workflows

Tabs pulls data from Campfire on a scheduled basis and pushes transactional data as activity occurs in Tabs. There is no OAuth flow — you connect with a Campfire API key.

## Before you start

You need:

* Admin access in Tabs
* A Campfire user with the **Super User Admin** role — that role unlocks Campfire's API docs and API Keys settings
* The Campfire **legal entity** this Tabs instance should book against, if the account has more than one
* Products and a chart of accounts already set up in Campfire, including a clearing account (for example Undeposited Funds) and revenue accounts
* [Close Management](/close-management) enabled in Tabs if you plan to sync journal entries to Campfire

Create products in Campfire before using them in Tabs. Tabs imports products; it does not create them.

One Tabs instance maps to one Campfire legal entity. The entity cannot be changed after you save it.

If you do not see a **Campfire** tile on the Integrations page, contact your Tabs implementation manager. The integration is enabled per merchant.

## Step 1: Create an API key in Campfire

Sign in as a **Super User Admin**. Without that role, Campfire does not unlock API docs or API Keys.

Use a dedicated API user with the **admin** role. Clerk and view-only keys cannot push invoices, payments, or journal entries.

In Campfire:

1. Go to [Settings → API Keys](https://app.meetcampfire.com/v2/settings/api-keys)
2. Click **Create User**
3. Enter a name, email, and role of **admin**
4. Click **Create API Key** on that user
5. Copy the key and store it securely — Campfire shows it only once

See Campfire's documentation: [Getting authenticated](https://docs.campfire.ai/quickstart).

## Step 2: Connect Campfire in Tabs

1. In Tabs, go to **Settings → Integrations**
2. Select the **Campfire** tile and click **Connect**
3. In the **Connect to Campfire** dialog, paste your API key
4. Click **Connect**

Tabs validates the key with a live Campfire read before saving it. On success, you see **Campfire connected successfully!** and the tile shows **Manage** instead of **Connect**.

If the key is invalid, the dialog shows **API Key is invalid** under the field and nothing is saved. If Campfire is temporarily unavailable, retry before rotating the key.

If your Campfire account has exactly one legal entity, Tabs selects it during connect.

## Step 3: Set your Campfire entity

This step appears when your Campfire account has more than one entity. Every invoice, credit memo, and journal entry books to the entity you choose.

1. On the Integrations page, click **Manage** on the Campfire tile
2. In **Entity mapping**, select the entity Tabs should sync to
3. Click **Save**
4. Confirm the dialog: you are selecting a Campfire entity that **cannot be changed after saving**

Saving the entity triggers the first full pull from Campfire (customers, products, chart of accounts, departments, invoices, and payments).

If the Campfire tile does not have a **Sync** button, use **Sync ERP** on the Tabs dashboard home page to pull data immediately. Later pulls run on the scheduled sync.

## Step 4: Configure default accounts

After the first pull, stay on the Campfire detail page and set:

* **Undeposited Funds** — the clearing account payments are recorded against. A payment push fails if this is not set.
* **Earned Revenue** — the fallback GL account for credit-memo lines whose item has no revenue account
* **GL reconciliation accounts** (bad debt, bank fees) if you use over or short payment write-offs

If the dropdowns are empty, the first pull has not finished. Trigger **Sync ERP** and wait, then return to this page.

See [Account mapping](/erp-account-mapping#account-mapping) for how these mappings work across ERPs.

## Step 5: Map products to Campfire

Every billing term needs an **Integration item** set to a Campfire product that has synced into Tabs. An invoice with an unmapped line fails to push.

1. Create the product in Campfire first
2. Sync from Campfire so the product appears in Tabs
3. On the Tabs product, set **Integration item** to the matching Campfire product

This is the most common invoice push failure. Walk through your catalog before go-live.

Campfire customers appear in Campfire's **vendor** list with a customer type. There is no separate customers section.

## Step 6: Validate the integration

Validate the following before going live.

### Customer sync

* Create or update a customer in Tabs
* Confirm the customer appears in Campfire under vendors (customer type)

### Invoice sync

* Send a test invoice from Tabs
* Confirm the invoice appears in Campfire with the Tabs invoice number
* Confirm the customer received the invoice email from Tabs only

Draft invoices do not sync. Resetting a sent invoice **deletes** it in Campfire rather than voiding it. Re-sending creates it fresh. Zero-dollar invoices are skipped and never pushed.

### Credit memo sync

* Apply a credit memo in Tabs
* Confirm it syncs to Campfire
* Confirm you can use **Remove credit** in Tabs to unapply it if needed

### Payment sync

* Record a test payment in Tabs
* Confirm the payment appears in Campfire, deposited to the Undeposited Funds account you configured

Payments recorded in Campfire can pull back to Tabs on the next sync. Pulled payments may show a blank payment method — Campfire does not expose card versus check on the payment object.

### Journal entry sync

* Run a month-end close workflow in Tabs
* Confirm journal entries appear in Campfire, dated the last day of the period

Tabs posts **one Campfire journal entry per customer per currency**. A period with 10 customers produces 10 entries — that is expected, not duplication. Pushing revenue does not close the period in Campfire; you still close the books there.

See [Close Management](/close-management) for the month-end close workflow.

If you experience issues connecting or validating the integration, contact Tabs Support.

## Related resources

* [ERP & Account Mapping](/erp-account-mapping) — sync behavior, integration items, and account mapping
* [Close Management](/close-management) — revenue journal entries
* [Integration Overview](/integration-overview) — integration landscape and setup models