Overview
Intuit does not provide developers with direct access to the QuickBooks Desktop database. Instead, developers retrieve information through the Intuit Software Development Kit (SDK) and other limited interfaces.
Most QuickBooks data is available, but not everything is stored or exposed
QuickBooks Desktop exposes most available fields through the Intuit SDK. However, some information visible in QuickBooks is calculated when a report runs, stored only as descriptive text, or not made available to developers.
QQube works around many SDK limitations by combining available sources into complete data models. Even so, QQube cannot retrieve information that QuickBooks does not store or that Intuit does not expose.
History of QuickBooks Data Extraction
| Year | Technology | What It Provides |
|---|---|---|
| 2001 | Intuit SDK | An XML-based, hierarchical extraction interface. It is not a direct database connection and can be slow with large QuickBooks company files. |
| 2006 | Custom Reporting | A more direct reporting source for QuickBooks Enterprise. It does not expose all available data and is not an Intuit-supported interface for third-party application development. |
| 2014 | Advanced Reporting | A reporting and visualization feature based on a subset of QlikView. QuickBooks must remain open, and the feature is not available to developers. |
| 2022 | 64-bit Intuit SDK | A 64-bit SDK release that produced little, if any, extraction-performance improvement. |
Intuit's last major SDK release was in 2013. Later releases added relatively few items and focused primarily on writing data to QuickBooks rather than reading it.
Some longstanding SDK defects remain. QQube uses tested workarounds where possible, even when they add extraction time, because data accuracy is the priority.
QQube was introduced in 2010. It is a data warehouse rather than a raw connector. Its data models include organized fields, relationships, calculations, and measures that are not supplied by a basic extraction interface.
QuickBooks Data Storage and Linking Limitations
Information displayed in QuickBooks is not always stored in the same form in the underlying company file. Some values are calculated only when a report is requested. Other relationships are represented only by a status or transaction-level reference.
Important
Do not assume that information visible in QuickBooks is stored as a retrievable field or relationship.
| Unavailable Relationship or History | QuickBooks Behavior |
|---|---|
| Customer invoice to vendor bill | QuickBooks records that a bill item or expense has been billed. It does not store a link to the specific customer invoice where it was billed. |
| Specific inventory cost to customer invoice | The cost of a particular item on a purchase order or bill cannot be linked to a particular item on a customer invoice. |
| Estimate change orders | Change-order information is stored as text in a description field on the original estimate, not as structured records in a separate table. |
| Receive Payment applications | A payment is applied to the transaction as a whole, not to individual transaction lines. |
| Item Categories | Item Categories were introduced in 2023 but have not been made available through the Intuit SDK. |
| Historical purchase-order or sales-order state | QuickBooks does not preserve prior open or closed states for these transactions. |
| Time Tracking to payroll checks | Time Tracking entries may be used to generate payroll, but QuickBooks does not maintain referential integrity between those entries and the resulting payroll checks. |
| Other unavailable links | QuickBooks does not expose a Sales Order-to-Purchase Order link or a Journal Entry-to-Journal Entry link, including reversing journal entries. |
| Balance Sheet by Class | QuickBooks calculates this report when requested. It does not store the class allocation of the balance-sheet amount in a form that can be reverse engineered from General Ledger Detail. QQube runs the QuickBooks report so its results match QuickBooks. |
| Transaction-line item links | Links exposed by QuickBooks are generally between transactions, not individual items. A bill may display a purchase-order number beside an item without identifying the exact purchase-order line to which it refers. |
Specific Fields Not Available Through the Intuit SDK
Payroll Item Information
Payroll item setup information is not available through the Intuit SDK.

Payroll and Compensation Setup
The following payroll and compensation settings are not available:
- Tax setup.
- Direct-deposit setup.

Employee History
The following employee-history fields are not available:
- Raises and promotions.
- Leave of absence.

Employee Termination Information
Employee termination information is not available through the Intuit SDK.

Payroll Dates
Payroll date fields shown in this QuickBooks window are not available through the Intuit SDK.

Payroll Liability Dates
Payroll liability date fields shown in this QuickBooks window are not available through the Intuit SDK.

Template Custom-Field Aliases
Custom-field aliases created under Layout Customization are not available through the Intuit SDK.

Job Status Custom Alias Names
Custom alias names assigned to Job Status values are not available through the Intuit SDK.

Bank Reconciliation Cleared Status
The cleared status displayed during bank reconciliation is not available through the Intuit SDK.

Credit Card Refund Exchange Information
The exchange rate, foreign rate, and exchange gain or loss are not available for Credit Card Refund transactions.

Additional Transaction and Product Limitations
Multi-Currency Credit Card Refunds in Pro and Premier
A defect in the Intuit SDK prevents QQube from retrieving the exchange gain or loss for a Credit Card Refund in QuickBooks Pro and Premier non-US editions. The amount cannot be reliably reconstructed because QuickBooks does not consistently expose how the exchange difference was assigned.
This limitation does not apply to the US edition.

Pending Payments
A payment may be authorized without the funds being captured. QuickBooks then creates a non-posting Receive Payment. The Intuit SDK does not identify the transaction as pending, so it is returned as though it were posted.

Class on Transaction Headers
The header Class Name is not available through the Intuit SDK for these transaction types:
- Item Receipts.
- Bills.
- Vendor Credits.
- Checks.
- Credit Card Charges.
- Credit Card Credits.
Build Assemblies
Build Assembly information contains significant gaps in both the Intuit SDK and Custom Reporting. QQube combines the available information to provide the most important fields for General Ledger Detail, Profit and Loss Detail, and Inventory Analytics.
| QuickBooks Edition | Available Build Assembly Information |
|---|---|
| Enterprise | Provides the most complete available detail, including Class, Unit of Measure, Site, Bin Location, amount, quantity, and serial or lot number. |
| Pro and Premier | Does not provide line Class or Unit of Measure. Site and Bin Location are not available in these editions. Amount and quantity remain available. |
| All editions | Pending assemblies have additional limitations, including unavailable accounts, line Class, and Unit of Measure. Quantity, Site ID, and Bin Location remain available where supported for Inventory Analytics. |
Pending Assemblies
For Advanced Inventory, the Intuit SDK does not provide the Unit of Measure or the relationship to the Unit of Measure conversion tables. QQube therefore reports Pending Assembly quantities in the base unit.
The quantity remains useful for inventory forecasting, but it may not match a column displayed on a QuickBooks report.
Inventory Transfers
The Intuit SDK does not provide complete dollar information for Inventory Transfers. Although the net effect is $0.00, the individual amounts still matter in Detail Trial Balance and General Ledger Detail reporting.
| QuickBooks Edition | Available Inventory Transfer Information |
|---|---|
| Enterprise | Amount, quantity, and item are available. |
| Pro and Premier | Quantity and item are available. Dollar amounts are not available. |
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article