QuickBooks Online integration
Post bills, inventory adjustments, and daily cost of goods sold directly to QuickBooks Online. No CSV exports, no manual journal entries, no copying numbers between systems.
Getting connected
- 1
Connect QuickBooks Online
Open Settings → Accounting and click Connect QuickBooks Online. You'll be redirected to Intuit to authorize the connection. Grant access to the company you want Carpe Inventory IQ to post to — you can always disconnect later without losing posted history.
- 2
Map your chart of accounts
Click Configure mapping to open the setup page. Pick one account for each posting role: Inventory Asset, Accounts Payable, Cost of Goods Sold, Inventory Adjustment, and Landed Cost. The Landed Cost role should point at an Inventory Asset sub-account (e.g. "Inventory Asset — Freight In") or your main Inventory Asset account — freight and duties are capitalized to inventory under IAS 2 / ASC 330 and recognized in Cost of Goods Sold when the inventory sells.
- 3
Optionally tag sales channels with Classes
If you use QuickBooks Classes to segment your P&L by sales channel, map each channel (Shopify, Amazon FBM, Amazon FBA, Walmart) to the Class that represents it. Leave blank to skip Class tagging — it's optional.
- 4
Post a test bill
Receive a purchase order as you normally would. Within a minute the bill appears in QuickBooks with a PrivateNote tag so your accountant can filter for Carpe-authored documents and review them before approving. QuickBooks bills don't have a separate draft state — the bill exists in QuickBooks immediately, and your accountant marks it as final when they're ready.
What posts, and when
Bills — from purchase-order receipts
Every goods receipt creates a bill in QuickBooks. Inventory rolls up to one line per receipt ("Inventory received from {vendor} — PO# [{number}]") capitalized to Inventory Asset — your inventory system tracks SKU-level detail, QuickBooks only needs the dollar total. Purchase-order adjustments — shipping, duty, fees — appear as separate bill lines capitalized to inventory, pro-rated by received quantity on partial receipts. A DISCOUNT adjustment posts as a negative line on Inventory Asset. Due date is computed from the supplier's payment terms.
Journal Entries — from physical counts
When you post a physical count, any variance against system on-hand creates a journal entry in QuickBooks: shrinkage debits your Inventory Adjustment account and credits Inventory Asset; overage inverts. Your accountant reviews and approves.
Daily Cost of Goods Sold
A scheduled daily job posts one journal entry per day for yesterday's shipped orders, broken down by sales channel. Debits COGS (Class-tagged by channel) and credits Inventory Asset for the total. Posts final — no draft review needed.
When something goes wrong
Failed postings surface in Settings → Accounting with the error message. Click Retry to queue another attempt. A daily health check also verifies the connection and marks it as degraded if your QuickBooks session has expired, so you'll see a prompt to reconnect before any posting silently stalls.
Frequently asked questions
- Why is inbound freight capitalized to inventory instead of expensed?
- Under IAS 2 / ASC 330, inbound freight, duty, brokerage, and insurance are costs directly attributable to bringing inventory to a saleable condition. They are capitalized to inventory on receipt and recognized in COGS when the inventory sells. Expensing them in the period the freight bill is paid would overstate COGS that period and understate inventory on the balance sheet. Map your Landed Cost role to an Inventory Asset sub-account (e.g. "Inventory Asset — Freight In") or your main Inventory Asset account.
- What if a posting fails?
- Every failed posting appears in Settings → Accounting with the error message and a Retry button. Transient errors retry automatically; persistent errors (e.g., a missing account in your mapping) need your attention. Fix the mapping and click Retry.
- Can I disconnect without losing posted history?
- Yes. Disconnecting stops new postings but leaves everything already posted in QuickBooks untouched. The audit trail in Carpe Inventory IQ is preserved. When you reconnect later, posting resumes from that point forward.
- Do I need to use the live integration to export to QuickBooks?
- No. The CSV export path is still available on every report. Use the live integration for continuous posting; use CSV export if you prefer batch-importing monthly or your accountant wants to review everything before it hits the books.
- What about Xero?
- Xero is supported with a separate connector. See the Xero integration help page for setup details.
- How are duplicate postings prevented if a retry happens?
- Every posting carries a stable idempotency key derived from the source event (goods receipt ID, count session ID, or date). If a retry reaches QuickBooks after the original attempt already succeeded, QuickBooks returns the original document instead of creating a duplicate.
Ready to connect?
Open Settings → Accounting in your app to get started.