From qbo-integration
Contains verified 15-AccountType-to-125-DetailType mapping tables with Form 1120 line-by-line tax mapping, system/protected account restrictions matrix (A/R single-default architecture, OBE clearing, Retained Earnings auto-calculation), and full QBO Account API CRUD reference with python-quickbooks batch patterns. QBO chart of accounts, account type selection, detail type, Prep for Taxes, C-corp equity, holding company COA template, CSV JE import account matching. Consult when creating or fixing QBO accounts, choosing account type or detail type, mapping accounts to Form 1120 lines, setting up C-corp equity (Common Stock, APIC, Treasury Stock, dividends), clearing Opening Balance Equity, troubleshooting Retained Earnings behavior, merging or consolidating duplicate accounts, hitting the 250-account limit, importing journal entries via CSV or API, diagnosing "Line Account Invalid" or "Account Does Not Exist" errors, recording federal income tax expense for a C-corp, or batch-creating accounts via the QBO API.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qbo-integration:qbo-coaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
QuickBooks Online implements chart of accounts through a two-level classification system
references/coa-holding-company-template.mdreferences/cpa-qbo-coa-recommendations.mdreferences/qbo-account-types-tax-mapping.mdreferences/qbo-api-account-management.mdreferences/qbo-community-coa-pitfalls.mdreferences/qbo-je-import-account-matching.mdreferences/qbo-official-coa-guidance.mdreferences/qbo-special-accounts-behavior.mdQuickBooks Online implements chart of accounts through a two-level classification system
(Account Type + Detail Type) that controls financial statement placement, Prep for Taxes
auto-mapping, and report structure. This skill covers QBO-specific COA mechanics. For
platform-agnostic COA design principles, GAAP account taxonomy, numbering conventions,
Form 1120 line mapping rationale, and book-tax differences, invoke
accounting-foundation:chart-of-accounts.
QBO has exactly 15 account types grouped into 5 classifications. Account type is the most consequential field on any account -- it determines which financial statement section the account appears in and cannot be changed once subaccounts exist beneath it.
Asset (Balance Sheet)
Liability (Balance Sheet)
Equity (Balance Sheet)
Revenue (P&L)
Expense (P&L)
Each account type has a fixed set of detail types (~125 API values, ~154 in UI). Detail types cannot be created, edited, or deleted by users. They are Intuit's invention for guiding account selection.
What detail types affect:
What detail types do NOT affect:
Always set the correct detail type even though the immediate financial impact is minimal -- wrong detail types cause Prep for Taxes to auto-map accounts to wrong Form 1120 lines, creating year-end tax prep rework.
When the tax form is set to Form 1120, QBO suggests C-corp-specific equity detail types. Required equity accounts for a C-corporation:
Do NOT use the AccumulatedAdjustment detail type -- it is S-Corp specific (Form 1120S Schedule M-2).
C-corp federal income tax is NOT a deductible business expense on Form 1120. Incorrect classification is one of the most common C-corp mistakes in QBO.
Correct two-account pattern:
If recorded as a regular Expense (with detail type TaxesPaid), it will incorrectly inflate deductions when tax data is exported to ProConnect and cause Schedule M-1 errors.
Apply the same pattern for state income taxes using StateLocalIncomeTaxPayable.
Set via Gear > Account and Settings > Advanced > Accounting > Income tax form used. For C-corps, select "Form 1120 (C Corporation)." This controls:
Critical constraint: Changing the tax form setting after initial setup unmaps ALL previously assigned tax line associations. Transaction data is unaffected, but all tax-line linkages must be redone.
QBO does not have Desktop-style per-account tax line mapping. The replacement is "Prep for Taxes" in QuickBooks Online Accountant, which auto-maps accounts to Form 1120 lines based on account type and detail type, then exports to ProConnect Tax Online.
Workflow: Open QBOA > client file > Prep for Taxes > review auto-mapped assignments > manually correct unmapped or mis-mapped accounts > export to ProConnect.
Accounts with unusual or ambiguous detail types require manual review. Always verify auto-assignments before exporting. Accounts auto-map correctly only when account type AND detail type are both correct.
Key mappings from QBO account types to Form 1120 lines (see
references/qbo-account-types-tax-mapping.md for the complete table):
Income lines:
Deduction lines:
Balance sheet (Schedule L):
QBO auto-creates approximately 12 accounts at company setup plus additional accounts when features are activated. Several cannot be deleted, renamed, or made inactive.
Undeposited Funds -- Other Current Assets. Holding account for payments before bank deposit. Cannot be deleted or inactivated. Common pitfall: bypassing this account by recording deposits directly to income overstates income. Balance should be zero after all payments are deposited; non-zero balance means incomplete deposit recording.
Retained Earnings -- Equity. Auto-calculated at report runtime. No transaction register. Cannot be inactivated. The invisible year-end close transfers prior-year net income automatically on the first day of the new fiscal year. For prior-period adjustments, post to a separate equity adjustment account rather than directly to Retained Earnings to preserve auto-calculation integrity.
Opening Balance Equity -- Equity. QBO credits/debits OBE as a placeholder when only one side of an opening balance is entered. Cannot be deleted. Target: $0 balance. Clear to appropriate equity accounts (Common Stock, APIC, Retained Earnings) via JE after setup is complete. A non-zero OBE balance on any balance sheet after setup indicates unresolved entry errors.
Unapplied Cash Payment Income / Unapplied Cash Bill Payment Expense -- System accounts for cash-basis reporting. Appear when payment dates precede invoice/bill dates. Cannot be deleted. Journal entries do NOT fix these -- they affect both cash and accrual. The correct fix is date correction: ensure invoice dates precede payment dates.
Uncategorized Income / Expense / Asset -- System catch-alls. Cannot be deleted. Balances here indicate unclassified bank feed transactions. Must be reclassified before period close.
QBO routes ALL invoices to the single default A/R account and ALL bills to the single default A/P account. Creating additional A/R or A/P accounts does NOT integrate them into the invoice/bill workflow:
Rule: Use one A/R account and one A/P account. Use sub-customers, classes, or locations for dimensional tracking instead of multiple A/R/A/P accounts.
Account type determines financial statement placement. Wrong type = both statements wrong.
Fix difficulty escalates with time. You can change account type after posting, but NOT if subaccounts exist beneath the account (error: "Cannot change the type of an account with subaccounts"). Fix subaccount types first, then the parent.
Created via manual entry with slightly different names, CSV re-import, or bank feed reconnection. Transactions fragment across duplicates, making reports inaccurate.
Merge is permanent and irreversible. Before merging: export reconciliation reports as PDFs. Merge deletes reconciliation reports for the absorbed account. Merge blockers: connected to online banking, used by a product/service, has subaccounts, mismatched detail types.
Renaming an account to exactly match another account's name triggers QBO's merge prompt. If accepted, the merge is irreversible. Always verify the new name is unique before renaming.
Posting to a parent account does NOT update subaccount balances. Posting to subaccounts rolls up to the parent. Post only to leaf-level subaccounts; never post to parent accounts directly. Bank feeds cannot connect simultaneously to parent and subaccounts.
Income appears above gross profit on the P&L (Form 1120 Lines 1-3). Other Income appears below operating income (Form 1120 Lines 4-10). Primary operating revenue must use the Income type. Non-operating items (interest, dividends, capital gains) use Other Income. Misclassification distorts gross profit, operating income, and Prep for Taxes auto-mapping.
Account numbers are OFF by default. Enable via Gear > Account and Settings > Advanced > Chart of Accounts > Enable account numbers. Optionally enable "Show account numbers" for reports and transactions.
Numbers are informational metadata -- they control sort order and display but do not affect QBO matching or lookup. The API always matches by account Id, not AcctNum. Numbers are stored and returned by the API regardless of whether the UI feature is enabled.
Important for CSV JE import: account numbers must be disabled before importing journal entries via CSV, then re-enabled after import. The CSV importer matches by exact account name string, and enabled account numbers interfere with matching.
Exact string match only -- no fuzzy matching, no case-insensitive fallback. The Account Name column must match the QBO COA entry character-for-character including capitalization, spacing, and punctuation. Referencing a nonexistent account fails the entire batch with "Account Does Not Exist."
Subaccounts in CSV require Parent:Child colon notation with no spaces around the
colon. The native CSV importer has known issues with subaccount posting -- "Line Account
Invalid" errors even when the subaccount exists. Workarounds: temporarily flatten
subaccounts, use the API, or use third-party importers (SaasAnt, Transaction Pro).
Pre-import checklist: All referenced accounts exist in QBO COA. Account numbers disabled. Every JE balances (debits = credits). A/R lines include Customer name; A/P lines include Vendor name. No negative amounts (use opposite column). Max 1,000 rows per file.
The API matches by numeric account Id (AccountRef.value), not name. Workflow: query
accounts to resolve names to Ids, then use Ids in JournalEntry line items. The API accepts
subaccount Ids without restriction (no "Line Account Invalid" issue). Accounts must be
pre-created via the Account API before they can be referenced in JEs -- QBO does not
auto-create accounts from JE payloads.
Rate limits: 500 requests/minute per realm. Batch API accepts up to 30 operations per request (counts as 1 API call). A full COA of 100-150 accounts can be created in 3-5 batch calls with no throttling concern.
Minimum required fields: Name (max 100 chars, no colons) and AccountType (exact enum
string). AccountSubType is optional but strongly recommended -- if omitted, QBO assigns
a default.
API AccountType strings (case-sensitive): Bank, AccountsReceivable,
OtherCurrentAsset, FixedAsset, OtherAsset, AccountsPayable, CreditCard,
OtherCurrentLiability, LongTermLiability, Equity, Income, CostOfGoodsSold,
Expense, OtherIncome, OtherExpense.
Note: The API string is CostOfGoodsSold (capital O in "Of") but appears as
CostofGoodsSold in some SDK documentation. Verify against the current API reference.
Name uniqueness: Names must be unique within the same parent level. Error 6240 ("Duplicate Name Exists") on conflict. If an AccountSubType is invalid for the given AccountType, the API returns "Invalid Enumeration."
All updates require Id and SyncToken. Always fetch the current account object before
updating to get the current SyncToken (stale token = conflict error). Use sparse: true
for partial updates to avoid nulling out omitted fields.
Not supported via API. Merge is UI-only (accountant view). Both accounts must have identical AccountType and AccountSubType. Merge is triggered by renaming one account to match the other. Reconciliation reports for the absorbed account are permanently deleted.
Set Active = false. System accounts (A/R, A/P, Retained Earnings, OBE, Undeposited
Funds) cannot be deactivated. Banking-connected accounts cannot be deactivated until the
connection is removed. Accounts with active subaccounts cannot be deactivated until
subaccounts are deactivated first.
For investment holding companies structured as C-corps, the COA emphasizes investment assets and income with minimal operating expenses. Key structural differences from operating companies:
For foreign-owned corporations (25%+ foreign ownership), add sub-accounts to track
Form 5472 reportable transactions by category. See
references/coa-holding-company-template.md for the complete account listing with API
type/subtype values and python-quickbooks code patterns.
Read these for deeper detail on specific topics:
references/qbo-account-types-tax-mapping.md -- Complete enumeration of all 15 QBO
account types, ~125 API detail types, and full Form 1120 line-by-line mapping tables
(income, COGS, deductions, Schedule L). Read when you need the exact detail type for a
specific Form 1120 line or when verifying Prep for Taxes auto-mapping correctness.
references/qbo-official-coa-guidance.md -- Official Intuit documentation on COA
structure, default vs custom accounts, account lifecycle (rename, merge, inactivate),
account limits, naming conventions, and entity-specific account setup. Read when you
need official Intuit guidance on a specific COA operation or want to cite Intuit's
recommended approach.
references/qbo-special-accounts-behavior.md -- Deep dive into system account
mechanics: A/R and A/P default-only architecture, OBE clearing procedures, Retained
Earnings auto-calculation, Undeposited Funds workflow, unapplied cash payment accounts,
and the full restrictions matrix. Read when troubleshooting system account behavior or
planning historical reconstruction workflows.
references/qbo-community-coa-pitfalls.md -- Community-reported problems: account type
errors, duplicate accounts, merge destruction, rename side effects, parent/subaccount
imbalances, CSV import failures, negative balance investigation, and the 250-account
limit. Read when diagnosing a COA problem or advising on error prevention.
references/qbo-api-account-management.md -- Complete API reference for account CRUD:
all Account entity fields, valid AccountType-to-AccountSubType mappings, create/update/
deactivate operations, batch API usage, rate limits, name uniqueness rules, and common
API errors. Read when building or scripting COA operations via the QBO API.
references/qbo-je-import-account-matching.md -- Account matching rules for CSV and
API journal entry imports: exact string match requirements, subaccount colon notation,
CSV format rules, A/R/A/P name requirements, field length limits, multi-year historical
import strategy, and pre-import checklist. Read when planning a JE import or diagnosing
import failures.
references/cpa-qbo-coa-recommendations.md -- CPA and ProAdvisor best practices:
consolidation vs. granularity guidance, C-corp-specific account setup for Form 1120,
Prep for Taxes workflow, account naming conventions, classes vs. sub-accounts decision
framework, COA templates, and ongoing maintenance recommendations. Read when designing
a new COA or reviewing an existing one for best-practice alignment.
references/coa-holding-company-template.md -- Complete COA template for C-corp
holding/investment companies with QBO API type/subtype values, python-quickbooks code
for account creation and investment transaction recording (purchases, sales with
gain/loss, dividends), intercompany transaction patterns, and Form 5472 tracking for
foreign-owned corporations. Read when setting up a holding company or investment entity.
For platform-agnostic COA knowledge:
accounting-foundation:chart-of-accounts for GAAP account type taxonomy,
numbering conventions (4-digit ranges with gap strategy), hierarchical COA design,
C-corp equity account structure, Form 1120 tax-line mapping rationale, and book-tax
difference analysis. That skill covers the conceptual "what and why"; this skill covers
the QBO-specific "how."For related QBO integration:
qbo-integration:qbo-api for general QBO API authentication, connection setup,
and non-COA API operationsqbo-integration:qbo-reporting for QBO report configuration that depends on COA
structureFor downstream consumers:
bookkeeping:transaction-processing uses QBO account classifications for categorizationtax-prep:form-1120-prep uses QBO account-to-tax-line mappings for return preparationtax-prep:tax-planning uses QBO COA structure for book-tax difference analysisnpx claudepluginhub aeyeops/aeo-basis-plugin-marketplace --plugin qbo-integrationProvides QuickBooks Online API patterns for OAuth2 authentication, REST endpoints, Intuit query language, pagination, rate limiting, error handling, minor versions, base URLs, and sandbox/production setups.
Guides financial statement preparation, analysis, and plain-language explanation of accounting concepts for small business owners.
Automates QuickBooks Online operations including creating invoices, managing customers, and querying accounts for streamlined bookkeeping.