Campfire – Gotchas

Service ID: campfire

Modern accounting platform for startups and mid-size tech companies. Features include general ledger, invoicing, billing, revenue accounting, financial statements, and AI-powered reporting.

⚠️

4 gotchas across 2 resources

These are connector-specific behaviors and limitations to be aware of when integrating.

Company Info1 gotcha

onecompanyInfoOne

Campfire does not have a dedicated company info endpoint. This operation returns the first entity (subsidiary) from the entities list. For multi-entity accounts, use the subsidiaries endpoint to get all entities.

Invoices3 gotchas

allinvoicesAll

terms returns the payment term's display name (for example Net 30 or Due on Receipt), and terms_id returns its identifier. Invoices with no payment term set return null for both.

When creating or updating an invoice, set the payment term with terms_id — the display name is read-only and is ignored on write.

addinvoicesAdd

Every invoice line must reference a product. Set line_items[].item.id on each line — if any line omits it, Campfire rejects the entire request with lines[0]: Invoice line must have either a product or a bundle set and no invoice is created. The rejection applies to the whole request, not just the offending line.

Retrieve the values to pass from GET /accounting/invoice-items and use the id it returns. The product must already exist in Campfire; an id that does not resolve is rejected too.

updateinvoicesUpdate

Every invoice line must reference a product. When you send line_items, set line_items[].item.id on each line — if any line omits it, Campfire rejects the entire request with lines[0]: Invoice line must have either a product or a bundle set and no change is applied.

Retrieve the values to pass from GET /accounting/invoice-items and use the id it returns. The product must already exist in Campfire; an id that does not resolve is rejected too.