InvoiceLineItems
Create, Update, Query, and Delete QuickBooks Invoice Line Items. Note that while Invoice transactions can be created from this table, they may not be deleted from it.
Table Specific Information
Invoices may be inserted, queried, or updated via the Invoices or InvoiceLineItems tables. Invoices may be deleted by using the Invoices table.
This table has a Custom Fields column. See the Custom Fields page for more information.
Select
QuickBooks allows only a small subset of columns to be used in the WHERE clause of a SELECT query. These columns can only be used with the equals or '=' comparison. The available columns for Invoices are Id, ReferenceNumber, CustomerName, CustomerId, IsPaid, Account and AccountId. In addition, the pseudo-columns PaidStatus, StartModifiedDate, EndModifiedDate, StartTxnDate, and EndTxnDate may also be specified.
Insert
Note: There are two ways to insert an Invoice. See Invoices for another example of how to insert an Invoice.
In order to add a Invoice, a Customer and at least one Line Item must be specified. All columns denoted with a # are Line Item columns and can be used for inserting multiple Line Items for a new Invoice transaction. For example, the following will insert a new Invoice with two Line Items:
INSERT INTO InvoiceLineItems (CustomerName, ItemName#1, ItemQuantity#1, ItemName#2, ItemQuantity#2) VALUES ('Abercrombie, Kristy', 'Repairs', 1, 'Removal', 2)
QuickBooks Online
The QuickBooks Online API does not support updates. In addition, QuickBooks Online does not support many fields including Template columns, IsPending, IsFinanceCharge, SalesRep columns, ShipMethod columns, TaxCode columns, and Currency columns.
Columns
| Name | Type | Description | ReadOnly |
| ID [KEY] | String |
The unique identifier in the format InvoiceId|ItemLineId. | True |
| InvoiceId | String |
The unique identifier of the Invoice. | False |
| ReferenceNumber | String |
The transaction reference number. This may be set to refnumber*, *refnumber, and *refnumber* in the WHERE clause of a SELECT statement to search by StartsWith, EndsWith, and Contains. Refnum1:refnum2, refnum1:, and :refnum1 may also be used to denote a range. | False |
| TxnNumber | String |
The transaction number. An identifying number for the transaction, but different from the QuickBooks generated ID. | True |
| CustomerName | String |
The name of the customer on the invoice. Either CustomerName or CustomerId must have a value when inserting. | False |
| CustomerId | String |
The id of the customer on the invoice. Alternatively give this field a value when inserting instead of CustomerName. | False |
| Account | String |
A reference to the Accounts Receivable account where the money received from this transaction will go. | False |
| AccountId | String |
A reference to the Accounts Receivable account where the money received from this transaction will go. | False |
| Date | Date |
The date of the transaction. If it is set in the WHERE clause of a SELECT query, the pseudo-columns StartDate and EndDate are overwritten with the value. If using QuickBooks Online, this is required to have a value when inserting. | False |
| ShipMethod | String |
The shipping method associated with the invoice. | False |
| ShipMethodId | String |
The shipping method associated with the invoice. | False |
| ShipDate | Date |
The shipping date associated with the invoice. | False |
| Memo | String |
A memo regarding this transaction. | False |
| Class | String |
A reference to the class of transaction. | False |
| ClassId | String |
A reference to the class of transaction. | False |
| Amount | Double |
The total amount for this invoice. | False |
| Message | String |
A message to vendor/customer to appear in the invoice. | False |
| MessageId | String |
A message to vendor/customer to appear in the invoice. | False |
| SalesRep | String |
A reference to (initials of) sales rep. | False |
| SalesRepId | String |
A reference to the sales rep. | False |
| FOB | String |
Freight On Board: The place to ship from. | False |
| BillingAddress | String |
Full billing address returned by QuickBooks. | True |
| BillingLine1 | String |
First line of the billing address. | False |
| BillingLine2 | String |
Second line of the billing address. | False |
| BillingLine3 | String |
Third line of the billing address. | False |
| BillingLine4 | String |
Forth line of the billing address. | False |
| BillingLine5 | String |
Fifth line of the billing address. | False |
| BillingCity | String |
City name for the billing address. | False |
| BillingState | String |
State name for the billing address. | False |
| BillingPostalCode | String |
Postal code for the billing address. | False |
| BillingCountry | String |
Country for the billing address. | False |
| ShippingAddress | String |
Full shipping address returned by QuickBooks. | True |
| ShippingLine1 | String |
First line of the shipping address. | False |
| ShippingLine2 | String |
Second line of the shipping address. | False |
| ShippingLine3 | String |
Third line of the shipping address. | False |
| ShippingLine4 | String |
Forth line of the shipping address. | False |
| ShippingLine5 | String |
Fifth line of the shipping address. | False |
| ShippingCity | String |
City name for the shipping address. | False |
| ShippingState | String |
State name for the shipping address. | False |
| ShippingPostalCode | String |
Postal code for the shipping address. | False |
| ShippingCountry | String |
Country for the shipping address. | False |
| Subtotal | Double |
The gross subtotal of the invoice. This doesn't include tax/amount already paid. | True |
| Tax | Double |
The total sales tax applied to this transaction. | True |
| TaxAgency | String |
The agency or group to which sales tax is paid. Note that you cannot set this value while updating. | False |
| TaxAgencyId | String |
The agency or group to which sales tax is paid. Note that you cannot set this value while updating. | False |
| TaxPercent | Double |
The percentage charged for sales tax. | True |
| POnumber | String |
The purchase order number. | False |
| DueDate | Date |
The date when payment is due. | False |
| Terms | String |
The payment terms. | False |
| TermsId | String |
The payment terms. | False |
| CustomFields | String |
Custom fields returned from QuickBooks formatted into XML. | False |
| ItemLineId# | String |
The line item identifier. | True |
| ItemId# | String |
The item identifier. | False |
| ItemName# | String |
The item name. This is required to have a value when inserting. | False |
| ItemGroup# | String |
Item group name. Reference to a group of line items this item is part of. | False |
| ItemGroupId# | String |
Item group id. Reference to a group of line items this item is part of. | False |
| ItemDescription# | String |
A description of the item. | False |
| ItemQuantity# | Double |
The quantity of the Item or ItemGroup specified in this line. | False |
| ItemRate# | Double |
The unit rate charged for this item. | False |
| ItemTaxCode# | String |
Sales tax information for this item (taxable or non-taxable). | False |
| ItemTaxCodeId# | String |
Sales tax information for this item. | False |
| ItemAmount# | Double |
Total amount for this item. | False |
| ItemClass# | String |
The class name of the item. | False |
| ItemClassId# | String |
The class name of the item. | False |
| ItemInventorySiteId# | String |
The inventory site id of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on. | False |
| ItemInventorySiteName# | String |
The inventory site name of this item. This requires QBXML version at least 10.0 and the Advanced Inventory Add-on. | False |
| ItemSerialNumber# | String |
The serial number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on. | False |
| ItemLotNumber# | String |
The lot number of this item. This requires QBXML version at least 11.0 and the Advanced Inventory Add-on. | False |
| ItemOther1# | String |
The Other1 field of this lineitem. QBXMLVersion must be set to 6.0 or higher. | False |
| ItemOther2# | String |
The Other2 field of this lineitem. QBXMLVersion must be set to 6.0 or higher. | False |
| ItemCustomFields# | String |
The custom fields for this lineitem. | True |
| AppliedAmount | Double |
The total amount of applied credits and payments. | True |
| Balance | Double |
The unpaid amount for this sale. | False |
| CustomerTaxCode | String |
The tax code specific to this customer. | False |
| CustomerTaxCodeId | String |
The tax code specific to this customer. | False |
| IsToBePrinted | Boolean |
Whether this invoice is to be printed. | False |
| IsToBeEmailed | Boolean |
Whether this invoice is to be emailed. | False |
| IsPaid | Boolean |
Whether this invoice has been paid in full. | True |
| IsTaxIncluded | Boolean |
Determines if tax is included in the transaction amount. | False |
| IsPending | Boolean |
The transaction status (whether this transaction has been completed or it is still pending). | False |
| IsFinanceCharge | String |
Whether this invoice includes a finance charge. The allowed values are NotSet, IsFinanceCharge, NotFinanceCharge. | False |
| Template | String |
A reference to a template specifying how to print the transaction. | False |
| TemplateId | String |
A reference to a template specifying how to print the transaction. | False |
| SuggestedDiscountAmount | Double |
A suggested discount amount for the Invoice. | False |
| SuggestedDiscountDate | Date |
A suggested discount date for the Invoice. | False |
| ExchangeRate | Double |
Currency exchange rate for this invoice. | False |
| BalanceInHomeCurrency | String |
Balance remaining in units of the home currency. | False |
| CurrencyName | String |
Name of the currency code used for this invoice. | False |
| CurrencyId | String |
Id of the currency code used for this invoice. | False |
| Other | String |
Other data associated with the invoice. The QBXMLVersion connection property must be set to 6.0 for this field to be available. | False |
| EditSequence | String |
An identifier for this copy of the object, used for versioning. | True |
| TimeModified | Datetime |
When the Invoice was last modified. | True |
| TimeCreated | Datetime |
When the Invoice was created. | True |
Pseudo-Columns
Pseudo-Column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
| Name | Type | Description | |
| StartTxnDate | String |
Earliest transaction date to search for. | |
| EndTxnDate | String |
Latest transaction date to search for. | |
| StartModifiedDate | String |
Earliest modified date to search for. | |
| EndModifiedDate | String |
Latest modified date to search for. | |
| LinkToTxnId | String |
The LinkToTxnId property allows you to link this transaction to another transaction. This is only available during Insertion and requires a minimum QBXML Version 6.0 |