Feature Not Available" Error When Adding Customers with Classes
QuickBooks rejects customer imports that include class assignments when class tracking for names is disabled. Enabling the preference resolves the error immediately.

Developers and data-import users hitting a wall with the message “this feature is not enabled or not available in this version of QuickBooks” while adding customers are almost certainly running into a company-file preference setting, not a software limitation.
The error surfaces during programmatic customer creation — typically through an integration built on the QuickBooks SDK — when the request includes a class reference field. QuickBooks blocks the operation because the company file is not configured to accept class assignments on customer, vendor, or other name records. The fix lives entirely inside the desktop preferences dialog and requires no upgrade, reinstall, or data repair.
What Triggers the Error
The message appears when a data request attempts to assign a class to a customer record, but the target company file has class tracking turned off — or, more precisely, has not been set to allow classes on names rather than just transactions. QuickBooks treats this as a feature-availability check: if the preference is disabled, the class-related fields in the request are rejected outright, and the entire add operation fails.
The developer who reported this issue traced the failure to a specific class-reference element in their customer-add request. Removing that element allowed the operation to succeed, confirming that the class field was the sole cause. The error wording is misleading because it implies a version or edition limitation, when in reality the feature exists in the product but is simply switched off at the file level.
The Fix: Enabling Class Assignment for Names
Open the company file in QuickBooks Desktop and navigate to Edit → Preferences → Accounting → Company Preferences. Look for the class-tracking section. Two things must be true:
- Class tracking itself must be enabled.
- The option to assign classes to names (customers, vendors, employees, and other name types) must be checked.
If class tracking is on but only configured for transactions — not for names — the error will persist. The distinction matters because QuickBooks lets you track classes on sales forms and other transactions without allowing them on the underlying name records. Both settings are independent checkboxes in the same preferences pane.
Once the preference is saved, re-running the same import request that previously failed should complete without the error. No changes to the request structure are necessary beyond what was already in place.
Checking Preferences Programmatically
For developers building integrations against multiple company files — where you cannot control or predict the preference state ahead of time — the SDK provides a way to query the setting before attempting a class-bearing operation. A preferences query returns the current configuration, and two values in the response tell you whether class-to-name assignment is available:
- Whether class tracking is enabled at all.
- Whether classes are specifically assigned to names rather than only to transactions.
If either value indicates the feature is off, the integration can either skip the class field for that file or prompt the user to adjust the preference before retrying. Building this check into the workflow prevents the error from surfacing as a confusing dead end for end users who may not understand the connection between a desktop preference and an integration failure.
A Common Stumbling Block
This issue ranks among the more frustrating QuickBooks integration problems because the error text points toward version or edition restrictions, leading developers down the wrong troubleshooting path. The SDK version, QuickBooks release level, and product edition are all irrelevant here. The gatekeeper is a single checkbox buried in the accounting preferences, and turning it on takes seconds.
For users managing imports across many company files or rolling out an integration to clients, documenting this requirement upfront can save significant support overhead. The preference is file-specific, meaning it must be enabled individually on every company file that will receive class-tagged customer records through the integration.