conductor-node 8.0.3 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/package.json +1 -1
- package/dist/src/integrations/qbd/QbdIntegration.d.ts +159 -0
- package/dist/src/integrations/qbd/QbdIntegration.js +159 -0
- package/dist/src/integrations/qbd/qbdTypes.d.ts +1161 -133
- package/dist/src/utils/environment.js +5 -0
- package/package.json +1 -1
|
@@ -336,7 +336,7 @@ export interface AppliedToTxnRet {
|
|
|
336
336
|
TxnDate?: string;
|
|
337
337
|
/** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
|
|
338
338
|
RefNumber?: string;
|
|
339
|
-
/** The outstanding balance on this invoice. `BalanceRemaining` = (Subtotal + `SalesTaxTotal`) – `AppliedAmount`. */
|
|
339
|
+
/** The outstanding balance on this invoice. `BalanceRemaining` = (`Subtotal` + `SalesTaxTotal`) – `AppliedAmount`. */
|
|
340
340
|
BalanceRemaining?: string;
|
|
341
341
|
/** A monetary amount. */
|
|
342
342
|
Amount?: string;
|
|
@@ -361,6 +361,18 @@ export interface ApplyCheckToTxnMod {
|
|
|
361
361
|
/** A monetary amount. */
|
|
362
362
|
Amount?: string;
|
|
363
363
|
}
|
|
364
|
+
export interface ARAccountRef {
|
|
365
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
366
|
+
ListID?: string;
|
|
367
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
368
|
+
FullName?: string;
|
|
369
|
+
}
|
|
370
|
+
export interface AssetAccountRef {
|
|
371
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
372
|
+
ListID?: string;
|
|
373
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
374
|
+
FullName?: string;
|
|
375
|
+
}
|
|
364
376
|
export interface BankAccountRef {
|
|
365
377
|
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
366
378
|
ListID?: string;
|
|
@@ -611,7 +623,7 @@ export interface BillPaymentCheckQueryRq {
|
|
|
611
623
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
612
624
|
/** Filters according to the original transaction dates. */
|
|
613
625
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
614
|
-
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
626
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
615
627
|
EntityFilter?: EntityFilter;
|
|
616
628
|
/** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
|
|
617
629
|
AccountFilter?: AccountFilter;
|
|
@@ -696,7 +708,7 @@ export interface BillQueryRq {
|
|
|
696
708
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
697
709
|
/** Filters according to the original transaction dates. */
|
|
698
710
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
699
|
-
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file.
|
|
711
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file.
|
|
700
712
|
|
|
701
713
|
In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
702
714
|
EntityFilter?: EntityFilter;
|
|
@@ -942,7 +954,7 @@ export interface CheckQueryRq {
|
|
|
942
954
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
943
955
|
/** Filters according to the original transaction dates. */
|
|
944
956
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
945
|
-
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
957
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
946
958
|
EntityFilter?: EntityFilter;
|
|
947
959
|
/** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
|
|
948
960
|
AccountFilter?: AccountFilter;
|
|
@@ -1115,6 +1127,12 @@ export interface ClassRet {
|
|
|
1115
1127
|
/** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
|
|
1116
1128
|
Sublevel: number;
|
|
1117
1129
|
}
|
|
1130
|
+
export interface COGSAccountRef {
|
|
1131
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
1132
|
+
ListID?: string;
|
|
1133
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
1134
|
+
FullName?: string;
|
|
1135
|
+
}
|
|
1118
1136
|
export interface CompanyAddressBlockForCustomer {
|
|
1119
1137
|
/** The first line of an address. */
|
|
1120
1138
|
Addr1?: string;
|
|
@@ -1335,7 +1353,7 @@ export interface CustomerAdd {
|
|
|
1335
1353
|
CustomerTypeRef?: CustomerTypeRef;
|
|
1336
1354
|
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1337
1355
|
TermsRef?: TermsRef;
|
|
1338
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1356
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1339
1357
|
SalesRepRef?: SalesRepRef;
|
|
1340
1358
|
/** The opening balance of this customer’s account. A positive number indicates money owed by the customer. */
|
|
1341
1359
|
OpenBalance?: string;
|
|
@@ -1446,7 +1464,7 @@ export interface CustomerMod {
|
|
|
1446
1464
|
CustomerTypeRef?: CustomerTypeRef;
|
|
1447
1465
|
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1448
1466
|
TermsRef?: TermsRef;
|
|
1449
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1467
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1450
1468
|
SalesRepRef?: SalesRepRef;
|
|
1451
1469
|
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
1452
1470
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
@@ -1498,6 +1516,12 @@ export interface CustomerModRs {
|
|
|
1498
1516
|
CustomerRet?: CustomerRet;
|
|
1499
1517
|
ErrorRecovery?: ErrorRecovery;
|
|
1500
1518
|
}
|
|
1519
|
+
export interface CustomerMsgRef {
|
|
1520
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
1521
|
+
ListID?: string;
|
|
1522
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
1523
|
+
FullName?: string;
|
|
1524
|
+
}
|
|
1501
1525
|
export interface CustomerQueryRq {
|
|
1502
1526
|
/** One or more `ListID` values. Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
1503
1527
|
ListID?: string[] | string;
|
|
@@ -1600,7 +1624,7 @@ export interface CustomerRet {
|
|
|
1600
1624
|
CustomerTypeRef?: CustomerTypeRef;
|
|
1601
1625
|
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1602
1626
|
TermsRef?: TermsRef;
|
|
1603
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1627
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
1604
1628
|
SalesRepRef?: SalesRepRef;
|
|
1605
1629
|
/** A positive number indicates money owed by the customer. Compare with `TotalBalance`. */
|
|
1606
1630
|
Balance?: string;
|
|
@@ -1651,6 +1675,12 @@ export interface CustomerRet {
|
|
|
1651
1675
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
1652
1676
|
DataExtRet?: DataExtRet | DataExtRet[];
|
|
1653
1677
|
}
|
|
1678
|
+
export interface CustomerSalesTaxCodeRef {
|
|
1679
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
1680
|
+
ListID?: string;
|
|
1681
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
1682
|
+
FullName?: string;
|
|
1683
|
+
}
|
|
1654
1684
|
export interface CustomerTypeRef {
|
|
1655
1685
|
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
1656
1686
|
ListID?: string;
|
|
@@ -1828,7 +1858,7 @@ export interface DepositQueryRq {
|
|
|
1828
1858
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
1829
1859
|
/** Filters according to the original transaction dates. */
|
|
1830
1860
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
1831
|
-
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
1861
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
1832
1862
|
EntityFilter?: EntityFilter;
|
|
1833
1863
|
/** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
|
|
1834
1864
|
AccountFilter?: AccountFilter;
|
|
@@ -1956,7 +1986,7 @@ export interface EmployeeAdd {
|
|
|
1956
1986
|
AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
|
|
1957
1987
|
/** Emergency `Contact` information for the employee. */
|
|
1958
1988
|
EmergencyContacts?: EmergencyContacts;
|
|
1959
|
-
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
1989
|
+
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the `Other` Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
1960
1990
|
EmployeeType?: EmployeeType;
|
|
1961
1991
|
/** Full or Part time status of the employee. */
|
|
1962
1992
|
PartOrFullTime?: PartOrFullTime;
|
|
@@ -2073,7 +2103,7 @@ export interface EmployeeMod {
|
|
|
2073
2103
|
AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
|
|
2074
2104
|
/** Emergency `Contact` information for the employee. */
|
|
2075
2105
|
EmergencyContacts?: EmergencyContacts;
|
|
2076
|
-
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
2106
|
+
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the `Other` Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
2077
2107
|
EmployeeType?: EmployeeType;
|
|
2078
2108
|
/** Full or Part time status of the employee. */
|
|
2079
2109
|
PartOrFullTime?: PartOrFullTime;
|
|
@@ -2243,7 +2273,7 @@ export interface EmployeeRet {
|
|
|
2243
2273
|
AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
|
|
2244
2274
|
/** Emergency `Contact` information for the employee. */
|
|
2245
2275
|
EmergencyContacts?: EmergencyContacts;
|
|
2246
|
-
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
2276
|
+
/** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the `Other` Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
|
|
2247
2277
|
EmployeeType?: EmployeeType;
|
|
2248
2278
|
/** Full or Part time status of the employee. */
|
|
2249
2279
|
PartOrFullTime?: PartOrFullTime;
|
|
@@ -2385,7 +2415,7 @@ export interface ExpenseLineAdd {
|
|
|
2385
2415
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2386
2416
|
/** The billing status of this item line or expense line. */
|
|
2387
2417
|
BillableStatus?: BillableStatus;
|
|
2388
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2418
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2389
2419
|
SalesRepRef?: SalesRepRef;
|
|
2390
2420
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2391
2421
|
DataExt?: DataExt | DataExt[];
|
|
@@ -2439,7 +2469,7 @@ export interface ExpenseLineMod {
|
|
|
2439
2469
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2440
2470
|
/** The billing status of this item line or expense line. */
|
|
2441
2471
|
BillableStatus?: BillableStatus;
|
|
2442
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2472
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2443
2473
|
SalesRepRef?: SalesRepRef;
|
|
2444
2474
|
}
|
|
2445
2475
|
export interface ExpenseLineRet {
|
|
@@ -2491,7 +2521,7 @@ export interface ExpenseLineRet {
|
|
|
2491
2521
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2492
2522
|
/** The billing status of this item line or expense line. */
|
|
2493
2523
|
BillableStatus?: BillableStatus;
|
|
2494
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2524
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2495
2525
|
SalesRepRef?: SalesRepRef;
|
|
2496
2526
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2497
2527
|
DataExtRet?: DataExtRet | DataExtRet[];
|
|
@@ -2517,7 +2547,124 @@ export interface InventorySiteRef {
|
|
|
2517
2547
|
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
2518
2548
|
FullName?: string;
|
|
2519
2549
|
}
|
|
2520
|
-
export interface
|
|
2550
|
+
export interface InvoiceAdd {
|
|
2551
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
2552
|
+
CustomerRef: CustomerRef;
|
|
2553
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2554
|
+
ClassRef?: ClassRef;
|
|
2555
|
+
/** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
|
|
2556
|
+
ARAccountRef?: ARAccountRef;
|
|
2557
|
+
/** QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `TemplateRef` element refers to one of these templates. */
|
|
2558
|
+
TemplateRef?: TemplateRef;
|
|
2559
|
+
/** The date of the invoice. If you leave `TxnDate` out of an `InvoiceAdd` message, QuickBooks might prefill it with the date of the invoice that was most recently saved. */
|
|
2560
|
+
TxnDate?: string;
|
|
2561
|
+
/** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
|
|
2562
|
+
RefNumber?: string;
|
|
2563
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode.Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query) If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
2564
|
+
BillAddress?: BillAddress;
|
|
2565
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode.Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query) If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
2566
|
+
ShipAddress?: ShipAddress;
|
|
2567
|
+
/** If `IsPending` is set to true, the invoice has not been completed. Pending sales might include unpaid orders, estimates, tracked hours that have not yet been billed, or sales of back-ordered items. */
|
|
2568
|
+
IsPending?: boolean;
|
|
2569
|
+
/** If `IsFinanceCharge` is true, a finance-charge item has been added to the invoice. */
|
|
2570
|
+
IsFinanceCharge?: boolean;
|
|
2571
|
+
/** Purchase order number. */
|
|
2572
|
+
PONumber?: string;
|
|
2573
|
+
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2574
|
+
TermsRef?: TermsRef;
|
|
2575
|
+
/** If `DueDate` is not included in an `InvoiceAdd` request, QuickBooks might determine the due date according to the terms set for this customer. */
|
|
2576
|
+
DueDate?: string;
|
|
2577
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2578
|
+
SalesRepRef?: SalesRepRef;
|
|
2579
|
+
/** QuickBooks uses the term `FOB`, “freight on board,” to indicate the place from which the product is shipped. The `FOB` has no accounting implications. */
|
|
2580
|
+
FOB?: string;
|
|
2581
|
+
/** The date when the product was, or will be, shipped. */
|
|
2582
|
+
ShipDate?: string;
|
|
2583
|
+
/** A shipping method, for example, standard mail or overnight delivery. A `ShipMethodRef` aggregate refers to an item on the `ShipMethod` list. In a request, if a `ShipMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2584
|
+
ShipMethodRef?: ShipMethodRef;
|
|
2585
|
+
/** A sales-tax item is used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. (Compare with the `ItemSalesTaxGroupAdd` message.) An `ItemSalesTaxRef` aggregate refers to an item on this list. In a request, if an `ItemSalesTaxRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Taxes can be reflected in transaction line items The following information refers to invoices specifically, but it also applies to sales receipts. Generally its best to assign a tax item or tax group item to an invoice and allow QuickBooks to apply the same tax to all taxable items on the invoice. However in some situations multiple tax combinations are required, so this method doesn’t work. In this case one must use techniques to apply the taxes in the invoice itself as line items. Using lines to apply taxes isn’t always straight forward. When applying taxes as line items, only single tax items can be used, tax groups can only be used for the entire invoice. If you have multiple taxes which apply to all taxable items, and one or more other taxes that only apply to some of the items on an invoice its better to use a tax group which applies to the entire invoice for the taxes which applies to all taxable items and then apply the other taxes in the invoice itself. One applies a tax or tax group to an entire invoice by using the `ItemSalesTaxRef` aggregate. One can use subtotals to apply a single tax line to multiple items in an invoice, but the tax is only applied automatically for the first tax line after the subtotal line. Any other tax lines which need to be applied to the subtotal line must supply their own amount. If you don’t supply an amount the amount comes out as zero and the tax line is useless. When one does supply an amount, the amount of tax on the subtotal also shows up in the rate column for that tax line. There isn’t any way for the rate to show up as anything other than the amount of the tax. If you have a complicated tax situation where no single tax applies to all taxable items on the invoice, you must choose a zero percent tax to apply for the entire invoice. It is recommended to name such a tax item “Tax Calculated On Invoice” so that it’s clear that the tax is not being applied by QuickBooks on the entire invoice. */
|
|
2586
|
+
ItemSalesTaxRef?: ItemSalesTaxRef;
|
|
2587
|
+
/** Message that appears in reports, but not on the invoice. */
|
|
2588
|
+
Memo?: string;
|
|
2589
|
+
/** A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `CustomerMsgRef` aggregate refers to one of the messages on the `CustomerMsg` list. In a request, if a `CustomerMsgRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2590
|
+
CustomerMsgRef?: CustomerMsgRef;
|
|
2591
|
+
/** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once. Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
|
|
2592
|
+
IsToBePrinted?: boolean;
|
|
2593
|
+
/** If this is set to true, at runtime the customer referenced in this transaction will be checked for a valid email address. If there is no valid email address, the request will fail. If there is a valid email address currently in QuickBooks for the customer, and the request succeeds, the transaction will be added to `QuickBook`’s list of forms to be emailed, possibly in a batch. Notice that setting this field to true does not actually perform the emailing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from emailing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be emailed. */
|
|
2594
|
+
IsToBeEmailed?: boolean;
|
|
2595
|
+
/** For future use with international versions of QuickBooks. */
|
|
2596
|
+
IsTaxIncluded?: boolean;
|
|
2597
|
+
/** Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the `SalesTaxCode` list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `CustomerSalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2598
|
+
CustomerSalesTaxCodeRef?: CustomerSalesTaxCodeRef;
|
|
2599
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it. The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line. These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!) `Note`: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available. Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2600
|
+
Other?: string;
|
|
2601
|
+
/** The exchange rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the “home” currency. The exchange rate should be considered a snapshot of the rates in effect at the `AsOfDate`. You can update the exchange rate using the exchange rate property when you add a transaction. However, you need to obtain and supply the exchange rate. If you are using USD (United States Dollars) as the home currency and are connected to the Internet, you can download the current exchange rates for all active currencies automatically in the QuickBooks UI by selecting Lists->Currency->Activities->Download latest exchange rates. (Currently, you can’t do this in the SDK.) */
|
|
2602
|
+
ExchangeRate?: number;
|
|
2603
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
2604
|
+
ExternalGUID?: string;
|
|
2605
|
+
/** The `LinkToTxnID` aggregate allows to link an entire transaction. If you want to link individual lines in a transaction, use the `LinkToTxn` aggregate. You can use both `LinkToTxnID` and `LinkToTxn` aggregates in the same request, as long as these aggregates do NOT link to the same `TxnID`. If both aggregates are used and do link to the same `TxnID`, you receive an error 3000. Also, if you attempt to invoke `LinkToTxnID` with the same `TxnID`, more than once, you get an error 3177. If the transaction specified by `LinkToTxnID` is already closed or fully received and the `ItemReceiptAdd` request does not contain any other lines, you get error 3180 for attempting to save an empty transaction. You get a warning if you attempt to link to a transaction that’s already closed. */
|
|
2606
|
+
LinkToTxnID?: string[] | string;
|
|
2607
|
+
/** A list of credits to set. Setting, or applying, a credit means using an available credit to lower the balance of a transaction such as an invoice or a bill. (Creating a credit, on the other hand, means making a credit available to be applied in the future.) Notice that if you use a credit (`SetCredit`) only, in your `ReceivePaymentAdd` or `BillPaymentCreditCardAdd` request, then no transaction ID is created, because, from the viewpoint of QuickBooks, there was no transaction. Setting a credit merely creates links between existing transactions (for example, between a credit memo transaction and an invoice transaction), and no information about these links will be returned to you in the response. If you need to retrieve which transactions were linked in the `SetCredit`, for Bill Payment, you must do a `BillQuery` and specify `IncludeLinkedTxns`. */
|
|
2608
|
+
SetCredit?: SetCredit | SetCredit[];
|
|
2609
|
+
/** Represents one line in the invoice. Compare with `InvoiceLineGroup`, which represents a previously defined group of lines in the invoice. */
|
|
2610
|
+
InvoiceLineAdd?: InvoiceLineAdd;
|
|
2611
|
+
/** Represents a previously defined group of lines in the invoice. Compare with `InvoiceLine`, which represents just one line in the invoice. */
|
|
2612
|
+
InvoiceLineGroupAdd?: InvoiceLineGroupAdd;
|
|
2613
|
+
}
|
|
2614
|
+
export interface InvoiceAddRq {
|
|
2615
|
+
InvoiceAdd: InvoiceAdd;
|
|
2616
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
2617
|
+
IncludeRetElement?: string[] | string;
|
|
2618
|
+
}
|
|
2619
|
+
export interface InvoiceAddRs {
|
|
2620
|
+
InvoiceRet?: InvoiceRet;
|
|
2621
|
+
ErrorRecovery?: ErrorRecovery;
|
|
2622
|
+
}
|
|
2623
|
+
export interface InvoiceLineAdd {
|
|
2624
|
+
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2625
|
+
ItemRef?: ItemRef;
|
|
2626
|
+
/** A descriptive text field. */
|
|
2627
|
+
Desc?: string;
|
|
2628
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
2629
|
+
Quantity?: number;
|
|
2630
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
2631
|
+
UnitOfMeasure?: string;
|
|
2632
|
+
/** If you specify both `Rate` and `Amount` in a request, the `Rate` you provide will be ignored, and you will receive a warning. If you specify both `Quantity` and `Amount` in an Add or Mod request, QuickBooks will use them to calculate `Rate`. (Rate, `Amount`, and `Quantity` cannot be cleared.) */
|
|
2633
|
+
Rate?: string;
|
|
2634
|
+
/** Indicates the price of something as a percent. */
|
|
2635
|
+
RatePercent?: string;
|
|
2636
|
+
/** You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the `Rate` for the item, which was set using the price level. */
|
|
2637
|
+
PriceLevelRef?: PriceLevelRef;
|
|
2638
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2639
|
+
ClassRef?: ClassRef;
|
|
2640
|
+
/** A monetary amount. */
|
|
2641
|
+
Amount?: string;
|
|
2642
|
+
/** Flag to override price rule conflict. */
|
|
2643
|
+
OptionForPriceRuleConflict?: OptionForPriceRuleConflict;
|
|
2644
|
+
/** Site where inventory is located. */
|
|
2645
|
+
InventorySiteRef?: InventorySiteRef;
|
|
2646
|
+
/** Location within the Inventory Site. */
|
|
2647
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2648
|
+
/** The serial number of the asset. */
|
|
2649
|
+
SerialNumber?: string;
|
|
2650
|
+
/** The lot number of the asset. */
|
|
2651
|
+
LotNumber?: string;
|
|
2652
|
+
/** Indicates the date on which the QuickBooks user performs the service for the customer. */
|
|
2653
|
+
ServiceDate?: string;
|
|
2654
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
2655
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2656
|
+
/** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2657
|
+
OverrideItemAccountRef?: OverrideItemAccountRef;
|
|
2658
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it. The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line. These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!) `Note`: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available. Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2659
|
+
Other1?: string;
|
|
2660
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it. The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line. These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!) `Note`: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available. Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2661
|
+
Other2?: string;
|
|
2662
|
+
/** When used with `InvoiceAdd`, the transaction you are linking to via this field must be a `SalesOrder`; links to other transactions, such as to estimates, are not currently supported. When used with `BillAdd` or `ItemReceiptAdd`, the transaction you are linking to via this field must be a `PurchaseOrder`: links to other transactions are not currently supported. The `LinkToTxn` aggregate allows you to bring in a specific line item from a transaction. If you want to link an entire transaction and bring in all its lines, use the `LinkToTxnID` aggregate. Notice that if you use `LinkToTxn` in the item line, you cannot use `ItemRef` in that line: you’ll get a runtime error. `LinkToTxn` brings in all the item information you need. (You can, however, specify whatever quantity or rate that you want, or any other item line element other than `ItemRef`. You can use both `LinkToTxnID` and `LinkToTxn` in the same request, as long as these do NOT link to the same `TxnID`. You get an error if the transaction specified by `LinkToTxnID` is already closed or fully received and the request does not contain any other lines. You get error if you attempt to save an empty transaction. You get a warning if you attempt to link to a transaction that’s already closed. For a complete set of rules and instructions on transaction linking, see the chapter on transaction linking in the QB SDK Programmer’s Guide (PDF, 9.6 MB). */
|
|
2663
|
+
LinkToTxn?: LinkToTxn;
|
|
2664
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2665
|
+
DataExt?: DataExt | DataExt[];
|
|
2666
|
+
}
|
|
2667
|
+
export interface InvoiceLineGroupAdd {
|
|
2521
2668
|
/** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
|
|
2522
2669
|
ItemGroupRef: ItemGroupRef;
|
|
2523
2670
|
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
@@ -2531,23 +2678,23 @@ export interface ItemGroupLineAdd {
|
|
|
2531
2678
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2532
2679
|
DataExt?: DataExt | DataExt[];
|
|
2533
2680
|
}
|
|
2534
|
-
export interface
|
|
2681
|
+
export interface InvoiceLineGroupMod {
|
|
2535
2682
|
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
2536
2683
|
|
|
2537
2684
|
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
2538
2685
|
TxnLineID: string;
|
|
2539
2686
|
/** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
|
|
2540
2687
|
ItemGroupRef?: ItemGroupRef;
|
|
2541
|
-
/**
|
|
2688
|
+
/** Quantity For transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
2542
2689
|
Quantity?: number;
|
|
2543
2690
|
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
2544
2691
|
UnitOfMeasure?: string;
|
|
2545
2692
|
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
2546
2693
|
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
2547
|
-
/** A list of `
|
|
2548
|
-
|
|
2694
|
+
/** A list of `IInvoiceLineRet` objects, each representing one line in this group of invoice lines. */
|
|
2695
|
+
InvoiceLineMod?: InvoiceLineMod | InvoiceLineMod[];
|
|
2549
2696
|
}
|
|
2550
|
-
export interface
|
|
2697
|
+
export interface InvoiceLineGroupRet {
|
|
2551
2698
|
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
2552
2699
|
|
|
2553
2700
|
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
@@ -2562,72 +2709,16 @@ export interface ItemGroupLineRet {
|
|
|
2562
2709
|
UnitOfMeasure?: string;
|
|
2563
2710
|
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
2564
2711
|
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
2712
|
+
/** If true, a list of this group’s individual items their amounts will appear on printed forms. */
|
|
2713
|
+
IsPrintItemsInGroup: boolean;
|
|
2565
2714
|
/** Total amount of money paid or received. In a receive payment add transaction that has payment amount elements (such as `AppliedToTxnAdd` lines) you must supply a `TotalAmount` and the sum of all the `PaymentAmount` elements must not be greater than the `TotalAmount`. */
|
|
2566
2715
|
TotalAmount: string;
|
|
2567
|
-
/** A list of `
|
|
2568
|
-
|
|
2569
|
-
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2570
|
-
DataExt?: DataExt | DataExt[];
|
|
2571
|
-
}
|
|
2572
|
-
export interface ItemGroupRef {
|
|
2573
|
-
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
2574
|
-
ListID?: string;
|
|
2575
|
-
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
2576
|
-
FullName?: string;
|
|
2577
|
-
}
|
|
2578
|
-
export interface ItemLineAdd {
|
|
2579
|
-
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types.
|
|
2580
|
-
|
|
2581
|
-
For example, here are some requests that impose limits on what items `ItemRef` can refer to.
|
|
2582
|
-
|
|
2583
|
-
For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax items For `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item. For `BillingRateAdd` requests, the `ItemRef` must refer to a service item.
|
|
2584
|
-
|
|
2585
|
-
You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2586
|
-
ItemRef?: ItemRef;
|
|
2587
|
-
/** Site where inventory is located. */
|
|
2588
|
-
InventorySiteRef?: InventorySiteRef;
|
|
2589
|
-
/** Location within the Inventory Site. */
|
|
2590
|
-
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2591
|
-
/** The serial number of the asset. */
|
|
2592
|
-
SerialNumber?: string;
|
|
2593
|
-
/** The lot number of the asset. */
|
|
2594
|
-
LotNumber?: string;
|
|
2595
|
-
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
2596
|
-
ExpirationDateForSerialLotNumber?: string;
|
|
2597
|
-
/** A descriptive text field. */
|
|
2598
|
-
Desc?: string;
|
|
2599
|
-
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
2600
|
-
Quantity?: number;
|
|
2601
|
-
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
2602
|
-
UnitOfMeasure?: string;
|
|
2603
|
-
/** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
|
|
2604
|
-
Cost?: string;
|
|
2605
|
-
/** A monetary amount. */
|
|
2606
|
-
Amount?: string;
|
|
2607
|
-
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
2608
|
-
CustomerRef?: CustomerRef;
|
|
2609
|
-
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
2610
|
-
|
|
2611
|
-
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2612
|
-
ClassRef?: ClassRef;
|
|
2613
|
-
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
2614
|
-
|
|
2615
|
-
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
2616
|
-
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2617
|
-
/** The billing status of this item line or expense line. */
|
|
2618
|
-
BillableStatus?: BillableStatus;
|
|
2619
|
-
/** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2620
|
-
OverrideItemAccountRef?: OverrideItemAccountRef;
|
|
2621
|
-
/** When used with `InvoiceAdd`, the transaction you are linking to via this field must be a `SalesOrder`; links to other transactions, such as to estimates, are not currently supported.
|
|
2622
|
-
|
|
2623
|
-
When used with `BillAdd` or `ItemReceiptAdd`, the transaction you are linking to via this field must be a `PurchaseOrder`: links to other transactions are not currently supported. The `LinkToTxn` aggregate allows you to bring in a specific line item from a transaction. If you want to link an entire transaction and bring in all its lines, use the `LinkToTxnID` aggregate. Notice that if you use `LinkToTxn` in the item line, you cannot use `ItemRef` in that line: you’ll get a runtime error. `LinkToTxn` brings in all the item information you need. (You can, however, specify whatever quantity or rate that you want, or any other item line element other than `ItemRef`. You can use both `LinkToTxnID` and `LinkToTxn` in the same request, as long as these do NOT link to the same `TxnID`. You get an error if the transaction specified by `LinkToTxnID` is already closed or fully received and the request does not contain any other lines. You get error if you attempt to save an empty transaction. You get a warning if you attempt to link to a transaction that’s already closed. For a complete set of rules and instructions on transaction linking, see the chapter on transaction linking in the QB SDK Programmer’s Guide (PDF, 9.6 MB). */
|
|
2624
|
-
LinkToTxn?: LinkToTxn;
|
|
2625
|
-
/** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2626
|
-
SalesRepRef?: SalesRepRef;
|
|
2716
|
+
/** A list of `IInvoiceLineRet` objects, each representing one line in this group of invoice lines. */
|
|
2717
|
+
InvoiceLineRet?: InvoiceLineRet | InvoiceLineRet[];
|
|
2627
2718
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2628
|
-
|
|
2719
|
+
DataExtRet?: DataExtRet | DataExtRet[];
|
|
2629
2720
|
}
|
|
2630
|
-
export interface
|
|
2721
|
+
export interface InvoiceLineMod {
|
|
2631
2722
|
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
2632
2723
|
|
|
2633
2724
|
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
@@ -2640,72 +2731,86 @@ export interface ItemLineMod {
|
|
|
2640
2731
|
|
|
2641
2732
|
Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2642
2733
|
ItemRef?: ItemRef;
|
|
2643
|
-
/** Site where inventory is located. */
|
|
2644
|
-
InventorySiteRef?: InventorySiteRef;
|
|
2645
|
-
/** Location within the Inventory Site. */
|
|
2646
|
-
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2647
|
-
/** The serial number of the asset. */
|
|
2648
|
-
SerialNumber?: string;
|
|
2649
|
-
/** The lot number of the asset. */
|
|
2650
|
-
LotNumber?: string;
|
|
2651
|
-
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
2652
|
-
ExpirationDateForSerialLotNumber?: string;
|
|
2653
2734
|
/** A descriptive text field. */
|
|
2654
2735
|
Desc?: string;
|
|
2655
|
-
/**
|
|
2736
|
+
/** Quantity For transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
2656
2737
|
Quantity?: number;
|
|
2657
2738
|
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
2658
2739
|
UnitOfMeasure?: string;
|
|
2659
2740
|
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
2660
2741
|
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
2661
|
-
/** If both `
|
|
2662
|
-
|
|
2663
|
-
/**
|
|
2664
|
-
|
|
2665
|
-
/**
|
|
2666
|
-
|
|
2742
|
+
/** If you specify both `Rate` and `Amount` in a request, the `Rate` you provide will be ignored, and you will receive a warning. If you specify both `Quantity` and `Amount` in an Add or Mod request, QuickBooks will use them to calculate `Rate`. (Rate, `Amount`, and `Quantity` cannot be cleared.) */
|
|
2743
|
+
Rate?: string;
|
|
2744
|
+
/** Indicates the price of something as a percent. */
|
|
2745
|
+
RatePercent?: string;
|
|
2746
|
+
/** You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.)
|
|
2747
|
+
|
|
2748
|
+
The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders.
|
|
2749
|
+
|
|
2750
|
+
Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the `Rate` for the item, which was set using the price level. */
|
|
2751
|
+
PriceLevelRef?: PriceLevelRef;
|
|
2667
2752
|
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
2668
2753
|
|
|
2669
2754
|
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
2670
2755
|
|
|
2671
2756
|
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2672
2757
|
ClassRef?: ClassRef;
|
|
2758
|
+
/** A monetary amount. */
|
|
2759
|
+
Amount?: string;
|
|
2760
|
+
/** Flag to override price rule conflict. */
|
|
2761
|
+
OptionForPriceRuleConflict?: OptionForPriceRuleConflict;
|
|
2762
|
+
/** Site where inventory is located. */
|
|
2763
|
+
InventorySiteRef?: InventorySiteRef;
|
|
2764
|
+
/** Location within the Inventory Site. */
|
|
2765
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2766
|
+
/** The serial number of the asset. */
|
|
2767
|
+
SerialNumber?: string;
|
|
2768
|
+
/** The lot number of the asset. */
|
|
2769
|
+
LotNumber?: string;
|
|
2770
|
+
/** Indicates the date on which the QuickBooks user performs the service for the customer. */
|
|
2771
|
+
ServiceDate?: string;
|
|
2673
2772
|
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
2674
2773
|
|
|
2675
2774
|
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales.
|
|
2676
2775
|
|
|
2677
2776
|
A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
2678
2777
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2679
|
-
/** The billing status of this item line or expense line. */
|
|
2680
|
-
BillableStatus?: BillableStatus;
|
|
2681
2778
|
/** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2682
2779
|
OverrideItemAccountRef?: OverrideItemAccountRef;
|
|
2683
|
-
/**
|
|
2684
|
-
|
|
2780
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
2781
|
+
|
|
2782
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
2783
|
+
|
|
2784
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
2785
|
+
|
|
2786
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
2787
|
+
|
|
2788
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2789
|
+
Other1?: string;
|
|
2790
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
2791
|
+
|
|
2792
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
2793
|
+
|
|
2794
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
2795
|
+
|
|
2796
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
2797
|
+
|
|
2798
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2799
|
+
Other2?: string;
|
|
2685
2800
|
}
|
|
2686
|
-
export interface
|
|
2801
|
+
export interface InvoiceLineRet {
|
|
2687
2802
|
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
2688
2803
|
|
|
2689
2804
|
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
2690
2805
|
TxnLineID: string;
|
|
2691
2806
|
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types.
|
|
2692
2807
|
|
|
2693
|
-
For example, here are some requests that impose limits on what items `ItemRef` can refer to.
|
|
2808
|
+
For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax items For `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item. For `BillingRateAdd` requests, the `ItemRef` must refer to a service item.
|
|
2694
2809
|
|
|
2695
|
-
|
|
2810
|
+
You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items.
|
|
2696
2811
|
|
|
2697
|
-
|
|
2812
|
+
Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2698
2813
|
ItemRef?: ItemRef;
|
|
2699
|
-
/** Site where inventory is located. */
|
|
2700
|
-
InventorySiteRef?: InventorySiteRef;
|
|
2701
|
-
/** Location within the Inventory Site. */
|
|
2702
|
-
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2703
|
-
/** The serial number of the asset. */
|
|
2704
|
-
SerialNumber?: string;
|
|
2705
|
-
/** The lot number of the asset. */
|
|
2706
|
-
LotNumber?: string;
|
|
2707
|
-
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
2708
|
-
ExpirationDateForSerialLotNumber?: string;
|
|
2709
2814
|
/** A descriptive text field. */
|
|
2710
2815
|
Desc?: string;
|
|
2711
2816
|
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
@@ -2714,34 +2819,944 @@ export interface ItemLineRet {
|
|
|
2714
2819
|
UnitOfMeasure?: string;
|
|
2715
2820
|
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
2716
2821
|
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
2717
|
-
/** If both `
|
|
2718
|
-
|
|
2719
|
-
/**
|
|
2720
|
-
|
|
2721
|
-
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
2722
|
-
CustomerRef?: CustomerRef;
|
|
2822
|
+
/** If you specify both `Rate` and `Amount` in a request, the `Rate` you provide will be ignored, and you will receive a warning. If you specify both `Quantity` and `Amount` in an Add or Mod request, QuickBooks will use them to calculate `Rate`. (Rate, `Amount`, and `Quantity` cannot be cleared.) */
|
|
2823
|
+
Rate?: string;
|
|
2824
|
+
/** Indicates the price of something as a percent. */
|
|
2825
|
+
RatePercent?: string;
|
|
2723
2826
|
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
2724
2827
|
|
|
2725
2828
|
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
2726
2829
|
|
|
2727
2830
|
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2728
2831
|
ClassRef?: ClassRef;
|
|
2832
|
+
/** A monetary amount. */
|
|
2833
|
+
Amount?: string;
|
|
2834
|
+
/** Site where inventory is located. */
|
|
2835
|
+
InventorySiteRef?: InventorySiteRef;
|
|
2836
|
+
/** Location within the Inventory Site. */
|
|
2837
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
2838
|
+
/** The serial number of the asset. */
|
|
2839
|
+
SerialNumber?: string;
|
|
2840
|
+
/** The lot number of the asset. */
|
|
2841
|
+
LotNumber?: string;
|
|
2842
|
+
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
2843
|
+
ExpirationDateForSerialLotNumber?: string;
|
|
2844
|
+
/** Indicates the date on which the QuickBooks user performs the service for the customer. */
|
|
2845
|
+
ServiceDate?: string;
|
|
2729
2846
|
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
2730
2847
|
|
|
2731
2848
|
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales.
|
|
2732
2849
|
|
|
2733
2850
|
A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
2734
2851
|
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
2735
|
-
/** The
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2852
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
2853
|
+
|
|
2854
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
2855
|
+
|
|
2856
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
2857
|
+
|
|
2858
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
2859
|
+
|
|
2860
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2861
|
+
Other1?: string;
|
|
2862
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
2863
|
+
|
|
2864
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
2865
|
+
|
|
2866
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
2867
|
+
|
|
2868
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
2869
|
+
|
|
2870
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2871
|
+
Other2?: string;
|
|
2739
2872
|
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
2740
2873
|
DataExtRet?: DataExtRet | DataExtRet[];
|
|
2741
2874
|
}
|
|
2742
|
-
export interface
|
|
2743
|
-
/**
|
|
2744
|
-
|
|
2875
|
+
export interface InvoiceMod {
|
|
2876
|
+
/** QuickBooks generates a unique `TxnID` for each transaction that is added to QuickBooks. A `TxnID` returned from a request can be used to refer to the transaction in subsequent requests.
|
|
2877
|
+
|
|
2878
|
+
Notice that you cannot supply the `TxnID` of a `TimeTracking` transaction to `TransactionQueryRq` requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window. */
|
|
2879
|
+
TxnID: string;
|
|
2880
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
2881
|
+
EditSequence: string;
|
|
2882
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
2883
|
+
CustomerRef?: CustomerRef;
|
|
2884
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
2885
|
+
|
|
2886
|
+
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
2887
|
+
|
|
2888
|
+
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
2889
|
+
ClassRef?: ClassRef;
|
|
2890
|
+
/** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
2891
|
+
|
|
2892
|
+
If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
|
|
2893
|
+
ARAccountRef?: ARAccountRef;
|
|
2894
|
+
/** QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `TemplateRef` element refers to one of these templates. */
|
|
2895
|
+
TemplateRef?: TemplateRef;
|
|
2896
|
+
/** The date of the invoice. If you leave `TxnDate` out of an `InvoiceAdd` message, QuickBooks might prefill it with the date of the invoice that was most recently saved. */
|
|
2897
|
+
TxnDate?: string;
|
|
2898
|
+
/** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
|
|
2899
|
+
|
|
2900
|
+
In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
|
|
2901
|
+
|
|
2902
|
+
Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
|
|
2903
|
+
RefNumber?: string;
|
|
2904
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines.
|
|
2905
|
+
|
|
2906
|
+
There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode. Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query)
|
|
2907
|
+
|
|
2908
|
+
If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
2909
|
+
BillAddress?: BillAddress;
|
|
2910
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines.
|
|
2911
|
+
|
|
2912
|
+
There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode. Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query)
|
|
2913
|
+
|
|
2914
|
+
If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
2915
|
+
ShipAddress?: ShipAddress;
|
|
2916
|
+
/** If `IsPending` is set to true, the invoice has not been completed. Pending sales might include unpaid orders, estimates, tracked hours that have not yet been billed, or sales of back-ordered items. */
|
|
2917
|
+
IsPending?: boolean;
|
|
2918
|
+
/** Purchase order number. */
|
|
2919
|
+
PONumber?: string;
|
|
2920
|
+
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2921
|
+
TermsRef?: TermsRef;
|
|
2922
|
+
/** If `DueDate` is not included in an `InvoiceAdd` request, QuickBooks might determine the due date according to the terms set for this customer. */
|
|
2923
|
+
DueDate?: string;
|
|
2924
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2925
|
+
SalesRepRef?: SalesRepRef;
|
|
2926
|
+
/** QuickBooks uses the term `FOB`, “freight on board,” to indicate the place from which the product is shipped. The `FOB` has no accounting implications. */
|
|
2927
|
+
FOB?: string;
|
|
2928
|
+
/** The date when the product was, or will be, shipped. */
|
|
2929
|
+
ShipDate?: string;
|
|
2930
|
+
/** A shipping method, for example, standard mail or overnight delivery. A `ShipMethodRef` aggregate refers to an item on the `ShipMethod` list. In a request, if a `ShipMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2931
|
+
ShipMethodRef?: ShipMethodRef;
|
|
2932
|
+
/** A sales-tax item is used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. (Compare with the `ItemSalesTaxGroupAdd` message.) An `ItemSalesTaxRef` aggregate refers to an item on this list. In a request, if an `ItemSalesTaxRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
2933
|
+
|
|
2934
|
+
Taxes can be reflected in transaction line items
|
|
2935
|
+
|
|
2936
|
+
The following information refers to invoices specifically, but it also applies to sales receipts. Generally its best to assign a tax item or tax group item to an invoice and allow QuickBooks to apply the same tax to all taxable items on the invoice. However in some situations multiple tax combinations are required, so this method doesn’t work. In this case one must use techniques to apply the taxes in the invoice itself as line items. Using lines to apply taxes isn’t always straight forward.
|
|
2937
|
+
|
|
2938
|
+
When applying taxes as line items, only single tax items can be used, tax groups can only be used for the entire invoice. If you have multiple taxes which apply to all taxable items, and one or more other taxes that only apply to some of the items on an invoice its better to use a tax group which applies to the entire invoice for the taxes which applies to all taxable items and then apply the other taxes in the invoice itself. One applies a tax or tax group to an entire invoice by using the `ItemSalesTaxRef` aggregate.
|
|
2939
|
+
|
|
2940
|
+
One can use subtotals to apply a single tax line to multiple items in an invoice, but the tax is only applied automatically for the first tax line after the subtotal line. Any other tax lines which need to be applied to the subtotal line must supply their own amount. If you don’t supply an amount the amount comes out as zero and the tax line is useless. When one does supply an amount, the amount of tax on the subtotal also shows up in the rate column for that tax line. There isn’t any way for the rate to show up as anything other than the amount of the tax.
|
|
2941
|
+
|
|
2942
|
+
If you have a complicated tax situation where no single tax applies to all taxable items on the invoice, you must choose a zero percent tax to apply for the entire invoice. It is recommended to name such a tax item “Tax Calculated On Invoice” so that it’s clear that the tax is not being applied by QuickBooks on the entire invoice. */
|
|
2943
|
+
ItemSalesTaxRef?: ItemSalesTaxRef;
|
|
2944
|
+
/** Message that appears in reports, but not on the invoice. */
|
|
2945
|
+
Memo?: string;
|
|
2946
|
+
/** A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `CustomerMsgRef` aggregate refers to one of the messages on the `CustomerMsg` list. In a request, if a `CustomerMsgRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2947
|
+
CustomerMsgRef?: CustomerMsgRef;
|
|
2948
|
+
/** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once.
|
|
2949
|
+
|
|
2950
|
+
Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
|
|
2951
|
+
IsToBePrinted?: boolean;
|
|
2952
|
+
/** If this is set to true, at runtime the customer referenced in this transaction will be checked for a valid email address. If there is no valid email address, the request will fail. If there is a valid email address currently in QuickBooks for the customer, and the request succeeds, the transaction will be added to `QuickBook`’s list of forms to be emailed, possibly in a batch.
|
|
2953
|
+
|
|
2954
|
+
Notice that setting this field to true does not actually perform the emailing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from emailing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be emailed. */
|
|
2955
|
+
IsToBeEmailed?: boolean;
|
|
2956
|
+
/** For future use with international versions of QuickBooks. */
|
|
2957
|
+
IsTaxIncluded?: boolean;
|
|
2958
|
+
/** Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the `SalesTaxCode` list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `CustomerSalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
2959
|
+
CustomerSalesTaxCodeRef?: CustomerSalesTaxCodeRef;
|
|
2960
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
2961
|
+
|
|
2962
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
2963
|
+
|
|
2964
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
2965
|
+
|
|
2966
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
2967
|
+
|
|
2968
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
2969
|
+
Other?: string;
|
|
2970
|
+
/** The exchange rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the “home” currency. The exchange rate should be considered a snapshot of the rates in effect at the `AsOfDate`.
|
|
2971
|
+
|
|
2972
|
+
You can update the exchange rate using the exchange rate property when you add a transaction. However, you need to obtain and supply the exchange rate. If you are using USD (United States Dollars) as the home currency and are connected to the Internet, you can download the current exchange rates for all active currencies automatically in the QuickBooks UI by selecting Lists->Currency->Activities->Download latest exchange rates. (Currently, you can’t do this in the SDK.) */
|
|
2973
|
+
ExchangeRate?: number;
|
|
2974
|
+
/** A list of credits to set. Setting, or applying, a credit means using an available credit to lower the balance of a transaction such as an invoice or a bill. (Creating a credit, on the other hand, means making a credit available to be applied in the future.)
|
|
2975
|
+
|
|
2976
|
+
Notice that if you use a credit (`SetCredit`) only, in your `ReceivePaymentAdd` or `BillPaymentCreditCardAdd` request, then no transaction ID is created, because, from the viewpoint of QuickBooks, there was no transaction. Setting a credit merely creates links between existing transactions (for example, between a credit memo transaction and an invoice transaction), and no information about these links will be returned to you in the response.
|
|
2977
|
+
|
|
2978
|
+
If you need to retrieve which transactions were linked in the `SetCredit`, for Bill Payment, you must do a `BillQuery` and specify `IncludeLinkedTxns`. */
|
|
2979
|
+
SetCredit?: SetCredit | SetCredit[];
|
|
2980
|
+
/** Represents one line in the invoice. Compare with `InvoiceLineGroup`, which represents a previously defined group of lines in the invoice. */
|
|
2981
|
+
InvoiceLineMod?: InvoiceLineMod;
|
|
2982
|
+
/** Represents a previously defined group of lines in the invoice. Compare with `InvoiceLine`, which represents just one line in the invoice. */
|
|
2983
|
+
InvoiceLineGroupMod?: InvoiceLineGroupMod;
|
|
2984
|
+
}
|
|
2985
|
+
export interface InvoiceModRq {
|
|
2986
|
+
InvoiceMod: InvoiceMod;
|
|
2987
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address.
|
|
2988
|
+
|
|
2989
|
+
The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name.
|
|
2990
|
+
|
|
2991
|
+
Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
2992
|
+
IncludeRetElement?: string[] | string;
|
|
2993
|
+
}
|
|
2994
|
+
export interface InvoiceModRs {
|
|
2995
|
+
InvoiceRet?: InvoiceRet;
|
|
2996
|
+
ErrorRecovery?: ErrorRecovery;
|
|
2997
|
+
}
|
|
2998
|
+
export interface InvoiceQueryRq {
|
|
2999
|
+
/** One or more `TxnID` values. QuickBooks generates a unique `TxnID` for each transaction that is added to QuickBooks. Notice that you cannot supply the `TxnID` of a `TimeTracking` transaction to `TransactionQuery` requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window. */
|
|
3000
|
+
TxnID?: string[] | string;
|
|
3001
|
+
/** A list of one or more `RefNumber` values. A `RefNumber` is a string of characters that refers to a transaction and that can be arbitrarily changed by the QuickBooks user. Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request, the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
|
|
3002
|
+
RefNumber?: string[] | string;
|
|
3003
|
+
/** A list of one or more case sensitive `RefNumber` values. A `RefNumber` is a string of characters that refers to a transaction and that can be arbitrarily changed by the QuickBooks user. You should use this case sensitive ref number list rather than the older `RefNumber` list, because it provides much better performance in certain circumstances. The older `refNumber` list provided slow performance if the `refNumber` values contained letters, not just digits. This `RefNumberCaseSensitive` list, new in SDK 4.0, eliminates this performance hit. */
|
|
3004
|
+
RefNumberCaseSensitive?: string[] | string;
|
|
3005
|
+
/** Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `metaData` query attribute.) If you include a `MaxReturned` value, it must be at least 1. */
|
|
3006
|
+
MaxReturned?: number;
|
|
3007
|
+
/** Filters according to the dates when transactions were last modified. The `ModifiedDateRangeFilter` aggregate is not required to contain any elements, but if it is empty, we recommend that you leave it out altogether. Note that the time portion of the `FromModifiedDate` and `ToModifiedDate` fields was not supported in qbXML version 1.0 or 1.1. (To filter according to the dates when transactions were deleted, use a `TxnDeletedQuery` message.) */
|
|
3008
|
+
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
3009
|
+
/** Filters according to the original transaction dates. */
|
|
3010
|
+
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
3011
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
3012
|
+
EntityFilter?: EntityFilter;
|
|
3013
|
+
/** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
|
|
3014
|
+
AccountFilter?: AccountFilter;
|
|
3015
|
+
/** Filters according to `RefNumber`. */
|
|
3016
|
+
RefNumberFilter?: RefNumberFilter;
|
|
3017
|
+
/** Filters according to `RefNumber`. The filtering code will do a numerical comparison (if `FromRefNumber` and `ToRefNumber` only contain digits) or a lexicographical comparison (if either `FromRefNumber` or `ToRefNumber` contain any nondigit characters). In the first situation, if you need to query for a `RefNumber` that is larger than the maximum long integer value of 2147483647, one workaround is to specify a `FromRefNumber` that is less than or equal to 2147483647 without specifying a `ToRefNumber`. */
|
|
3018
|
+
RefNumberRangeFilter?: RefNumberRangeFilter;
|
|
3019
|
+
/** Filters by the specified currency. */
|
|
3020
|
+
CurrencyFilter?: CurrencyFilter;
|
|
3021
|
+
/** Allows you to filter for transactions according to whether or not they are paid. */
|
|
3022
|
+
PaidStatus?: PaidStatus;
|
|
3023
|
+
/** This filter allows you to omit line items from a query response to get a smaller result. The default value is false, so line items are omitted by default. Set `IncludeLineItems` to true to include line items in the response if you don’t mind getting a larger result. */
|
|
3024
|
+
IncludeLineItems?: boolean;
|
|
3025
|
+
/** If you set `IncludeLinkedTxns` to true, then the returned object will include a list of all the transactions linked to the queried object. (This list is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items.) Each linked transaction will be represented by a `LinkedTxn` aggregate. If no linked transactions exist, no `LinkedTxn` aggregates will be returned. */
|
|
3026
|
+
IncludeLinkedTxns?: boolean;
|
|
3027
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3028
|
+
IncludeRetElement?: string[] | string;
|
|
3029
|
+
/** Zero or more `OwnerID` values. `OwnerID` refers to the owner of a data extension:If `OwnerID` is 0, this is a public data extension, also known as a custom field. Custom fields appear in the QuickBooks UI.If `OwnerID` is a GUID, for example `{6B063959-81B0-4622-85D6-F548C8CCB517}`, this field is a private data extension defined by an integrated application. Private data extensions do not appear in the QuickBooks UI. Note that `OwnerID` values are not case-sensitive, meaning that if you enter an `OwnerID` value with lower-case letters, the value will be saved and returned with upper-case letters. When you share a private data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
|
|
3030
|
+
OwnerID?: string[] | string;
|
|
3031
|
+
}
|
|
3032
|
+
export interface InvoiceQueryRs {
|
|
3033
|
+
InvoiceRet: InvoiceRet[];
|
|
3034
|
+
}
|
|
3035
|
+
export interface InvoiceRet {
|
|
3036
|
+
/** QuickBooks generates a unique `TxnID` for each transaction that is added to QuickBooks. A `TxnID` returned from a request can be used to refer to the transaction in subsequent requests.
|
|
3037
|
+
|
|
3038
|
+
Notice that you cannot supply the `TxnID` of a `TimeTracking` transaction to `TransactionQueryRq` requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window. */
|
|
3039
|
+
TxnID: string;
|
|
3040
|
+
/** Time the object was created. */
|
|
3041
|
+
TimeCreated: string;
|
|
3042
|
+
/** Time the object was last modified. */
|
|
3043
|
+
TimeModified: string;
|
|
3044
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
3045
|
+
EditSequence: string;
|
|
3046
|
+
/** An identifying number for this transaction. */
|
|
3047
|
+
TxnNumber?: number;
|
|
3048
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
3049
|
+
CustomerRef: CustomerRef;
|
|
3050
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
3051
|
+
|
|
3052
|
+
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
3053
|
+
|
|
3054
|
+
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3055
|
+
ClassRef?: ClassRef;
|
|
3056
|
+
/** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
3057
|
+
|
|
3058
|
+
If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
|
|
3059
|
+
ARAccountRef?: ARAccountRef;
|
|
3060
|
+
/** QuickBooks templates specify how to print certain transactions. A template query returns the names of all templates that have been defined in QuickBooks. A `TemplateRef` element refers to one of these templates. */
|
|
3061
|
+
TemplateRef?: TemplateRef;
|
|
3062
|
+
/** The date of the invoice. If you leave `TxnDate` out of an `InvoiceAdd` message, QuickBooks might prefill it with the date of the invoice that was most recently saved. */
|
|
3063
|
+
TxnDate: string;
|
|
3064
|
+
/** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
|
|
3065
|
+
|
|
3066
|
+
In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
|
|
3067
|
+
|
|
3068
|
+
Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
|
|
3069
|
+
RefNumber?: string;
|
|
3070
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines.
|
|
3071
|
+
|
|
3072
|
+
There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode. Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query)
|
|
3073
|
+
|
|
3074
|
+
If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
3075
|
+
BillAddress?: BillAddress;
|
|
3076
|
+
/** The address expressed as an address block of `Addr1` through `Addr5`, depending on the number of lines in the original request that created the address. */
|
|
3077
|
+
BillAddressBlock?: BillAddressBlock;
|
|
3078
|
+
/** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines.
|
|
3079
|
+
|
|
3080
|
+
There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode. Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query)
|
|
3081
|
+
|
|
3082
|
+
If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
|
|
3083
|
+
ShipAddress?: ShipAddress;
|
|
3084
|
+
/** The address expressed as an address block of `Addr1` through `Addr5`, depending on the number of lines in the original request that created the address. */
|
|
3085
|
+
ShipAddressBlock?: ShipAddressBlock;
|
|
3086
|
+
/** If `IsPending` is set to true, the invoice has not been completed. Pending sales might include unpaid orders, estimates, tracked hours that have not yet been billed, or sales of back-ordered items. */
|
|
3087
|
+
IsPending?: boolean;
|
|
3088
|
+
/** If `IsFinanceCharge` is true, a finance-charge item has been added to the invoice. */
|
|
3089
|
+
IsFinanceCharge?: boolean;
|
|
3090
|
+
/** Purchase order number. */
|
|
3091
|
+
PONumber?: string;
|
|
3092
|
+
/** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3093
|
+
TermsRef?: TermsRef;
|
|
3094
|
+
/** If `DueDate` is not included in an `InvoiceAdd` request, QuickBooks might determine the due date according to the terms set for this customer. */
|
|
3095
|
+
DueDate?: string;
|
|
3096
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3097
|
+
SalesRepRef?: SalesRepRef;
|
|
3098
|
+
/** QuickBooks uses the term `FOB`, “freight on board,” to indicate the place from which the product is shipped. The `FOB` has no accounting implications. */
|
|
3099
|
+
FOB?: string;
|
|
3100
|
+
/** The date when the product was, or will be, shipped. */
|
|
3101
|
+
ShipDate?: string;
|
|
3102
|
+
/** A shipping method, for example, standard mail or overnight delivery. A `ShipMethodRef` aggregate refers to an item on the `ShipMethod` list. In a request, if a `ShipMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3103
|
+
ShipMethodRef?: ShipMethodRef;
|
|
3104
|
+
/** The total of all the invoice lines, before taxes and `AppliedAmount` are applied. (By contrast, a subtotal item (an `ItemSubtotal` object) gives only the total of the amounts in the lines that appear above it.) */
|
|
3105
|
+
Subtotal?: string;
|
|
3106
|
+
/** A sales-tax item is used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. (Compare with the `ItemSalesTaxGroupAdd` message.) An `ItemSalesTaxRef` aggregate refers to an item on this list. In a request, if an `ItemSalesTaxRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
3107
|
+
|
|
3108
|
+
Taxes can be reflected in transaction line items
|
|
3109
|
+
|
|
3110
|
+
The following information refers to invoices specifically, but it also applies to sales receipts. Generally its best to assign a tax item or tax group item to an invoice and allow QuickBooks to apply the same tax to all taxable items on the invoice. However in some situations multiple tax combinations are required, so this method doesn’t work. In this case one must use techniques to apply the taxes in the invoice itself as line items. Using lines to apply taxes isn’t always straight forward.
|
|
3111
|
+
|
|
3112
|
+
When applying taxes as line items, only single tax items can be used, tax groups can only be used for the entire invoice. If you have multiple taxes which apply to all taxable items, and one or more other taxes that only apply to some of the items on an invoice its better to use a tax group which applies to the entire invoice for the taxes which applies to all taxable items and then apply the other taxes in the invoice itself. One applies a tax or tax group to an entire invoice by using the `ItemSalesTaxRef` aggregate.
|
|
3113
|
+
|
|
3114
|
+
One can use subtotals to apply a single tax line to multiple items in an invoice, but the tax is only applied automatically for the first tax line after the subtotal line. Any other tax lines which need to be applied to the subtotal line must supply their own amount. If you don’t supply an amount the amount comes out as zero and the tax line is useless. When one does supply an amount, the amount of tax on the subtotal also shows up in the rate column for that tax line. There isn’t any way for the rate to show up as anything other than the amount of the tax.
|
|
3115
|
+
|
|
3116
|
+
If you have a complicated tax situation where no single tax applies to all taxable items on the invoice, you must choose a zero percent tax to apply for the entire invoice. It is recommended to name such a tax item “Tax Calculated On Invoice” so that it’s clear that the tax is not being applied by QuickBooks on the entire invoice. */
|
|
3117
|
+
ItemSalesTaxRef?: ItemSalesTaxRef;
|
|
3118
|
+
/** The percentage charged for sales tax. */
|
|
3119
|
+
SalesTaxPercentage?: string;
|
|
3120
|
+
/** The total amount of sales tax charged. */
|
|
3121
|
+
SalesTaxTotal?: string;
|
|
3122
|
+
/** Amount of credit that is applied to the customer’s invoice, or amount that the customer has paid on this invoice. */
|
|
3123
|
+
AppliedAmount?: string;
|
|
3124
|
+
/** The outstanding balance on this invoice. `BalanceRemaining` = (`Subtotal` + `SalesTaxTotal`) – `AppliedAmount`. */
|
|
3125
|
+
BalanceRemaining?: string;
|
|
3126
|
+
/** The currency object contains all of the information needed by QuickBooks to display and use. For built-in currencies, the name and currency code values are internationally accepted values and thus are not editable. The comma format is editable, as is the `IsActive` status. For user-defined currencies, every value in the object is editable including name and currency code.
|
|
3127
|
+
|
|
3128
|
+
When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
|
|
3129
|
+
CurrencyRef?: CurrencyRef;
|
|
3130
|
+
/** The exchange rate is the market price for which this currency can be exchanged for the currency used by the QuickBooks company file as the “home” currency. The exchange rate should be considered a snapshot of the rates in effect at the `AsOfDate`.
|
|
3131
|
+
|
|
3132
|
+
You can update the exchange rate using the exchange rate property when you add a transaction. However, you need to obtain and supply the exchange rate. If you are using USD (United States Dollars) as the home currency and are connected to the Internet, you can download the current exchange rates for all active currencies automatically in the QuickBooks UI by selecting Lists->Currency->Activities->Download latest exchange rates. (Currently, you can’t do this in the SDK.) */
|
|
3133
|
+
ExchangeRate?: number;
|
|
3134
|
+
/** Balance remaining in units of the home currency. */
|
|
3135
|
+
BalanceRemainingInHomeCurrency?: string;
|
|
3136
|
+
/** Message that appears in reports, but not on the invoice. */
|
|
3137
|
+
Memo?: string;
|
|
3138
|
+
/** If `IsPaid` is true, this transaction has been paid. */
|
|
3139
|
+
IsPaid?: boolean;
|
|
3140
|
+
/** A standard message such as “Thank you for your business,” or “Please sign and return this estimate to indicate your approval.” A customer message can be included at the bottom of a form. A `CustomerMsgRef` aggregate refers to one of the messages on the `CustomerMsg` list. In a request, if a `CustomerMsgRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3141
|
+
CustomerMsgRef?: CustomerMsgRef;
|
|
3142
|
+
/** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once.
|
|
3143
|
+
|
|
3144
|
+
Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
|
|
3145
|
+
IsToBePrinted?: boolean;
|
|
3146
|
+
/** If this is set to true, at runtime the customer referenced in this transaction will be checked for a valid email address. If there is no valid email address, the request will fail. If there is a valid email address currently in QuickBooks for the customer, and the request succeeds, the transaction will be added to `QuickBook`’s list of forms to be emailed, possibly in a batch.
|
|
3147
|
+
|
|
3148
|
+
Notice that setting this field to true does not actually perform the emailing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from emailing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be emailed. */
|
|
3149
|
+
IsToBeEmailed?: boolean;
|
|
3150
|
+
/** For future use with international versions of QuickBooks. */
|
|
3151
|
+
IsTaxIncluded?: boolean;
|
|
3152
|
+
/** Refers to the sales-tax code for sales related to this customer. (That is, it refers to a member of the `SalesTaxCode` list.) The sales-tax code indicates whether an item is taxable or non-taxable, and why. In a request, if a `CustomerSalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3153
|
+
CustomerSalesTaxCodeRef?: CustomerSalesTaxCodeRef;
|
|
3154
|
+
/** The suggested discount for this invoice. */
|
|
3155
|
+
SuggestedDiscountAmount?: string;
|
|
3156
|
+
/** The date when `SuggestedDiscountAmount` would apply. */
|
|
3157
|
+
SuggestedDiscountDate?: string;
|
|
3158
|
+
/** Other, `Other1`, and `Other2` are standard QuickBooks custom fields available to transactions. The `Other` field is a transaction-level field, like the `FOB` field, PO Number field, and so forth. This field appears only once for the transaction: you can write to it and modify it.
|
|
3159
|
+
|
|
3160
|
+
The `Other1` and `Other2` fields exist at the line item level; each line item has them, and you can write or modify the value in each line.
|
|
3161
|
+
|
|
3162
|
+
These custom fields are available for immediate use: you don’t need to enable these in the transaction template to be able to access them via SDK. (However, those `Other`, `Other1`, `Other2` fields and their values are viewable and printable in QuickBooks only if the transaction template has these enabled!)
|
|
3163
|
+
|
|
3164
|
+
Note: you cannot use `DataExtDef` to define `Other`, `Other1`, `Other2` for the transaction. There is no need to in any case. Those are automatically available.
|
|
3165
|
+
|
|
3166
|
+
Notice that the `Other`, `Other1`, and `Other2` names are the real SDK names for those custom fields: that is, their `DataExtName` value will always be `Other`, `Other1`, or `Other2`. Even if the user has re-labelled those custom fields to something else, such as “Barracks Number”, or “`Max` Headroom”, or even “Pleni Potentiary”. This re-labelling has no effect on the SDK. You’ll always write to them or modify them as `Other`, `Other1`, or `Other2`. */
|
|
3167
|
+
Other?: string;
|
|
3168
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
3169
|
+
ExternalGUID?: string;
|
|
3170
|
+
/** If the `IncludeLinkedTxns` flag is set to true in a query, or if you create an item receipt that links to other transactionsthen the returned object will include a list of linked transactions, if any exist. If no linked transactions exist, the `ILinkedTxnList` object will be empty.
|
|
3171
|
+
|
|
3172
|
+
The list of linked transactions is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items. */
|
|
3173
|
+
LinkedTxn?: LinkedTxn | LinkedTxn[];
|
|
3174
|
+
/** Represents one line in the invoice. Compare with `InvoiceLineGroup`, which represents a previously defined group of lines in the invoice. */
|
|
3175
|
+
InvoiceLineRet?: InvoiceLineRet;
|
|
3176
|
+
/** Represents a previously defined group of lines in the invoice. Compare with `InvoiceLine`, which represents just one line in the invoice. */
|
|
3177
|
+
InvoiceLineGroupRet?: InvoiceLineGroupRet;
|
|
3178
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3179
|
+
DataExtRet?: DataExtRet | DataExtRet[];
|
|
3180
|
+
}
|
|
3181
|
+
export interface ItemGroupLineAdd {
|
|
3182
|
+
/** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
|
|
3183
|
+
ItemGroupRef: ItemGroupRef;
|
|
3184
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3185
|
+
Quantity?: number;
|
|
3186
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3187
|
+
UnitOfMeasure?: string;
|
|
3188
|
+
/** Site where inventory is located. */
|
|
3189
|
+
InventorySiteRef?: InventorySiteRef;
|
|
3190
|
+
/** Location within the Inventory Site. */
|
|
3191
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
3192
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3193
|
+
DataExt?: DataExt | DataExt[];
|
|
3194
|
+
}
|
|
3195
|
+
export interface ItemGroupLineMod {
|
|
3196
|
+
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
3197
|
+
|
|
3198
|
+
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
3199
|
+
TxnLineID: string;
|
|
3200
|
+
/** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
|
|
3201
|
+
ItemGroupRef?: ItemGroupRef;
|
|
3202
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3203
|
+
Quantity?: number;
|
|
3204
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3205
|
+
UnitOfMeasure?: string;
|
|
3206
|
+
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
3207
|
+
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
3208
|
+
/** A list of `IItemLineRet` objects, each representing one line of the item. Each item line is used to track a portion of a transaction that represents the purchase of an “item.” */
|
|
3209
|
+
ItemLineMod?: ItemLineMod | ItemLineMod[];
|
|
3210
|
+
}
|
|
3211
|
+
export interface ItemGroupLineRet {
|
|
3212
|
+
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
3213
|
+
|
|
3214
|
+
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
3215
|
+
TxnLineID: string;
|
|
3216
|
+
/** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
|
|
3217
|
+
ItemGroupRef: ItemGroupRef;
|
|
3218
|
+
/** A descriptive text field. */
|
|
3219
|
+
Desc?: string;
|
|
3220
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3221
|
+
Quantity?: number;
|
|
3222
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3223
|
+
UnitOfMeasure?: string;
|
|
3224
|
+
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
3225
|
+
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
3226
|
+
/** Total amount of money paid or received. In a receive payment add transaction that has payment amount elements (such as `AppliedToTxnAdd` lines) you must supply a `TotalAmount` and the sum of all the `PaymentAmount` elements must not be greater than the `TotalAmount`. */
|
|
3227
|
+
TotalAmount: string;
|
|
3228
|
+
/** A list of `IItemLineRet` objects, each representing one line of the item. Each item line is used to track a portion of a transaction that represents the purchase of an “item.” */
|
|
3229
|
+
ItemLineRet?: ItemLineRet | ItemLineRet[];
|
|
3230
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3231
|
+
DataExt?: DataExt | DataExt[];
|
|
3232
|
+
}
|
|
3233
|
+
export interface ItemGroupRef {
|
|
3234
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3235
|
+
ListID?: string;
|
|
3236
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3237
|
+
FullName?: string;
|
|
3238
|
+
}
|
|
3239
|
+
export interface ItemInventoryAdd {
|
|
3240
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3241
|
+
Name: string;
|
|
3242
|
+
/** Barcode reference information. */
|
|
3243
|
+
BarCode?: BarCode;
|
|
3244
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3245
|
+
IsActive?: boolean;
|
|
3246
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3247
|
+
ClassRef?: ClassRef;
|
|
3248
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3249
|
+
ParentRef?: ParentRef;
|
|
3250
|
+
/** The part number used by the manufacturer of the item. */
|
|
3251
|
+
ManufacturerPartNumber?: string;
|
|
3252
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3253
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3254
|
+
/** For future use with international versions of QuickBooks. */
|
|
3255
|
+
IsTaxIncluded?: boolean;
|
|
3256
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3257
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3258
|
+
/** Appears in the `Description` column of a sales form when the QuickBooks user sells this item. For a fixed asset, describes the sale of the asset (for accounting purposes). */
|
|
3259
|
+
SalesDesc?: string;
|
|
3260
|
+
/** Price charged for this item. */
|
|
3261
|
+
SalesPrice?: string;
|
|
3262
|
+
/** Refers to an income account. If an `IncomeAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3263
|
+
IncomeAccountRef?: IncomeAccountRef;
|
|
3264
|
+
/** Appears in the `Description` column of checks, bills, credit card charges, and item receipts when this item is reordered. */
|
|
3265
|
+
PurchaseDesc?: string;
|
|
3266
|
+
/** Amount that the QuickBooks user expects to pay when ordering or buying this item, or the amount that was actually paid for this item. */
|
|
3267
|
+
PurchaseCost?: string;
|
|
3268
|
+
/** Account used for taxes on purchases in CA or UK. */
|
|
3269
|
+
PurchaseTaxCodeRef?: PurchaseTaxCodeRef;
|
|
3270
|
+
/** Refers to the account that QuickBooks uses to track the original cost of goods that are eventually sold. (The `AccountType` of this account will be `CostOfGoodsSold`.) In a request, if a `COGSAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3271
|
+
COGSAccountRef?: COGSAccountRef;
|
|
3272
|
+
/** The preferred vendor for this item. If a `PrefVendorRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3273
|
+
PrefVendorRef?: PrefVendorRef;
|
|
3274
|
+
/** Refers to the account QuickBooks uses to track the current value of the company’s inventory. (The `AccountType` of this account will be `FixedAsset`, `OtherAsset`, or `OtherCurrentAsset`.) In a request, if an `AssetAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3275
|
+
AssetAccountRef?: AssetAccountRef;
|
|
3276
|
+
/** Quantity at which QuickBooks will remind the user to reorder this inventory item. */
|
|
3277
|
+
ReorderPoint?: number;
|
|
3278
|
+
/** Maximum number of items in inventory. */
|
|
3279
|
+
Max?: number;
|
|
3280
|
+
/** The number of these items in inventory. `QuantityOnHand` times `AverageCost` is `TotalValue` in an inventory item list. To change the `QuantityOnHand` for an item, you would have to use `InventoryAdjustmentAdd` not an `ItemInventoryMod`. */
|
|
3281
|
+
QuantityOnHand?: number;
|
|
3282
|
+
/** The total value of this inventory. If `TotalValue` is included, `QuantityOnHand` must also be included and must be greater than zero. If both `QuantityOnHand` and `PurchaseCost` are included, then `TotalValue` will be set to `QuantityOnHand` times `PurchaseCost`, regardless of what `TotalValue` is explicitly set to. */
|
|
3283
|
+
TotalValue?: string;
|
|
3284
|
+
/** The date when an item was converted into an inventory item from some other type of item. */
|
|
3285
|
+
InventoryDate?: string;
|
|
3286
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
3287
|
+
ExternalGUID?: string;
|
|
3288
|
+
}
|
|
3289
|
+
export interface ItemInventoryAddRq {
|
|
3290
|
+
ItemInventoryAdd: ItemInventoryAdd;
|
|
3291
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3292
|
+
IncludeRetElement?: string[] | string;
|
|
3293
|
+
}
|
|
3294
|
+
export interface ItemInventoryAddRs {
|
|
3295
|
+
ItemInventoryRet?: ItemInventoryRet;
|
|
3296
|
+
ErrorRecovery?: ErrorRecovery;
|
|
3297
|
+
}
|
|
3298
|
+
export interface ItemInventoryMod {
|
|
3299
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3300
|
+
ListID: string;
|
|
3301
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
3302
|
+
EditSequence: string;
|
|
3303
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3304
|
+
Name?: string;
|
|
3305
|
+
/** Barcode reference information. */
|
|
3306
|
+
BarCode?: BarCode;
|
|
3307
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3308
|
+
IsActive?: boolean;
|
|
3309
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3310
|
+
ClassRef?: ClassRef;
|
|
3311
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3312
|
+
ParentRef?: ParentRef;
|
|
3313
|
+
/** The part number used by the manufacturer of the item. */
|
|
3314
|
+
ManufacturerPartNumber?: string;
|
|
3315
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3316
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3317
|
+
/** By Default `ForceUOMChange` is false. However, in item Mod requests, you need to set the `ForceUOMChange` field to True if you are changing the UOM set and the base unit of the new set does not match the base unit of the UOM set currently assigned to the item. This does the same thing as the user accepting the warning prompt in the UI. If you don’t set `ForceUOMChange` to True, you’ll get an error when you invoke the Item* Mod request.Y You should be aware that if you change the base unit for an item, you should also change the item’s quantities on hand and cost to reflect the new unit; otherwise the values will be inaccurate. An alternative to handle such UOM changes to an item is to create a new item with the desired UOM set and inactivate the old item. */
|
|
3318
|
+
ForceUOMChange?: boolean;
|
|
3319
|
+
/** For future use with international versions of QuickBooks. */
|
|
3320
|
+
IsTaxIncluded?: boolean;
|
|
3321
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3322
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3323
|
+
/** Appears in the `Description` column of a sales form when the QuickBooks user sells this item. For a fixed asset, describes the sale of the asset (for accounting purposes). */
|
|
3324
|
+
SalesDesc?: string;
|
|
3325
|
+
/** Price charged for this item. */
|
|
3326
|
+
SalesPrice?: string;
|
|
3327
|
+
/** Refers to an income account. If an `IncomeAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3328
|
+
IncomeAccountRef?: IncomeAccountRef;
|
|
3329
|
+
/** Used to support changing the `AccountRef` in the Mod request. When you do this, the QuickBooks UI normally displays a prompt asking whether the change should apply to existing transactions or not. Specifying False basically dismisses this with a “No” answer; specifying True dismisses it with a “Yes” answer and then changes the existing transactions that use the item with that `AccountRef`. Setting this to “True” should be used with caution and normally only after some user has indicated that they want those changes made to all those existing transactions! If any affected transactions are protected by a closing date and password, the `AccountRef` changes will not be made and so the Mod request will return an error without making the requested Mod. */
|
|
3330
|
+
ApplyIncomeAccountRefToExistingTxns?: boolean;
|
|
3331
|
+
/** Appears in the `Description` column of checks, bills, credit card charges, and item receipts when this item is reordered. */
|
|
3332
|
+
PurchaseDesc?: string;
|
|
3333
|
+
/** Amount that the QuickBooks user expects to pay when ordering or buying this item, or the amount that was actually paid for this item. */
|
|
3334
|
+
PurchaseCost?: string;
|
|
3335
|
+
/** Account used for taxes on purchases in CA or UK. */
|
|
3336
|
+
PurchaseTaxCodeRef?: PurchaseTaxCodeRef;
|
|
3337
|
+
/** Refers to the account that QuickBooks uses to track the original cost of goods that are eventually sold. (The `AccountType` of this account will be `CostOfGoodsSold`.) In a request, if a `COGSAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3338
|
+
COGSAccountRef?: COGSAccountRef;
|
|
3339
|
+
/** Effectively suppresses the UI prompt that is displayed upon a COGS account change when existing transactions use the account. */
|
|
3340
|
+
ApplyCOGSAccountRefToExistingTxns?: boolean;
|
|
3341
|
+
/** The preferred vendor for this item. If a `PrefVendorRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3342
|
+
PrefVendorRef?: PrefVendorRef;
|
|
3343
|
+
/** Refers to the account QuickBooks uses to track the current value of the company’s inventory. (The `AccountType` of this account will be `FixedAsset`, `OtherAsset`, or `OtherCurrentAsset`.) In a request, if an `AssetAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3344
|
+
AssetAccountRef?: AssetAccountRef;
|
|
3345
|
+
/** Quantity at which QuickBooks will remind the user to reorder this inventory item. */
|
|
3346
|
+
ReorderPoint?: number;
|
|
3347
|
+
/** Maximum number of items in inventory. */
|
|
3348
|
+
Max?: number;
|
|
3349
|
+
}
|
|
3350
|
+
export interface ItemInventoryModRq {
|
|
3351
|
+
ItemInventoryMod: ItemInventoryMod;
|
|
3352
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3353
|
+
IncludeRetElement?: string[] | string;
|
|
3354
|
+
}
|
|
3355
|
+
export interface ItemInventoryModRs {
|
|
3356
|
+
ItemInventoryRet?: ItemInventoryRet;
|
|
3357
|
+
ErrorRecovery?: ErrorRecovery;
|
|
3358
|
+
}
|
|
3359
|
+
export interface ItemInventoryQueryRq {
|
|
3360
|
+
/** One or more `ListID` values. Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3361
|
+
ListID?: string[] | string;
|
|
3362
|
+
/** A list of one or more `FullName` values. `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3363
|
+
FullName?: string[] | string;
|
|
3364
|
+
/** Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `metaData` query attribute.) If you include a `MaxReturned` value, it must be at least 1. */
|
|
3365
|
+
MaxReturned?: number;
|
|
3366
|
+
/** Used in filters to select list objects based on whether or not they are currently enabled for use by QuickBooks. The default value is `asActiveOnly`, which selects only list objects that are active. */
|
|
3367
|
+
ActiveStatus?: ActiveStatus;
|
|
3368
|
+
/** Selects objects modified on or after this date. See the note below regarding QBFC usage.For desktop versions of QuickBooks, the `FromModifiedDate` and `ToModifiedDate` must be between 1970-01-01 and 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). (The time portion of the field was not supported in qbXML version 1.0 or 1.1.) Also, for desktop versions of QuickBooks, if `FromModifiedDate` includes a date but not a time (for example, if you set `FromModifiedDate` to 2003-02-14), the time is assumed to be zero (2003-02-14T00:00:00). If you omit `FromModifiedDate`, it will be set to 1970-01-01T00:00:00 (1969-12-31T16:00:00-08:00 PST).For QBOE, the `FromModifiedDate` and `ToModifiedDate` must be between 1900-01-01T00:00:00 and 9999-12-31T00:00:00. If `FromModifiedDate` includes a date but not a time (for example, if you set `FromModifiedDate` to 2003-02-14), the time is assumed to be zero (2003-02-14T00:00:00). If you omit `FromModifiedDate`, it will be set to 1900-01-01T00:00:00.`Note`: When specifying this in QBFC, you need to supply the parameter `asDateOnly`, which is a Boolean. If `asDateOnly` is true, the date value will be represented as a date only (without a time). If `asDateOnly` is false, the date value will be represented as date and time, padded with zeros if necessary, and set to the beginning of the day if no time is provided. The `asDateOnly` parameter is especially useful in the `ToModifiedDate` field of a query: If `asDateOnly` is set to true in the `ToModifiedDate` field of a query, then the query includes elements modified up to the end of the day. If `asDateOnly` is false, the query includes elements modified up to the specified time (or up to the beginning of the day if no time is included). */
|
|
3369
|
+
FromModifiedDate?: string;
|
|
3370
|
+
/** Selects objects modified on or before this date. See the note below on QBFC usage.For desktop versions of QuickBooks, the `ToModifiedDate` and `FromModifiedDate` must be between 01/01/1970 and 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). (Note that the time portion of the field was not supported in qbXML version 1.0 or 1.1.) If `ToModifiedDate` includes a date but not a time (for example, if you set `ToModifiedDate` to 2003-02-14), the time is assumed to be the end of the day (2003-02-14T23:59:59). If you omit `ToModifiedDate` altogether, it will be set to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST).For QBOE, the `ToModifiedDate` and `FromModifiedDate` must be between 01/01/1900 and 9999-12-31T00:00:00. If `ToModifiedDate` includes a date but not a time (for example, if you set `ToModifiedDate` to 2003-02-14), the time is assumed to be the end of the day (2003-02-14T23:59:59). If you omit `ToModifiedDate` altogether, it will be set to 9999-12-31T00:00:00.`Note`: When specifying this in QBFC, you need to supply the parameter `asDateOnly`, which is a Boolean. If `asDateOnly` is true, the date value will be represented as a date only (without a time). If `asDateOnly` is false, the date value will be represented as date and time, padded with zeros if necessary, and set to the beginning of the day if no time is provided. The `asDateOnly` parameter is especially useful in the `ToModifiedDate` field of a query: If `asDateOnly` is set to true in the `ToModifiedDate` field of a query, then the query includes elements modified up to the end of the day. If `asDateOnly` is false, the query includes elements modified up to the specified time (or up to the beginning of the day if no time is included). */
|
|
3371
|
+
ToModifiedDate?: string;
|
|
3372
|
+
/** Filters according to the object’s `Name`. */
|
|
3373
|
+
NameFilter?: NameFilter;
|
|
3374
|
+
/** Filters according to the object’s `Name`. */
|
|
3375
|
+
NameRangeFilter?: NameRangeFilter;
|
|
3376
|
+
/** Filters according to the object’s class. */
|
|
3377
|
+
ClassFilter?: ClassFilter;
|
|
3378
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3379
|
+
IncludeRetElement?: string[] | string;
|
|
3380
|
+
/** Zero or more `OwnerID` values. `OwnerID` refers to the owner of a data extension:If `OwnerID` is 0, this is a public data extension, also known as a custom field. Custom fields appear in the QuickBooks UI.If `OwnerID` is a GUID, for example `{6B063959-81B0-4622-85D6-F548C8CCB517}`, this field is a private data extension defined by an integrated application. Private data extensions do not appear in the QuickBooks UI. Note that `OwnerID` values are not case-sensitive, meaning that if you enter an `OwnerID` value with lower-case letters, the value will be saved and returned with upper-case letters. When you share a private data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
|
|
3381
|
+
OwnerID?: string[] | string;
|
|
3382
|
+
}
|
|
3383
|
+
export interface ItemInventoryQueryRs {
|
|
3384
|
+
ItemInventoryRet: ItemInventoryRet[];
|
|
3385
|
+
}
|
|
3386
|
+
export interface ItemInventoryRet {
|
|
3387
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3388
|
+
ListID: string;
|
|
3389
|
+
/** Time the object was created. */
|
|
3390
|
+
TimeCreated: string;
|
|
3391
|
+
/** Time the object was last modified. */
|
|
3392
|
+
TimeModified: string;
|
|
3393
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
3394
|
+
EditSequence: string;
|
|
3395
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3396
|
+
Name: string;
|
|
3397
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3398
|
+
FullName: string;
|
|
3399
|
+
/** Value of the barcode in the item. */
|
|
3400
|
+
BarCodeValue?: string;
|
|
3401
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3402
|
+
IsActive?: boolean;
|
|
3403
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3404
|
+
ClassRef?: ClassRef;
|
|
3405
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3406
|
+
ParentRef?: ParentRef;
|
|
3407
|
+
/** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
|
|
3408
|
+
Sublevel: number;
|
|
3409
|
+
/** The part number used by the manufacturer of the item. */
|
|
3410
|
+
ManufacturerPartNumber?: string;
|
|
3411
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3412
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3413
|
+
/** For future use with international versions of QuickBooks. */
|
|
3414
|
+
IsTaxIncluded?: boolean;
|
|
3415
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3416
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3417
|
+
/** Appears in the `Description` column of a sales form when the QuickBooks user sells this item. For a fixed asset, describes the sale of the asset (for accounting purposes). */
|
|
3418
|
+
SalesDesc?: string;
|
|
3419
|
+
/** Price charged for this item. */
|
|
3420
|
+
SalesPrice?: string;
|
|
3421
|
+
/** Refers to an income account. If an `IncomeAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3422
|
+
IncomeAccountRef?: IncomeAccountRef;
|
|
3423
|
+
/** Appears in the `Description` column of checks, bills, credit card charges, and item receipts when this item is reordered. */
|
|
3424
|
+
PurchaseDesc?: string;
|
|
3425
|
+
/** Amount that the QuickBooks user expects to pay when ordering or buying this item, or the amount that was actually paid for this item. */
|
|
3426
|
+
PurchaseCost?: string;
|
|
3427
|
+
/** Account used for taxes on purchases in CA or UK. */
|
|
3428
|
+
PurchaseTaxCodeRef?: PurchaseTaxCodeRef;
|
|
3429
|
+
/** Refers to the account that QuickBooks uses to track the original cost of goods that are eventually sold. (The `AccountType` of this account will be `CostOfGoodsSold`.) In a request, if a `COGSAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3430
|
+
COGSAccountRef?: COGSAccountRef;
|
|
3431
|
+
/** The preferred vendor for this item. If a `PrefVendorRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3432
|
+
PrefVendorRef?: PrefVendorRef;
|
|
3433
|
+
/** Refers to the account QuickBooks uses to track the current value of the company’s inventory. (The `AccountType` of this account will be `FixedAsset`, `OtherAsset`, or `OtherCurrentAsset`.) In a request, if an `AssetAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3434
|
+
AssetAccountRef?: AssetAccountRef;
|
|
3435
|
+
/** Quantity at which QuickBooks will remind the user to reorder this inventory item. */
|
|
3436
|
+
ReorderPoint?: number;
|
|
3437
|
+
/** Maximum number of items in inventory. */
|
|
3438
|
+
Max?: number;
|
|
3439
|
+
/** The number of these items in inventory. `QuantityOnHand` times `AverageCost` is `TotalValue` in an inventory item list. To change the `QuantityOnHand` for an item, you would have to use `InventoryAdjustmentAdd` not an `ItemInventoryMod`. */
|
|
3440
|
+
QuantityOnHand?: number;
|
|
3441
|
+
/** `AverageCost` is the total value of this item divided by `QuantityOnHand`. Initially the total value is the same as the `QuantityOnHand` times the `PurchaseCost` (so `AverageCost` equals `PurchaseCost`). However, the total value can be changed by an inventory adjustment so that it no longer matches `QuantityOnHand` times `PurchaseCost`. */
|
|
3442
|
+
AverageCost?: string;
|
|
3443
|
+
/** The number of these items that have been ordered from vendors (as recorded in purchase orders) but not received. */
|
|
3444
|
+
QuantityOnOrder?: number;
|
|
3445
|
+
/** The number of these items that have been sold (as recorded in sales orders) but not delivered to customers. */
|
|
3446
|
+
QuantityOnSalesOrder?: number;
|
|
3447
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
3448
|
+
ExternalGUID?: string;
|
|
3449
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3450
|
+
DataExtRet?: DataExtRet | DataExtRet[];
|
|
3451
|
+
}
|
|
3452
|
+
export interface ItemLineAdd {
|
|
3453
|
+
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types.
|
|
3454
|
+
|
|
3455
|
+
For example, here are some requests that impose limits on what items `ItemRef` can refer to.
|
|
3456
|
+
|
|
3457
|
+
For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax items For `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item. For `BillingRateAdd` requests, the `ItemRef` must refer to a service item.
|
|
3458
|
+
|
|
3459
|
+
You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3460
|
+
ItemRef?: ItemRef;
|
|
3461
|
+
/** Site where inventory is located. */
|
|
3462
|
+
InventorySiteRef?: InventorySiteRef;
|
|
3463
|
+
/** Location within the Inventory Site. */
|
|
3464
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
3465
|
+
/** The serial number of the asset. */
|
|
3466
|
+
SerialNumber?: string;
|
|
3467
|
+
/** The lot number of the asset. */
|
|
3468
|
+
LotNumber?: string;
|
|
3469
|
+
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
3470
|
+
ExpirationDateForSerialLotNumber?: string;
|
|
3471
|
+
/** A descriptive text field. */
|
|
3472
|
+
Desc?: string;
|
|
3473
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3474
|
+
Quantity?: number;
|
|
3475
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3476
|
+
UnitOfMeasure?: string;
|
|
3477
|
+
/** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
|
|
3478
|
+
Cost?: string;
|
|
3479
|
+
/** A monetary amount. */
|
|
3480
|
+
Amount?: string;
|
|
3481
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
3482
|
+
CustomerRef?: CustomerRef;
|
|
3483
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
3484
|
+
|
|
3485
|
+
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3486
|
+
ClassRef?: ClassRef;
|
|
3487
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
3488
|
+
|
|
3489
|
+
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3490
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3491
|
+
/** The billing status of this item line or expense line. */
|
|
3492
|
+
BillableStatus?: BillableStatus;
|
|
3493
|
+
/** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3494
|
+
OverrideItemAccountRef?: OverrideItemAccountRef;
|
|
3495
|
+
/** When used with `InvoiceAdd`, the transaction you are linking to via this field must be a `SalesOrder`; links to other transactions, such as to estimates, are not currently supported.
|
|
3496
|
+
|
|
3497
|
+
When used with `BillAdd` or `ItemReceiptAdd`, the transaction you are linking to via this field must be a `PurchaseOrder`: links to other transactions are not currently supported. The `LinkToTxn` aggregate allows you to bring in a specific line item from a transaction. If you want to link an entire transaction and bring in all its lines, use the `LinkToTxnID` aggregate. Notice that if you use `LinkToTxn` in the item line, you cannot use `ItemRef` in that line: you’ll get a runtime error. `LinkToTxn` brings in all the item information you need. (You can, however, specify whatever quantity or rate that you want, or any other item line element other than `ItemRef`. You can use both `LinkToTxnID` and `LinkToTxn` in the same request, as long as these do NOT link to the same `TxnID`. You get an error if the transaction specified by `LinkToTxnID` is already closed or fully received and the request does not contain any other lines. You get error if you attempt to save an empty transaction. You get a warning if you attempt to link to a transaction that’s already closed. For a complete set of rules and instructions on transaction linking, see the chapter on transaction linking in the QB SDK Programmer’s Guide (PDF, 9.6 MB). */
|
|
3498
|
+
LinkToTxn?: LinkToTxn;
|
|
3499
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3500
|
+
SalesRepRef?: SalesRepRef;
|
|
3501
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3502
|
+
DataExt?: DataExt | DataExt[];
|
|
3503
|
+
}
|
|
3504
|
+
export interface ItemLineMod {
|
|
3505
|
+
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
3506
|
+
|
|
3507
|
+
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
3508
|
+
TxnLineID: string;
|
|
3509
|
+
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types.
|
|
3510
|
+
|
|
3511
|
+
For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax items For `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item. For `BillingRateAdd` requests, the `ItemRef` must refer to a service item.
|
|
3512
|
+
|
|
3513
|
+
You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items.
|
|
3514
|
+
|
|
3515
|
+
Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3516
|
+
ItemRef?: ItemRef;
|
|
3517
|
+
/** Site where inventory is located. */
|
|
3518
|
+
InventorySiteRef?: InventorySiteRef;
|
|
3519
|
+
/** Location within the Inventory Site. */
|
|
3520
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
3521
|
+
/** The serial number of the asset. */
|
|
3522
|
+
SerialNumber?: string;
|
|
3523
|
+
/** The lot number of the asset. */
|
|
3524
|
+
LotNumber?: string;
|
|
3525
|
+
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
3526
|
+
ExpirationDateForSerialLotNumber?: string;
|
|
3527
|
+
/** A descriptive text field. */
|
|
3528
|
+
Desc?: string;
|
|
3529
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3530
|
+
Quantity?: number;
|
|
3531
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3532
|
+
UnitOfMeasure?: string;
|
|
3533
|
+
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
3534
|
+
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
3535
|
+
/** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
|
|
3536
|
+
Cost?: string;
|
|
3537
|
+
/** A monetary amount. */
|
|
3538
|
+
Amount?: string;
|
|
3539
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
3540
|
+
CustomerRef?: CustomerRef;
|
|
3541
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
3542
|
+
|
|
3543
|
+
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
3544
|
+
|
|
3545
|
+
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3546
|
+
ClassRef?: ClassRef;
|
|
3547
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
3548
|
+
|
|
3549
|
+
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales.
|
|
3550
|
+
|
|
3551
|
+
A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3552
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3553
|
+
/** The billing status of this item line or expense line. */
|
|
3554
|
+
BillableStatus?: BillableStatus;
|
|
3555
|
+
/** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3556
|
+
OverrideItemAccountRef?: OverrideItemAccountRef;
|
|
3557
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3558
|
+
SalesRepRef?: SalesRepRef;
|
|
3559
|
+
}
|
|
3560
|
+
export interface ItemLineRet {
|
|
3561
|
+
/** Identification number of the transaction line. (`TxnLineID` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `TxnLineID` is always returned as zero.)
|
|
3562
|
+
|
|
3563
|
+
If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
|
|
3564
|
+
TxnLineID: string;
|
|
3565
|
+
/** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types.
|
|
3566
|
+
|
|
3567
|
+
For example, here are some requests that impose limits on what items `ItemRef` can refer to.
|
|
3568
|
+
|
|
3569
|
+
For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax items For `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item. For `BillingRateAdd` requests, the `ItemRef` must refer to a service item.
|
|
3570
|
+
|
|
3571
|
+
You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3572
|
+
ItemRef?: ItemRef;
|
|
3573
|
+
/** Site where inventory is located. */
|
|
3574
|
+
InventorySiteRef?: InventorySiteRef;
|
|
3575
|
+
/** Location within the Inventory Site. */
|
|
3576
|
+
InventorySiteLocationRef?: InventorySiteLocationRef;
|
|
3577
|
+
/** The serial number of the asset. */
|
|
3578
|
+
SerialNumber?: string;
|
|
3579
|
+
/** The lot number of the asset. */
|
|
3580
|
+
LotNumber?: string;
|
|
3581
|
+
/** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
|
|
3582
|
+
ExpirationDateForSerialLotNumber?: string;
|
|
3583
|
+
/** A descriptive text field. */
|
|
3584
|
+
Desc?: string;
|
|
3585
|
+
/** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
|
|
3586
|
+
Quantity?: number;
|
|
3587
|
+
/** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
|
|
3588
|
+
UnitOfMeasure?: string;
|
|
3589
|
+
/** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
|
|
3590
|
+
OverrideUOMSetRef?: OverrideUOMSetRef;
|
|
3591
|
+
/** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
|
|
3592
|
+
Cost?: string;
|
|
3593
|
+
/** A monetary amount. */
|
|
3594
|
+
Amount?: string;
|
|
3595
|
+
/** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
|
|
3596
|
+
CustomerRef?: CustomerRef;
|
|
3597
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default.
|
|
3598
|
+
|
|
3599
|
+
A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
|
|
3600
|
+
|
|
3601
|
+
In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3602
|
+
ClassRef?: ClassRef;
|
|
3603
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default: Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
|
|
3604
|
+
|
|
3605
|
+
A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales.
|
|
3606
|
+
|
|
3607
|
+
A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3608
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3609
|
+
/** The billing status of this item line or expense line. */
|
|
3610
|
+
BillableStatus?: BillableStatus;
|
|
3611
|
+
/** A sales representative must be on the Employee, Vendor, or `Other` Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3612
|
+
SalesRepRef?: SalesRepRef;
|
|
3613
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3614
|
+
DataExtRet?: DataExtRet | DataExtRet[];
|
|
3615
|
+
}
|
|
3616
|
+
export interface ItemNonInventoryAdd {
|
|
3617
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3618
|
+
Name: string;
|
|
3619
|
+
/** Barcode reference information. */
|
|
3620
|
+
BarCode?: BarCode;
|
|
3621
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3622
|
+
IsActive?: boolean;
|
|
3623
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3624
|
+
ParentRef?: ParentRef;
|
|
3625
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3626
|
+
ClassRef?: ClassRef;
|
|
3627
|
+
/** The part number used by the manufacturer of the item. */
|
|
3628
|
+
ManufacturerPartNumber?: string;
|
|
3629
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3630
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3631
|
+
/** For future use with international versions of QuickBooks. */
|
|
3632
|
+
IsTaxIncluded?: boolean;
|
|
3633
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3634
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3635
|
+
/** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
|
|
3636
|
+
SalesOrPurchase?: SalesOrPurchase;
|
|
3637
|
+
/** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
|
|
3638
|
+
SalesAndPurchase?: SalesAndPurchase;
|
|
3639
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
3640
|
+
ExternalGUID?: string;
|
|
3641
|
+
}
|
|
3642
|
+
export interface ItemNonInventoryAddRq {
|
|
3643
|
+
ItemNonInventoryAdd: ItemNonInventoryAdd;
|
|
3644
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3645
|
+
IncludeRetElement?: string[] | string;
|
|
3646
|
+
}
|
|
3647
|
+
export interface ItemNonInventoryAddRs {
|
|
3648
|
+
ItemNonInventoryRet?: ItemNonInventoryRet;
|
|
3649
|
+
ErrorRecovery?: ErrorRecovery;
|
|
3650
|
+
}
|
|
3651
|
+
export interface ItemNonInventoryMod {
|
|
3652
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3653
|
+
ListID: string;
|
|
3654
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
3655
|
+
EditSequence: string;
|
|
3656
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3657
|
+
Name?: string;
|
|
3658
|
+
/** Barcode reference information. */
|
|
3659
|
+
BarCode?: BarCode;
|
|
3660
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3661
|
+
IsActive?: boolean;
|
|
3662
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3663
|
+
ClassRef?: ClassRef;
|
|
3664
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3665
|
+
ParentRef?: ParentRef;
|
|
3666
|
+
/** The part number used by the manufacturer of the item. */
|
|
3667
|
+
ManufacturerPartNumber?: string;
|
|
3668
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3669
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3670
|
+
/** By Default `ForceUOMChange` is false. However, in item Mod requests, you need to set the `ForceUOMChange` field to True if you are changing the UOM set and the base unit of the new set does not match the base unit of the UOM set currently assigned to the item. This does the same thing as the user accepting the warning prompt in the UI. If you don’t set `ForceUOMChange` to True, you’ll get an error when you invoke the Item* Mod request.Y You should be aware that if you change the base unit for an item, you should also change the item’s quantities on hand and cost to reflect the new unit; otherwise the values will be inaccurate. An alternative to handle such UOM changes to an item is to create a new item with the desired UOM set and inactivate the old item. */
|
|
3671
|
+
ForceUOMChange?: boolean;
|
|
3672
|
+
/** For future use with international versions of QuickBooks. */
|
|
3673
|
+
IsTaxIncluded?: boolean;
|
|
3674
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3675
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3676
|
+
/** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
|
|
3677
|
+
SalesOrPurchaseMod?: SalesOrPurchaseMod;
|
|
3678
|
+
/** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
|
|
3679
|
+
SalesAndPurchaseMod?: SalesAndPurchaseMod;
|
|
3680
|
+
}
|
|
3681
|
+
export interface ItemNonInventoryModRq {
|
|
3682
|
+
ItemNonInventoryMod: ItemNonInventoryMod;
|
|
3683
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3684
|
+
IncludeRetElement?: string[] | string;
|
|
3685
|
+
}
|
|
3686
|
+
export interface ItemNonInventoryModRs {
|
|
3687
|
+
ItemNonInventoryRet?: ItemNonInventoryRet;
|
|
3688
|
+
ErrorRecovery?: ErrorRecovery;
|
|
3689
|
+
}
|
|
3690
|
+
export interface ItemNonInventoryQueryRq {
|
|
3691
|
+
/** One or more `ListID` values. Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3692
|
+
ListID?: string[] | string;
|
|
3693
|
+
/** A list of one or more `FullName` values. `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3694
|
+
FullName?: string[] | string;
|
|
3695
|
+
/** Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `metaData` query attribute.) If you include a `MaxReturned` value, it must be at least 1. */
|
|
3696
|
+
MaxReturned?: number;
|
|
3697
|
+
/** Used in filters to select list objects based on whether or not they are currently enabled for use by QuickBooks. The default value is `asActiveOnly`, which selects only list objects that are active. */
|
|
3698
|
+
ActiveStatus?: ActiveStatus;
|
|
3699
|
+
/** Selects objects modified on or after this date. See the note below regarding QBFC usage.For desktop versions of QuickBooks, the `FromModifiedDate` and `ToModifiedDate` must be between 1970-01-01 and 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). (The time portion of the field was not supported in qbXML version 1.0 or 1.1.) Also, for desktop versions of QuickBooks, if `FromModifiedDate` includes a date but not a time (for example, if you set `FromModifiedDate` to 2003-02-14), the time is assumed to be zero (2003-02-14T00:00:00). If you omit `FromModifiedDate`, it will be set to 1970-01-01T00:00:00 (1969-12-31T16:00:00-08:00 PST).For QBOE, the `FromModifiedDate` and `ToModifiedDate` must be between 1900-01-01T00:00:00 and 9999-12-31T00:00:00. If `FromModifiedDate` includes a date but not a time (for example, if you set `FromModifiedDate` to 2003-02-14), the time is assumed to be zero (2003-02-14T00:00:00). If you omit `FromModifiedDate`, it will be set to 1900-01-01T00:00:00.`Note`: When specifying this in QBFC, you need to supply the parameter `asDateOnly`, which is a Boolean. If `asDateOnly` is true, the date value will be represented as a date only (without a time). If `asDateOnly` is false, the date value will be represented as date and time, padded with zeros if necessary, and set to the beginning of the day if no time is provided. The `asDateOnly` parameter is especially useful in the `ToModifiedDate` field of a query: If `asDateOnly` is set to true in the `ToModifiedDate` field of a query, then the query includes elements modified up to the end of the day. If `asDateOnly` is false, the query includes elements modified up to the specified time (or up to the beginning of the day if no time is included). */
|
|
3700
|
+
FromModifiedDate?: string;
|
|
3701
|
+
/** Selects objects modified on or before this date. See the note below on QBFC usage.For desktop versions of QuickBooks, the `ToModifiedDate` and `FromModifiedDate` must be between 01/01/1970 and 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). (Note that the time portion of the field was not supported in qbXML version 1.0 or 1.1.) If `ToModifiedDate` includes a date but not a time (for example, if you set `ToModifiedDate` to 2003-02-14), the time is assumed to be the end of the day (2003-02-14T23:59:59). If you omit `ToModifiedDate` altogether, it will be set to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST).For QBOE, the `ToModifiedDate` and `FromModifiedDate` must be between 01/01/1900 and 9999-12-31T00:00:00. If `ToModifiedDate` includes a date but not a time (for example, if you set `ToModifiedDate` to 2003-02-14), the time is assumed to be the end of the day (2003-02-14T23:59:59). If you omit `ToModifiedDate` altogether, it will be set to 9999-12-31T00:00:00.`Note`: When specifying this in QBFC, you need to supply the parameter `asDateOnly`, which is a Boolean. If `asDateOnly` is true, the date value will be represented as a date only (without a time). If `asDateOnly` is false, the date value will be represented as date and time, padded with zeros if necessary, and set to the beginning of the day if no time is provided. The `asDateOnly` parameter is especially useful in the `ToModifiedDate` field of a query: If `asDateOnly` is set to true in the `ToModifiedDate` field of a query, then the query includes elements modified up to the end of the day. If `asDateOnly` is false, the query includes elements modified up to the specified time (or up to the beginning of the day if no time is included). */
|
|
3702
|
+
ToModifiedDate?: string;
|
|
3703
|
+
/** Filters according to the object’s `Name`. */
|
|
3704
|
+
NameFilter?: NameFilter;
|
|
3705
|
+
/** Filters according to the object’s `Name`. */
|
|
3706
|
+
NameRangeFilter?: NameRangeFilter;
|
|
3707
|
+
/** Filters according to the object’s class. */
|
|
3708
|
+
ClassFilter?: ClassFilter;
|
|
3709
|
+
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3710
|
+
IncludeRetElement?: string[] | string;
|
|
3711
|
+
/** Zero or more `OwnerID` values. `OwnerID` refers to the owner of a data extension:If `OwnerID` is 0, this is a public data extension, also known as a custom field. Custom fields appear in the QuickBooks UI.If `OwnerID` is a GUID, for example `{6B063959-81B0-4622-85D6-F548C8CCB517}`, this field is a private data extension defined by an integrated application. Private data extensions do not appear in the QuickBooks UI. Note that `OwnerID` values are not case-sensitive, meaning that if you enter an `OwnerID` value with lower-case letters, the value will be saved and returned with upper-case letters. When you share a private data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
|
|
3712
|
+
OwnerID?: string[] | string;
|
|
3713
|
+
}
|
|
3714
|
+
export interface ItemNonInventoryQueryRs {
|
|
3715
|
+
ItemNonInventoryRet: ItemNonInventoryRet[];
|
|
3716
|
+
}
|
|
3717
|
+
export interface ItemNonInventoryRet {
|
|
3718
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3719
|
+
ListID: string;
|
|
3720
|
+
/** Time the object was created. */
|
|
3721
|
+
TimeCreated: string;
|
|
3722
|
+
/** Time the object was last modified. */
|
|
3723
|
+
TimeModified: string;
|
|
3724
|
+
/** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
|
|
3725
|
+
EditSequence: string;
|
|
3726
|
+
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3727
|
+
Name: string;
|
|
3728
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3729
|
+
FullName: string;
|
|
3730
|
+
/** Value of the barcode in the item. */
|
|
3731
|
+
BarCodeValue?: string;
|
|
3732
|
+
/** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
|
|
3733
|
+
IsActive?: boolean;
|
|
3734
|
+
/** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
|
|
3735
|
+
ClassRef?: ClassRef;
|
|
3736
|
+
/** A reference to the list object that is one level above this one. For example, an inventory item with the `FullName` of `GermanCars`:Mercedes-Benz:`CL500I99AA` might have a parent object with the `FullName` of `GermanCars`:Mercedes-Benz.In a request, if a `ParentRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
|
|
3737
|
+
ParentRef?: ParentRef;
|
|
3738
|
+
/** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
|
|
3739
|
+
Sublevel: number;
|
|
3740
|
+
/** The part number used by the manufacturer of the item. */
|
|
3741
|
+
ManufacturerPartNumber?: string;
|
|
3742
|
+
/** The unit of measure set consists of a base unit and 0-n related units. */
|
|
3743
|
+
UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
|
|
3744
|
+
/** For future use with international versions of QuickBooks. */
|
|
3745
|
+
IsTaxIncluded?: boolean;
|
|
3746
|
+
/** Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false)Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A `SalesTaxCodeRef` aggregate refers to a sales-tax code on the list. In a request, if a `SalesTaxCodeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Customer message, `SalesTaxCodeRef` refers to the sales-tax code that will be used for items related to this customer. In an `ItemInventory` message, `SalesTaxCodeRef` refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks. */
|
|
3747
|
+
SalesTaxCodeRef?: SalesTaxCodeRef;
|
|
3748
|
+
/** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
|
|
3749
|
+
SalesOrPurchase?: SalesOrPurchase;
|
|
3750
|
+
/** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
|
|
3751
|
+
SalesAndPurchase?: SalesAndPurchase;
|
|
3752
|
+
/** Allows for the attachment of a user defined GUID value. */
|
|
3753
|
+
ExternalGUID?: string;
|
|
3754
|
+
/** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
|
|
3755
|
+
DataExtRet?: DataExtRet | DataExtRet[];
|
|
3756
|
+
}
|
|
3757
|
+
export interface ItemRef {
|
|
3758
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3759
|
+
ListID?: string;
|
|
2745
3760
|
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
2746
3761
|
FullName?: string;
|
|
2747
3762
|
}
|
|
@@ -3009,7 +4024,7 @@ export interface JournalEntryQueryRq {
|
|
|
3009
4024
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
3010
4025
|
/** Filters according to the original transaction dates. */
|
|
3011
4026
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
3012
|
-
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
4027
|
+
/** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or `Other` Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
|
|
3013
4028
|
EntityFilter?: EntityFilter;
|
|
3014
4029
|
/** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
|
|
3015
4030
|
AccountFilter?: AccountFilter;
|
|
@@ -3172,6 +4187,7 @@ export interface NameRangeFilter {
|
|
|
3172
4187
|
}
|
|
3173
4188
|
export type OnFile = "No" | "Yes";
|
|
3174
4189
|
export type Operator = "Equal" | "GreaterThan" | "GreaterThanEqual" | "LessThan" | "LessThanEqual";
|
|
4190
|
+
export type OptionForPriceRuleConflict = "BasePrice" | "Zero";
|
|
3175
4191
|
export interface OverrideClassRef {
|
|
3176
4192
|
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3177
4193
|
ListID?: string;
|
|
@@ -3381,7 +4397,7 @@ export interface SetCredit {
|
|
|
3381
4397
|
CreditTxnID: string;
|
|
3382
4398
|
/** Amount of a credit that is applied to a customer’s invoice, or amount of a payment that is applied to a particular bill or vendor credit. */
|
|
3383
4399
|
AppliedAmount: string;
|
|
3384
|
-
/** Option to override credit */
|
|
4400
|
+
/** Option to override credit. */
|
|
3385
4401
|
Override?: boolean;
|
|
3386
4402
|
}
|
|
3387
4403
|
export interface ShipAddress {
|
|
@@ -3418,6 +4434,12 @@ export interface ShipAddressBlock {
|
|
|
3418
4434
|
/** The fifth line of an address (if a fifth line is needed). */
|
|
3419
4435
|
Addr5?: string;
|
|
3420
4436
|
}
|
|
4437
|
+
export interface ShipMethodRef {
|
|
4438
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
4439
|
+
ListID?: string;
|
|
4440
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
4441
|
+
FullName?: string;
|
|
4442
|
+
}
|
|
3421
4443
|
export interface ShipToAddress {
|
|
3422
4444
|
/** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
|
|
3423
4445
|
Name: string;
|
|
@@ -3490,6 +4512,12 @@ export interface TaxOnSalesAccountRef {
|
|
|
3490
4512
|
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
3491
4513
|
FullName?: string;
|
|
3492
4514
|
}
|
|
4515
|
+
export interface TemplateRef {
|
|
4516
|
+
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
4517
|
+
ListID?: string;
|
|
4518
|
+
/** `FullName` (along with `ListID`) is a way to identify a list object. The `FullName` is the name prefixed by the names of each ancestor, for example `Jones:Kitchen:Cabinets`. `FullName` values are not case-sensitive. */
|
|
4519
|
+
FullName?: string;
|
|
4520
|
+
}
|
|
3493
4521
|
export interface TermsRef {
|
|
3494
4522
|
/** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
|
|
3495
4523
|
ListID?: string;
|
|
@@ -3577,7 +4605,7 @@ export interface TimeTrackingQueryRq {
|
|
|
3577
4605
|
ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
|
|
3578
4606
|
/** Filters according to the original transaction dates. */
|
|
3579
4607
|
TxnDateRangeFilter?: TxnDateRangeFilter;
|
|
3580
|
-
/** Allows you to query for one or more names on the QuickBooks Vendor list, Employee list, or Other Names list. */
|
|
4608
|
+
/** Allows you to query for one or more names on the QuickBooks Vendor list, Employee list, or `Other` Names list. */
|
|
3581
4609
|
TimeTrackingEntityFilter?: TimeTrackingEntityFilter;
|
|
3582
4610
|
/** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
|
|
3583
4611
|
IncludeRetElement?: string[] | string;
|