JDBC Driver for QuickBooks POS

Build 23.0.8839


Create, update, and query QuickBooks POS Inventory Cost Adjustments.

Table Specific Information


QuickBooks POS allows many of the columns to be used in the WHERE clause of a SELECT query. These columns can create either Single or Range filters, as defined in the table schema.

Single Filters Single filters make direct comparisons by using the = comparison.
Range Filters Range filters can search only ranges that have an inclusive lower bound, specified by the >= operator, and an exclusive upper bound, specified by the < operator.

To apply a single bound to a string column that has the Range filter type, the = or LIKE operators are available.

To apply a single bound to a numeric or datetime column that has the Range filter type, the >, >=, <, <=, or = operators are available.

SELECT * FROM InventoryCostAdjustments WHERE Associate LIKE '%George%' AND TimeModified >= '1/1/2014' AND TimeModified < '2/1/2014'


To create a new InventoryCostAdjustment record, the Reason field is required. Items are specified via an XML aggregate within the ItemsAggregate column. The columns that may be used in these aggregates are defined in the InventoryCostAdjustmentItems table as # columns. Note that ItemListId and ItemNewCost are required when adding an item.

The following example will insert a new InventoryCostAdjustment with two items:

INSERT INTO InventoryCostAdjustments (Reason, ItemsAggregate) 
VALUES ('Discontinued', '<InventoryCostAdjustmentItems>


Any field that is not read-only can be updated.

When updating an InventoryCostAdjustment record, item costs can be adjusted via the ItemsAggregate column, just as in an insert. In such cases, the ItemListId column is required to identify the item being adjusted, and ItemNewCost is required to specify the new cost.

Note items cannot be removed from an InventoryCostAdjustment record, but rather the cost can only be adjusted, so a record of adjustments for an item is always kept.

UPDATE InventoryCostAdjustments SET ItemsAggregate = '<InventoryCostAdjustmentItems>
WHERE TxnId = '-1234567890123456789'


Name Type ReadOnly Filter Type Description
TxnID [KEY] String True Single

The unique identifier, generated by QuickBooks POS.

Associate String False Range

The employee making the adjustment.

Comments String False Range

Contains a description of the transaction.

CostDifference Decimal True

Difference in cost for the items. The value displayed is equal to NewCost minus OldCost.

HistoryDocStatus String True Single

The current status of the cost memo created as a result of inserting the transaction. Possible values are Reversed (this memo is the corrected version of an earlier memo), Reversing (this memo caused an older memo to be reversed), and Regular (the document has been corrected).

InventoryAdjustmentNumber Double True Range

The adjustment number for an adjustment is automatically assigned by QBPOS when an adjustment is successfully added to QBPOS.

InventoryAdjustmentSource String False Single

The action or functionality that created the adjustment. Possible values are Manual (manually created memo), Physical (physical inventory), and Assembly (assembly item).

ItemsCount String True Range

The number of line items in the insert that added the transaction.

ItemsAggregate String False

An aggregate of the line item data, which can be used for adding a transaction and its line items.

NewCost Decimal True Range

The cost of the items after the cost adjustment.

OldCost Decimal True Range

The cost of the items before the cost adjustment.

QuickBooksFlag String False Single

The status of data export for a memo. This element is used only if QBPOS is being used with QuickBooks Financial Software. Possible values are NOT POSTED (not yet sent to QuickBooks), COMPLETE (sent to QuickBooks), and ERROR (attempting to send the memo to QuickBooks resulted in an error). No default value.

Reason String False Range

Enter the reason for the adjustment or select from the following predefined reasons: Cycl Cnt (cycle count), Vend Chg (vendor change), Prc Line (price line), Seas End (end of season), Annual, Shrink, Stolen, Damaged, and New Item.

StoreExchangeStatus String True Single

In multistore configurations, if the customer information has changed, this information is updated at the headquarters store. This response field indicates whether customer information was successfully updated or not. Possible values are Modified, Sent, and Acknowledged.

StoreNumber Double False Range

This is used only for multi-store versions of QBPOS. The value is between 1 and 10, since a maximum of 10 stores are currently supported.

TxnDate Datetime False Range

The date of the transaction. In some cases, if this value is not specified QBPOS will use the current date or pre-fill TxnDate with the date of the last-saved transaction of the same type.

TxnState String False Single

The current state of the transaction. Possible values are Normal (the transaction is complete) and Held (the transaction has not yet been finalized).

Workstation Double False Range

Workstation from which the transaction was made.

CustomFieldsOwnerID String False Multi

Identifies the owner of the CustomFields to be returned in the response. The default value of '0' is sent which refers to a public custom field that is exposed in the QuickBooks POS UI. All other values are GUID's that are created by the owner and are private custom fields (not exposed via the QuickBooks POS UI).

CustomFields String False

Custom fields returned from QuickBooks POS and formatted into XML.

TimeCreated Datetime True Range

When the transaction was created.

TimeModified Datetime True Range

When the transaction was last modified.

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839