conductor-node 0.3.0 → 0.4.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.
@@ -1,77 +1,166 @@
1
1
  interface ParentRef {
2
+ /** 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. */
2
3
  ListID?: string;
4
+ /** `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. */
3
5
  FullName?: string;
4
6
  }
5
7
  declare type AccountType = "AccountsPayable" | "AccountsReceivable" | "Bank" | "CostOfGoodsSold" | "CreditCard" | "Equity" | "Expense" | "FixedAsset" | "Income" | "LongTermLiability" | "NonPosting" | "OtherAsset" | "OtherCurrentAsset" | "OtherCurrentLiability" | "OtherExpense" | "OtherIncome";
6
8
  interface SalesTaxCodeRef {
9
+ /** 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. */
7
10
  ListID?: string;
11
+ /** `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. */
8
12
  FullName?: string;
9
13
  }
10
14
  interface CurrencyRef {
15
+ /** 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. */
11
16
  ListID?: string;
17
+ /** `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. */
12
18
  FullName?: string;
13
19
  }
14
20
  interface AccountAdd {
21
+ /** 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.
22
+
23
+ For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
15
24
  Name: string;
25
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
16
26
  IsActive?: boolean;
27
+ /** 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. */
17
28
  ParentRef?: ParentRef;
29
+ /** The type of QuickBooks account. You cannot create or modify a non-posting account through the SDK, because QuickBooks creates these accounts behind the scenes. This means that you cannot send an `AccountAdd` request with an `AccountType` of `NonPosting`. */
18
30
  AccountType: AccountType;
31
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
19
32
  AccountNumber?: string;
33
+ /** The bank account number or an identifying note about the account. If a `BankNumber` exists in a QuickBooks company file, it will only be returned to applications that have been granted permission to access sensitive data and that are using SDK v2.0 or greater. */
20
34
  BankNumber?: string;
35
+ /** A descriptive text field. */
21
36
  Desc?: string;
37
+ /** The amount of money in, or the value of, this account as of `OpenBalanceDate`. On a bank statement, the amount of money in the account at the beginning of the statement period. */
22
38
  OpenBalance?: string;
39
+ /** The date when an opening balance was entered for this account. */
23
40
  OpenBalanceDate?: string;
41
+ /** 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:
42
+
43
+ Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
44
+
45
+ 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.
46
+
47
+ 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. */
24
48
  SalesTaxCodeRef?: SalesTaxCodeRef;
49
+ /** An internal representation of the tax line associated with this account. */
25
50
  TaxLineID?: number;
51
+ /** 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.
52
+
53
+ When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
26
54
  CurrencyRef?: CurrencyRef;
27
55
  }
28
56
  export interface AccountAddRq {
29
57
  AccountAdd: AccountAdd;
58
+ /** 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.
59
+
60
+ 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.
61
+
62
+ 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. */
30
63
  IncludeRetElement?: string[] | string;
31
64
  }
32
65
  declare type SpecialAccountType = "AccountsPayable" | "AccountsReceivable" | "CondenseItemAdjustmentExpenses" | "CostOfGoodsSold" | "DirectDepositLiabilities" | "Estimates" | "ExchangeGainLoss" | "InventoryAssets" | "ItemReceiptAccount" | "OpeningBalanceEquity" | "PayrollExpenses" | "PayrollLiabilities" | "PettyCash" | "PurchaseOrders" | "ReconciliationDifferences" | "RetainedEarnings" | "SalesOrders" | "SalesTaxPayable" | "UncategorizedExpenses" | "UncategorizedIncome" | "UndepositedFunds";
33
66
  interface TaxLineInfoRet {
67
+ /** An internal representation of the tax line associated with this account. */
34
68
  TaxLineID: number;
69
+ /** The name of the tax line associated with this account, as it appears on the tax form. */
35
70
  TaxLineName?: string;
36
71
  }
37
72
  declare type CashFlowClassification = "Financing" | "Investing" | "None" | "NotApplicable" | "Operating";
38
73
  declare type DataExtType = "AMTTYPE" | "DATETIMETYPE" | "INTTYPE" | "PERCENTTYPE" | "PRICETYPE" | "QUANTYPE" | "STR255TYPE" | "STR1024TYPE";
39
74
  interface DataExtRet {
75
+ /** `OwnerID` refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an `OwnerID` of 0. )
76
+
77
+ Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.)
78
+
79
+ When you share a 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. */
40
80
  OwnerID?: string;
81
+ /** The name of the data extension. If this is a custom field, `DataExtName` will be visible as a label in the QuickBooks user interface. Also because `OwnerID` and `DataExtName` together make the data extension unique, and because custom fields all have the same `OwnerID` of zero, the `DataExtName` must be a unique value among existing custom fields. In contrast, the `DataExtName` for private data extensions must be unique only for the specified `OwnerID` GUID. */
41
82
  DataExtName: string;
83
+ /** The field’s data type, which corresponds to a qbXML data type. In an `IDataExtDefAdd` request object, if this is a custom field, `DataExtType` must be `detSTR255TYPE`. */
42
84
  DataExtType: DataExtType;
85
+ /** The data in this field. The maximum length of `DataExtValue` will depend on the `DataExtType` of this data extension. For example, if `DataExtType` is `STR255TYPE`, the maximum length of `DataExtValue` is 255 characters. If `DataExtType` is `STR1024TYPE`, the maximum size of `DataExtValue` is `1KB`. */
43
86
  DataExtValue: string;
44
87
  }
45
88
  interface AccountRet {
89
+ /** 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. */
46
90
  ListID: string;
91
+ /** Time the object was created. */
47
92
  TimeCreated: string;
93
+ /** Time the object was last modified. */
48
94
  TimeModified: string;
95
+ /** 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. */
49
96
  EditSequence: string;
97
+ /** 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.
98
+
99
+ For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
50
100
  Name: string;
101
+ /** `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. */
51
102
  FullName: string;
103
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
52
104
  IsActive?: boolean;
105
+ /** 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. */
53
106
  ParentRef?: ParentRef;
107
+ /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
54
108
  Sublevel: number;
109
+ /** The type of QuickBooks account. You cannot create or modify a non-posting account through the SDK, because QuickBooks creates these accounts behind the scenes. This means that you cannot send an `AccountAdd` request with an `AccountType` of `NonPosting`. */
55
110
  AccountType: AccountType;
111
+ /** If `SpecialAccountType` returns a value, then QuickBooks automatically created this account when it was needed. Some special accounts cannot be overridden, because QuickBooks uses them exclusively for special purposes. */
56
112
  SpecialAccountType?: SpecialAccountType;
113
+ /** Indicates whether the account is used for tax. */
57
114
  IsTaxAccount?: boolean;
115
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
58
116
  AccountNumber?: string;
117
+ /** The bank account number or an identifying note about the account. If a `BankNumber` exists in a QuickBooks company file, it will only be returned to applications that have been granted permission to access sensitive data and that are using SDK v2.0 or greater. */
59
118
  BankNumber?: string;
119
+ /** A descriptive text field. */
60
120
  Desc?: string;
121
+ /** Current balance of this account only (versus `TotalBalance`). Income accounts and balance sheet accounts do not necessarily have balances. */
61
122
  Balance?: string;
123
+ /** The balance for this object and all its subordinate objects. For example, the `TotalBalance` for XYZ Bank would be the total of the balances of all its subaccounts (checking, savings, and so on). If XYZ Bank did not have any subaccounts, `TotalBalance` and `Balance` would be the same. */
62
124
  TotalBalance?: string;
125
+ /** 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:
126
+
127
+ Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
128
+
129
+ 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.
130
+
131
+ 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. */
63
132
  SalesTaxCodeRef?: SalesTaxCodeRef;
133
+ /** If the QuickBooks user has associated a tax form with this company file, they can also associate each account in the company file with a line of that tax form. (To check which tax form, if any, is associated with this company file, do a `CompanyQuery` and check the returned `TaxForm` value.) */
64
134
  TaxLineInfoRet?: TaxLineInfoRet;
135
+ /** Indicates how this account is classified for cash flow reporting. If the value is `cfcNone`, the account has not been classified. If the value is `cfcNotApplicable`, the account does not qualify to be classified. (For example, a bank account that tracks cash transactions is not part of a cash flow report.) */
65
136
  CashFlowClassification?: CashFlowClassification;
137
+ /** 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.
138
+
139
+ When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
66
140
  CurrencyRef?: CurrencyRef;
141
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
67
142
  DataExtRet?: DataExtRet | DataExtRet[];
68
143
  }
69
144
  interface ErrorRecovery {
145
+ /** 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. */
70
146
  ListID?: string;
147
+ /** Refers to the owner of a data extension:
148
+
149
+ 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.
150
+
151
+ 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.
152
+
153
+ 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. */
71
154
  OwnerID?: string;
155
+ /** 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.
156
+
157
+ 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. */
72
158
  TxnID?: string;
159
+ /** An identifying number for this transaction. */
73
160
  TxnNumber?: number;
161
+ /** 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. */
74
162
  EditSequence?: string;
163
+ /** Allows for the attachment of a user defined GUID value. */
75
164
  ExternalGUID?: string;
76
165
  }
77
166
  export interface AccountAddRs {
@@ -79,23 +168,52 @@ export interface AccountAddRs {
79
168
  ErrorRecovery?: ErrorRecovery;
80
169
  }
81
170
  interface AccountMod {
171
+ /** 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. */
82
172
  ListID: string;
173
+ /** 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. */
83
174
  EditSequence: string;
175
+ /** 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.
176
+
177
+ For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
84
178
  Name?: string;
179
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
85
180
  IsActive?: boolean;
181
+ /** 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. */
86
182
  ParentRef?: ParentRef;
183
+ /** The type of QuickBooks account. You cannot create or modify a non-posting account through the SDK, because QuickBooks creates these accounts behind the scenes. This means that you cannot send an `AccountAdd` request with an `AccountType` of `NonPosting`. */
87
184
  AccountType?: AccountType;
185
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
88
186
  AccountNumber?: string;
187
+ /** The bank account number or an identifying note about the account. If a `BankNumber` exists in a QuickBooks company file, it will only be returned to applications that have been granted permission to access sensitive data and that are using SDK v2.0 or greater. */
89
188
  BankNumber?: string;
189
+ /** A descriptive text field. */
90
190
  Desc?: string;
191
+ /** The amount of money in, or the value of, this account as of `OpenBalanceDate`. On a bank statement, the amount of money in the account at the beginning of the statement period. */
91
192
  OpenBalance?: string;
193
+ /** The date when an opening balance was entered for this account. */
92
194
  OpenBalanceDate?: string;
195
+ /** 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:
196
+
197
+ Non-taxable (`Name` = NON; `Desc` = Non-Taxable; `IsTaxable` = false) Taxable (`Name` = TAX; `Desc` = Taxable; `IsTaxable` = true)
198
+
199
+ 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.
200
+
201
+ 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. */
93
202
  SalesTaxCodeRef?: SalesTaxCodeRef;
203
+ /** An internal representation of the tax line associated with this account. */
94
204
  TaxLineID?: number;
205
+ /** 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.
206
+
207
+ When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
95
208
  CurrencyRef?: CurrencyRef;
96
209
  }
97
210
  export interface AccountModRq {
98
211
  AccountMod: AccountMod;
212
+ /** 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.
213
+
214
+ 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.
215
+
216
+ 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. */
99
217
  IncludeRetElement?: string[] | string;
100
218
  }
101
219
  export interface AccountModRs {
@@ -106,276 +224,511 @@ export interface AccountModRs {
106
224
  declare type ActiveStatus = "ActiveOnly" | "All" | "InactiveOnly";
107
225
  declare type MatchCriterion = "Contains" | "EndsWith" | "StartsWith";
108
226
  interface NameFilter {
227
+ /** The criterion to match. */
109
228
  MatchCriterion: MatchCriterion;
229
+ /** The string to match. */
110
230
  Name: string;
111
231
  }
112
232
  interface NameRangeFilter {
233
+ /** The first name or item in the search range. If `FromName` is omitted, the range will begin with first name on the list. */
113
234
  FromName?: string;
235
+ /** The final name or item in the search range. If `ToName` is omitted, the range will end with last name on the list. */
114
236
  ToName?: string;
115
237
  }
116
238
  interface CurrencyFilter {
239
+ /** 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`.
240
+
241
+ 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. */
117
242
  ListID?: string[] | string;
243
+ /** 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. */
118
244
  FullName?: string[] | string;
119
245
  }
120
246
  export interface AccountQueryRq {
247
+ /** 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`.
248
+
249
+ 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. */
121
250
  ListID?: string[] | string;
251
+ /** 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. */
122
252
  FullName?: string[] | string;
253
+ /** 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. */
123
254
  MaxReturned?: number;
255
+ /** 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. */
124
256
  ActiveStatus?: ActiveStatus;
257
+ /** Selects objects modified on or after this date. See the note below regarding QBFC usage.
258
+
259
+ 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).
260
+
261
+ 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.
262
+
263
+ 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). */
125
264
  FromModifiedDate?: string;
265
+ /** Selects objects modified on or before this date. See the note below on QBFC usage.
266
+
267
+ 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).
268
+
269
+ 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.
270
+
271
+ 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). */
126
272
  ToModifiedDate?: string;
273
+ /** Filters according to the object’s `Name`. */
127
274
  NameFilter?: NameFilter;
275
+ /** Filters according to the object’s `Name`. */
128
276
  NameRangeFilter?: NameRangeFilter;
277
+ /** A list of QuickBooks account types. */
129
278
  AccountType?: AccountType | AccountType[];
279
+ /** Filters by the specified currency. */
130
280
  CurrencyFilter?: CurrencyFilter;
281
+ /** 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.
282
+
283
+ 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.
284
+
285
+ 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. */
131
286
  IncludeRetElement?: string[] | string;
287
+ /** 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.
288
+
289
+ 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.
290
+
291
+ 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. */
132
292
  OwnerID?: string[] | string;
133
293
  }
134
294
  export interface AccountQueryRs {
135
295
  AccountRet?: AccountRet | AccountRet[];
136
296
  }
137
297
  interface ClassRef {
298
+ /** 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. */
138
299
  ListID?: string;
300
+ /** `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. */
139
301
  FullName?: string;
140
302
  }
141
303
  interface BillAddress {
304
+ /** The first line of an address. */
142
305
  Addr1?: string;
306
+ /** The second line of an address (if a second line is needed). */
143
307
  Addr2?: string;
308
+ /** The third line of an address (if a third line is needed). */
144
309
  Addr3?: string;
310
+ /** The fourth line of an address (if a fourth line is needed). */
145
311
  Addr4?: string;
312
+ /** The fifth line of an address (if a fifth line is needed). */
146
313
  Addr5?: string;
314
+ /** The city name in an address. */
147
315
  City?: string;
316
+ /** The state name in an address. */
148
317
  State?: string;
318
+ /** The postal code in an address. */
149
319
  PostalCode?: string;
320
+ /** The country name in an address, or, in returned Host information (`HostRet` or `HostInfo`), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.) */
150
321
  Country?: string;
322
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
151
323
  Note?: string;
152
324
  }
153
325
  interface ShipAddress {
326
+ /** The first line of an address. */
154
327
  Addr1?: string;
328
+ /** The second line of an address (if a second line is needed). */
155
329
  Addr2?: string;
330
+ /** The third line of an address (if a third line is needed). */
156
331
  Addr3?: string;
332
+ /** The fourth line of an address (if a fourth line is needed). */
157
333
  Addr4?: string;
334
+ /** The fifth line of an address (if a fifth line is needed). */
158
335
  Addr5?: string;
336
+ /** The city name in an address. */
159
337
  City?: string;
338
+ /** The state name in an address. */
160
339
  State?: string;
340
+ /** The postal code in an address. */
161
341
  PostalCode?: string;
342
+ /** The country name in an address, or, in returned Host information (`HostRet` or `HostInfo`), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.) */
162
343
  Country?: string;
344
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
163
345
  Note?: string;
164
346
  }
165
347
  interface ShipToAddress {
348
+ /** 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. */
166
349
  Name: string;
350
+ /** The first line of an address. */
167
351
  Addr1?: string;
352
+ /** The second line of an address (if a second line is needed). */
168
353
  Addr2?: string;
354
+ /** The third line of an address (if a third line is needed). */
169
355
  Addr3?: string;
356
+ /** The fourth line of an address (if a fourth line is needed). */
170
357
  Addr4?: string;
358
+ /** The fifth line of an address (if a fifth line is needed). */
171
359
  Addr5?: string;
360
+ /** The city name in an address. */
172
361
  City?: string;
362
+ /** The state name in an address. */
173
363
  State?: string;
364
+ /** The postal code in an address. */
174
365
  PostalCode?: string;
366
+ /** The country name in an address, or, in returned Host information (`HostRet` or `HostInfo`), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.) */
175
367
  Country?: string;
368
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
176
369
  Note?: string;
370
+ /** Flag that address is the default ship to address. */
177
371
  DefaultShipTo?: boolean;
178
372
  }
179
373
  interface AdditionalContactRef {
374
+ /** The name of the contact. */
180
375
  ContactName: string;
376
+ /** The value of the contact field. */
181
377
  ContactValue: string;
182
378
  }
183
379
  interface Contacts {
380
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
184
381
  Salutation?: string;
382
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
185
383
  FirstName: string;
384
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
186
385
  MiddleName?: string;
386
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
187
387
  LastName?: string;
388
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
188
389
  JobTitle?: string;
390
+ /** List of additional contacts. */
189
391
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
190
392
  }
191
393
  interface CustomerTypeRef {
394
+ /** 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. */
192
395
  ListID?: string;
396
+ /** `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. */
193
397
  FullName?: string;
194
398
  }
195
399
  interface TermsRef {
400
+ /** 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. */
196
401
  ListID?: string;
402
+ /** `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. */
197
403
  FullName?: string;
198
404
  }
199
405
  interface SalesRepRef {
406
+ /** 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. */
200
407
  ListID?: string;
408
+ /** `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. */
201
409
  FullName?: string;
202
410
  }
203
411
  interface ItemSalesTaxRef {
412
+ /** 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. */
204
413
  ListID?: string;
414
+ /** `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. */
205
415
  FullName?: string;
206
416
  }
207
417
  /** @default: Canada */
208
418
  declare type SalesTaxCountry = "Australia" | "Canada" | "UK" | "US";
209
419
  interface PreferredPaymentMethodRef {
420
+ /** 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. */
210
421
  ListID?: string;
422
+ /** `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. */
211
423
  FullName?: string;
212
424
  }
213
425
  interface CreditCardInfo {
426
+ /** Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234. */
214
427
  CreditCardNumber?: string;
428
+ /** The month when the credit card expires. */
215
429
  ExpirationMonth?: number;
430
+ /** The year when the credit card expires. */
216
431
  ExpirationYear?: number;
432
+ /** The name on the customer’s credit card. */
217
433
  NameOnCard?: string;
434
+ /** The address associated with this credit card. */
218
435
  CreditCardAddress?: string;
436
+ /** The postal code associated with the address for this credit card. */
219
437
  CreditCardPostalCode?: string;
220
438
  }
221
439
  /** @default: None */
222
440
  declare type JobStatus = "Awarded" | "Closed" | "InProgress" | "None" | "NotAwarded" | "Pending";
223
441
  interface JobTypeRef {
442
+ /** 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. */
224
443
  ListID?: string;
444
+ /** `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. */
225
445
  FullName?: string;
226
446
  }
227
447
  interface AdditionalNotes {
448
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
228
449
  Note: string;
229
450
  }
230
451
  /** @default: None */
231
452
  declare type PreferredDeliveryMethod = "Email" | "Fax" | "None";
232
453
  interface PriceLevelRef {
454
+ /** 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. */
233
455
  ListID?: string;
456
+ /** `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. */
234
457
  FullName?: string;
235
458
  }
236
459
  interface CustomerAdd {
460
+ /** 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. */
237
461
  Name: string;
462
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
238
463
  IsActive?: boolean;
464
+ /** 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. */
239
465
  ClassRef?: ClassRef;
466
+ /** 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. */
240
467
  ParentRef?: ParentRef;
468
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
241
469
  CompanyName?: string;
470
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
242
471
  Salutation?: string;
472
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
243
473
  FirstName?: string;
474
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
244
475
  MiddleName?: string;
476
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
245
477
  LastName?: string;
478
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
246
479
  JobTitle?: string;
480
+ /** 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`. */
247
481
  BillAddress?: BillAddress;
482
+ /** 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`. */
248
483
  ShipAddress?: ShipAddress;
484
+ /** List of ship to addresses. */
249
485
  ShipToAddress?: ShipToAddress | ShipToAddress[];
486
+ /** The telephone number. */
250
487
  Phone?: string;
488
+ /** A telephone number given as an alternative to `Phone`. */
251
489
  AltPhone?: string;
490
+ /** Fax number. */
252
491
  Fax?: string;
492
+ /** E-mail address. */
253
493
  Email?: string;
494
+ /** Email address that would be carbon copied or CC. */
254
495
  Cc?: string;
496
+ /** The name of a contact person for a customer or vendor. */
255
497
  Contact?: string;
498
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
256
499
  AltContact?: string;
500
+ /** List of additional contacts. */
257
501
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
502
+ /** A list of contact records. */
258
503
  Contacts?: Contacts | Contacts[];
504
+ /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
259
505
  CustomerTypeRef?: CustomerTypeRef;
506
+ /** 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. */
260
507
  TermsRef?: TermsRef;
508
+ /** 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. */
261
509
  SalesRepRef?: SalesRepRef;
510
+ /** The opening balance of this customer’s account. A positive number indicates money owed by the customer. */
262
511
  OpenBalance?: string;
512
+ /** The date of the opening balance for this customer. */
263
513
  OpenBalanceDate?: string;
514
+ /** 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. */
264
515
  SalesTaxCodeRef?: SalesTaxCodeRef;
516
+ /** 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. */
265
517
  ItemSalesTaxRef?: ItemSalesTaxRef;
518
+ /** Country that sales tax is collected for. */
266
519
  SalesTaxCountry?: SalesTaxCountry;
520
+ /** The customer’s resale number, if they have one. This number will not affect reports or sales tax calculations. */
267
521
  ResaleNumber?: string;
522
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
268
523
  AccountNumber?: string;
524
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
269
525
  CreditLimit?: string;
526
+ /** Refers to a `PaymentMethod` object. In a request, if a `PreferredPaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
270
527
  PreferredPaymentMethodRef?: PreferredPaymentMethodRef;
528
+ /** Customer’s credit-card information. */
271
529
  CreditCardInfo?: CreditCardInfo;
530
+ /** `JobStatus` Status information about a sub-customer; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
272
531
  JobStatus?: JobStatus;
532
+ /** The date on which work for a sub-customer was started; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
273
533
  JobStartDate?: string;
534
+ /** The date on which work for a sub-customer is expected to be complete; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
274
535
  JobProjectedEndDate?: string;
536
+ /** The date on which work for a sub-customer was completed; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
275
537
  JobEndDate?: string;
538
+ /** A short job description for a sub-customer; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
276
539
  JobDesc?: string;
540
+ /** Job type can be used to separate jobs into any categories that are meaningful to the business. A `JobTypeRef` aggregate refers to a job type on the `JobType` list. In a request, if a `JobTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
277
541
  JobTypeRef?: JobTypeRef;
542
+ /** Not supported. */
278
543
  Notes?: string;
544
+ /** List of notes. */
279
545
  AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
546
+ /** Preference for how invoices are delivered. */
280
547
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
548
+ /** 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. */
281
549
  PriceLevelRef?: PriceLevelRef;
550
+ /** Allows for the attachment of a user defined GUID value. */
282
551
  ExternalGUID?: string;
552
+ /** Tax registration number used in CA and UK. */
283
553
  TaxRegistrationNumber?: string;
554
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
284
555
  CurrencyRef?: CurrencyRef;
285
556
  }
286
557
  export interface CustomerAddRq {
287
558
  CustomerAdd: CustomerAdd;
559
+ /** 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. */
288
560
  IncludeRetElement?: string[] | string;
289
561
  }
290
562
  interface BillAddressBlock {
563
+ /** The first line of an address. */
291
564
  Addr1?: string;
565
+ /** The second line of an address (if a second line is needed). */
292
566
  Addr2?: string;
567
+ /** The third line of an address (if a third line is needed). */
293
568
  Addr3?: string;
569
+ /** The fourth line of an address (if a fourth line is needed). */
294
570
  Addr4?: string;
571
+ /** The fifth line of an address (if a fifth line is needed). */
295
572
  Addr5?: string;
296
573
  }
297
574
  interface ShipAddressBlock {
575
+ /** The first line of an address. */
298
576
  Addr1?: string;
577
+ /** The second line of an address (if a second line is needed). */
299
578
  Addr2?: string;
579
+ /** The third line of an address (if a third line is needed). */
300
580
  Addr3?: string;
581
+ /** The fourth line of an address (if a fourth line is needed). */
301
582
  Addr4?: string;
583
+ /** The fifth line of an address (if a fifth line is needed). */
302
584
  Addr5?: string;
303
585
  }
304
586
  interface ContactsRet {
587
+ /** 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. */
305
588
  ListID: string;
589
+ /** Time the object was created. */
306
590
  TimeCreated: string;
591
+ /** Time the object was last modified. */
307
592
  TimeModified: string;
593
+ /** 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. */
308
594
  EditSequence: string;
595
+ /** The name of a contact person for a customer or vendor. */
309
596
  Contact?: string;
597
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
310
598
  Salutation?: string;
599
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
311
600
  FirstName: string;
601
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
312
602
  MiddleName?: string;
603
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
313
604
  LastName?: string;
605
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
314
606
  JobTitle?: string;
607
+ /** List of additional contacts. */
315
608
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
316
609
  }
317
610
  interface AdditionalNotesRet {
611
+ /** The ID of the note. */
318
612
  NoteID: number;
613
+ /** The date the note was updated. */
319
614
  Date: string;
615
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
320
616
  Note: string;
321
617
  }
322
618
  interface CustomerRet {
619
+ /** 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. */
323
620
  ListID: string;
621
+ /** Time the object was created. */
324
622
  TimeCreated: string;
623
+ /** Time the object was last modified. */
325
624
  TimeModified: string;
625
+ /** 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. */
326
626
  EditSequence: string;
627
+ /** 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. */
327
628
  Name: string;
629
+ /** `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. */
328
630
  FullName: string;
631
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
329
632
  IsActive?: boolean;
633
+ /** 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. */
330
634
  ClassRef?: ClassRef;
635
+ /** 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. */
331
636
  ParentRef?: ParentRef;
637
+ /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
332
638
  Sublevel: number;
639
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
333
640
  CompanyName?: string;
641
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
334
642
  Salutation?: string;
643
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
335
644
  FirstName?: string;
645
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
336
646
  MiddleName?: string;
647
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
337
648
  LastName?: string;
649
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
338
650
  JobTitle?: string;
651
+ /** 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`. */
339
652
  BillAddress?: BillAddress;
653
+ /** 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. */
340
654
  BillAddressBlock?: BillAddressBlock;
655
+ /** 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`. */
341
656
  ShipAddress?: ShipAddress;
657
+ /** 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. */
342
658
  ShipAddressBlock?: ShipAddressBlock;
659
+ /** List of ship to addresses. */
343
660
  ShipToAddress?: ShipToAddress | ShipToAddress[];
661
+ /** The telephone number. */
344
662
  Phone?: string;
663
+ /** A telephone number given as an alternative to `Phone`. */
345
664
  AltPhone?: string;
665
+ /** Fax number. */
346
666
  Fax?: string;
667
+ /** E-mail address. */
347
668
  Email?: string;
669
+ /** Email address that would be carbon copied or CC. */
348
670
  Cc?: string;
671
+ /** The name of a contact person for a customer or vendor. */
349
672
  Contact?: string;
673
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
350
674
  AltContact?: string;
675
+ /** List of additional contacts. */
351
676
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
677
+ /** A list of contact records. */
352
678
  ContactsRet?: ContactsRet | ContactsRet[];
679
+ /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
353
680
  CustomerTypeRef?: CustomerTypeRef;
681
+ /** 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. */
354
682
  TermsRef?: TermsRef;
683
+ /** 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. */
355
684
  SalesRepRef?: SalesRepRef;
685
+ /** A positive number indicates money owed by the customer. Compare with `TotalBalance`. */
356
686
  Balance?: string;
687
+ /** Total balance for this customer, including all this customer’s jobs (subcustomers). A positive number indicates money that the customer owes. If a customer does not have any subcustomers, `TotalBalance` and `Balance` are the same. */
357
688
  TotalBalance?: string;
689
+ /** 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. */
358
690
  SalesTaxCodeRef?: SalesTaxCodeRef;
691
+ /** 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. */
359
692
  ItemSalesTaxRef?: ItemSalesTaxRef;
693
+ /** The country that sales tax is collected for. */
360
694
  SalesTaxCountry?: SalesTaxCountry;
695
+ /** The customer’s resale number, if they have one. This number will not affect reports or sales tax calculations. */
361
696
  ResaleNumber?: string;
697
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
362
698
  AccountNumber?: string;
699
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
363
700
  CreditLimit?: string;
701
+ /** Refers to a `PaymentMethod` object. In a request, if a `PreferredPaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
364
702
  PreferredPaymentMethodRef?: PreferredPaymentMethodRef;
703
+ /** Customer’s credit-card information. */
365
704
  CreditCardInfo?: CreditCardInfo;
705
+ /** `JobStatus` Status information about a sub-customer; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
366
706
  JobStatus?: JobStatus;
707
+ /** The date on which work for a sub-customer was started; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
367
708
  JobStartDate?: string;
709
+ /** The date on which work for a sub-customer is expected to be complete; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
368
710
  JobProjectedEndDate?: string;
711
+ /** The date on which work for a sub-customer was completed; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
369
712
  JobEndDate?: string;
713
+ /** A short job description for a sub-customer; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
370
714
  JobDesc?: string;
715
+ /** Job type can be used to separate jobs into any categories that are meaningful to the business. A `JobTypeRef` aggregate refers to a job type on the `JobType` list. In a request, if a `JobTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
371
716
  JobTypeRef?: JobTypeRef;
717
+ /** Not supported. */
372
718
  Notes?: string;
719
+ /** List of notes. */
373
720
  AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
721
+ /** Preference for how invoices are delivered. */
374
722
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
723
+ /** 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. */
375
724
  PriceLevelRef?: PriceLevelRef;
725
+ /** Allows for the attachment of a user defined GUID value. */
376
726
  ExternalGUID?: string;
727
+ /** The tax registration number used in CA and UK. */
377
728
  TaxRegistrationNumber?: string;
729
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
378
730
  CurrencyRef?: CurrencyRef;
731
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
379
732
  DataExtRet?: DataExtRet | DataExtRet[];
380
733
  }
381
734
  export interface CustomerAddRs {
@@ -383,70 +736,128 @@ export interface CustomerAddRs {
383
736
  ErrorRecovery?: ErrorRecovery;
384
737
  }
385
738
  interface ContactsMod {
739
+ /** 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. */
386
740
  ListID: string;
741
+ /** 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. */
387
742
  EditSequence: string;
743
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
388
744
  Salutation?: string;
745
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
389
746
  FirstName: string;
747
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
390
748
  MiddleName?: string;
749
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
391
750
  LastName?: string;
751
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
392
752
  JobTitle?: string;
753
+ /** List of additional contacts. */
393
754
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
394
755
  }
395
756
  interface AdditionalNotesMod {
757
+ /** The ID of the note. */
396
758
  NoteID: number;
759
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
397
760
  Note: string;
398
761
  }
399
762
  interface CustomerMod {
763
+ /** 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. */
400
764
  ListID: string;
765
+ /** 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. */
401
766
  EditSequence: string;
767
+ /** 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. */
402
768
  Name?: string;
769
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
403
770
  IsActive?: boolean;
771
+ /** 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. */
404
772
  ClassRef?: ClassRef;
773
+ /** 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. */
405
774
  ParentRef?: ParentRef;
775
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
406
776
  CompanyName?: string;
777
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
407
778
  Salutation?: string;
779
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
408
780
  FirstName?: string;
781
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
409
782
  MiddleName?: string;
783
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
410
784
  LastName?: string;
785
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
411
786
  JobTitle?: string;
787
+ /** 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`. */
412
788
  BillAddress?: BillAddress;
789
+ /** 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`. */
413
790
  ShipAddress?: ShipAddress;
791
+ /** List of ship to addresses. */
414
792
  ShipToAddress?: ShipToAddress | ShipToAddress[];
793
+ /** The telephone number. */
415
794
  Phone?: string;
795
+ /** A telephone number given as an alternative to `Phone`. */
416
796
  AltPhone?: string;
797
+ /** Fax number. */
417
798
  Fax?: string;
799
+ /** E-mail address. */
418
800
  Email?: string;
801
+ /** Email address that would be carbon copied or CC. */
419
802
  Cc?: string;
803
+ /** The name of a contact person for a customer or vendor. */
420
804
  Contact?: string;
805
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
421
806
  AltContact?: string;
807
+ /** List of additional contacts. */
422
808
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
809
+ /** A list of contact records. */
423
810
  ContactsMod?: ContactsMod | ContactsMod[];
811
+ /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
424
812
  CustomerTypeRef?: CustomerTypeRef;
813
+ /** 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. */
425
814
  TermsRef?: TermsRef;
815
+ /** 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. */
426
816
  SalesRepRef?: SalesRepRef;
817
+ /** 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. */
427
818
  SalesTaxCodeRef?: SalesTaxCodeRef;
819
+ /** 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. */
428
820
  ItemSalesTaxRef?: ItemSalesTaxRef;
821
+ /** The country that sales tax is collected for. */
429
822
  SalesTaxCountry?: SalesTaxCountry;
823
+ /** The customer’s resale number, if they have one. This number will not affect reports or sales tax calculations. */
430
824
  ResaleNumber?: string;
825
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
431
826
  AccountNumber?: string;
827
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
432
828
  CreditLimit?: string;
829
+ /** Refers to a `PaymentMethod` object. In a request, if a `PreferredPaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
433
830
  PreferredPaymentMethodRef?: PreferredPaymentMethodRef;
831
+ /** Customer’s credit-card information. */
434
832
  CreditCardInfo?: CreditCardInfo;
833
+ /** `JobStatus` Status information about a sub-customer; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
435
834
  JobStatus?: JobStatus;
835
+ /** The date on which work for a sub-customer was started; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
436
836
  JobStartDate?: string;
837
+ /** The date on which work for a sub-customer is expected to be complete; used in reports. The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
437
838
  JobProjectedEndDate?: string;
839
+ /** The date on which work for a sub-customer was completed; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
438
840
  JobEndDate?: string;
841
+ /** A short job description for a sub-customer; used in reports.The Job- elements (`JobDesc`, `JobEndDate`, `JobProjectedEndDate`, `JobStartDate`, and `JobStatus`) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks. */
439
842
  JobDesc?: string;
843
+ /** Job type can be used to separate jobs into any categories that are meaningful to the business. A `JobTypeRef` aggregate refers to a job type on the `JobType` list. In a request, if a `JobTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
440
844
  JobTypeRef?: JobTypeRef;
845
+ /** Not supported. */
441
846
  Notes?: string;
847
+ /** List of notes. */
442
848
  AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
849
+ /** Preference for how invoices are delivered. */
443
850
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
851
+ /** 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. */
444
852
  PriceLevelRef?: PriceLevelRef;
853
+ /** The tax registration number used in CA and UK. */
445
854
  TaxRegistrationNumber?: string;
855
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
446
856
  CurrencyRef?: CurrencyRef;
447
857
  }
448
858
  export interface CustomerModRq {
449
859
  CustomerMod: CustomerMod;
860
+ /** 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. */
450
861
  IncludeRetElement?: string[] | string;
451
862
  }
452
863
  export interface CustomerModRs {
@@ -455,57 +866,91 @@ export interface CustomerModRs {
455
866
  }
456
867
  declare type Operator = "Equal" | "GreaterThan" | "GreaterThanEqual" | "LessThan" | "LessThanEqual";
457
868
  interface TotalBalanceFilter {
869
+ /** Indicates whether to filter for amounts that are less than, equal to or less than, exactly equal to, greater than, or equal to or greater than the given `Amount`. */
458
870
  Operator: Operator;
871
+ /** The monetary amount to which `Operator` refers. */
459
872
  Amount: string;
460
873
  }
461
874
  interface ClassFilter {
875
+ /** 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. */
462
876
  ListID?: string[] | string;
877
+ /** 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. */
463
878
  FullName?: string[] | string;
879
+ /** Allows you to filter for data that relates to the specified object and its descendants. */
464
880
  ListIDWithChildren?: string;
881
+ /** Allows you to filter for data that relates to the specified object and its descendants. For names that do not have children, `FullNameWithChildren` is exactly the same as `FullName`. */
465
882
  FullNameWithChildren?: string;
466
883
  }
467
884
  export interface CustomerQueryRq {
885
+ /** 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. */
468
886
  ListID?: string[] | string;
887
+ /** 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. */
469
888
  FullName?: string[] | string;
889
+ /** 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. */
470
890
  MaxReturned?: number;
891
+ /** 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. */
471
892
  ActiveStatus?: ActiveStatus;
893
+ /** 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). */
472
894
  FromModifiedDate?: string;
895
+ /** 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). */
473
896
  ToModifiedDate?: string;
897
+ /** Filters according to the object’s `Name`. */
474
898
  NameFilter?: NameFilter;
899
+ /** Filters according to the object’s `Name`. */
475
900
  NameRangeFilter?: NameRangeFilter;
901
+ /** Filters according to total balance. Total balance includes the balance for all subaccounts; for example, a customer’s `TotalBalance` would include all the jobs for that customer. */
476
902
  TotalBalanceFilter?: TotalBalanceFilter;
903
+ /** Filters by the specified currency. */
477
904
  CurrencyFilter?: CurrencyFilter;
905
+ /** Filter according to class. */
478
906
  ClassFilter?: ClassFilter;
907
+ /** 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. */
479
908
  IncludeRetElement?: string[] | string;
909
+ /** 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. */
480
910
  OwnerID?: string[] | string;
481
911
  }
482
912
  export interface CustomerQueryRs {
483
913
  CustomerRet?: CustomerRet | CustomerRet[];
484
914
  }
485
915
  interface SupervisorRef {
916
+ /** 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. */
486
917
  ListID?: string;
918
+ /** `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. */
487
919
  FullName?: string;
488
920
  }
489
921
  interface EmployeeAddress {
922
+ /** The first line of an address. */
490
923
  Addr1?: string;
924
+ /** The second line of an address (if a second line is needed). */
491
925
  Addr2?: string;
926
+ /** The city name in an address. */
492
927
  City?: string;
928
+ /** When it appears in the `EmployeeAddress` aggregate, the `State` element acts like an ENUMTYPE with the following possible values: None, AA (military), AE (military), AK, AL, AP (military), AR, AZ, CA, CO, CT, DC, DE, FL, GA, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MI, MN, MO, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, RI, SC, SD, TN, TX, UT, VA, VT, WA, WI, WV, and WY. */
493
929
  State?: string;
930
+ /** The postal code in an address. */
494
931
  PostalCode?: string;
495
932
  }
496
933
  declare type Relation = "Brother" | "Daughter" | "Father" | "Friend" | "Mother" | "Other" | "Partner" | "Sister" | "Son" | "Spouse";
497
934
  interface PrimaryContact {
935
+ /** The name of the contact. */
498
936
  ContactName: string;
937
+ /** The value of the contact field. */
499
938
  ContactValue: string;
939
+ /** Relationship of emergency contact information to the employee. */
500
940
  Relation?: Relation;
501
941
  }
502
942
  interface SecondaryContact {
943
+ /** The name of the contact. */
503
944
  ContactName: string;
945
+ /** The value of the contact field. */
504
946
  ContactValue: string;
947
+ /** Relationship of emergency contact information to the employee. */
505
948
  Relation?: Relation;
506
949
  }
507
950
  interface EmergencyContacts {
951
+ /** Primary emergency contact information for the employee. */
508
952
  PrimaryContact?: PrimaryContact;
953
+ /** Secondary emergency contact information for the employee. */
509
954
  SecondaryContact?: SecondaryContact;
510
955
  }
511
956
  /** @default: Regular */
@@ -521,153 +966,281 @@ declare type OnFile = "No" | "Yes";
521
966
  declare type USVeteran = "No" | "Yes";
522
967
  declare type MilitaryStatus = "Active" | "Reserve";
523
968
  interface BillingRateRef {
969
+ /** 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. */
524
970
  ListID?: string;
971
+ /** `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. */
525
972
  FullName?: string;
526
973
  }
527
974
  declare type PayPeriod = "Biweekly" | "Daily" | "Monthly" | "Quarterly" | "Semimonthly" | "Weekly" | "Yearly";
528
975
  interface PayrollItemWageRef {
976
+ /** 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. */
529
977
  ListID?: string;
978
+ /** `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. */
530
979
  FullName?: string;
531
980
  }
532
981
  interface Earnings {
982
+ /** Each payroll wage item describes and names a payment scheme, for example, Regular Pay or Overtime Pay. A `PayrollItemWageRef` aggregate refers to one of these wage items. In a request, if a `PayrollItemWageRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Within QuickBooks, a timesheet can specify a payroll wage item only if the following criteria are met: The name on the timesheet (which corresponds to the `EntityRef` in the `TimeTracking` object) is on the QuickBooks Employee list, and The “Use time data to create paychecks” preference is turned on in the QuickBooks Payroll Info window that provides detailed employee information employee. */
533
983
  PayrollItemWageRef: PayrollItemWageRef;
984
+ /** Indicates the price of something. */
534
985
  Rate?: string;
986
+ /** Indicates the price of something as a percent. */
535
987
  RatePercent?: string;
536
988
  }
537
989
  declare type UseTimeDataToCreatePaychecks = "DoNotUseTimeData" | "NotSet" | "UseTimeData";
538
990
  declare type AccrualPeriod = "BeginningOfYear" | "EveryHourOnPaycheck" | "EveryPaycheck";
539
991
  interface SickHours {
992
+ /** The total number of hours currently available for the employee to use. If this value is empty, it will default to 0. */
540
993
  HoursAvailable?: string;
994
+ /** Indicates how an employee accrues time off. If you include a blank `AccrualPeriod` element in an `EmployeeMod` message, you’ll receive an error. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
541
995
  AccrualPeriod?: AccrualPeriod;
996
+ /** The number of hours that the employee will accrue per accrual period. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
542
997
  HoursAccrued?: string;
998
+ /** The maximum number of hours that the employee can accrue. (QuickBooks itself does not enforce this limit, however. `HoursAvailable` can be greater than `MaximumHours`.) The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
543
999
  MaximumHours?: string;
1000
+ /** Indicates whether or not the hours accrued resets to zero at the beginning of the new year. If you include a blank `IsResettingHoursEachNewYear` element in an `EmployeeMod` message, you’ll receive an error. */
544
1001
  IsResettingHoursEachNewYear?: boolean;
1002
+ /** When used in the `SickHours` or `VacationHours` aggregates, refers to the number of sick leave or vacation hours used in the current year. */
545
1003
  HoursUsed?: string;
1004
+ /** When used in the `SickHours` or `VacationHours` aggregates, refers to the date on which sick leave or vacation hours in the current year began to accrue. */
546
1005
  AccrualStartDate?: string;
547
1006
  }
548
1007
  interface VacationHours {
1008
+ /** The total number of hours currently available for the employee to use. If this value is empty, it will default to 0. */
549
1009
  HoursAvailable?: string;
1010
+ /** Indicates how an employee accrues time off. If you include a blank `AccrualPeriod` element in an `EmployeeMod` message, you’ll receive an error. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
550
1011
  AccrualPeriod?: AccrualPeriod;
1012
+ /** The number of hours that the employee will accrue per accrual period. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
551
1013
  HoursAccrued?: string;
1014
+ /** The maximum number of hours that the employee can accrue. (QuickBooks itself does not enforce this limit, however. `HoursAvailable` can be greater than `MaximumHours`.) The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
552
1015
  MaximumHours?: string;
1016
+ /** Indicates whether or not the hours accrued resets to zero at the beginning of the new year. If you include a blank `IsResettingHoursEachNewYear` element in an `EmployeeMod` message, you’ll receive an error. */
553
1017
  IsResettingHoursEachNewYear?: boolean;
1018
+ /** When used in the `SickHours` or `VacationHours` aggregates, refers to the number of sick leave or vacation hours used in the current year. */
554
1019
  HoursUsed?: string;
1020
+ /** When used in the `SickHours` or `VacationHours` aggregates, refers to the date on which sick leave or vacation hours in the current year began to accrue. */
555
1021
  AccrualStartDate?: string;
556
1022
  }
557
1023
  interface EmployeePayrollInfo {
1024
+ /** Indicates how often employees are paid. If you include a blank `PayPeriod` element in an `EmployeeMod` message, you’ll receive an error. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
558
1025
  PayPeriod?: PayPeriod;
1026
+ /** 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. */
559
1027
  ClassRef?: ClassRef;
1028
+ /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
560
1029
  ClearEarnings?: boolean;
1030
+ /** A list of `IEarnings` aggregate objects. If an `EmployeeMod` request does not include any `IEarnings` objects, the earnings table for that employee will not change. If `EmployeeMod` includes at least one `IEarnings` object, all existing earnings information will be deleted for that employee, and all the earnings information in the -Mod request will be added. (To delete all the earnings information, set the `ClearEarnings` field to true in an `EmployeeMod` request.) */
561
1031
  Earnings?: Earnings | Earnings[];
1032
+ /** Indicates whether or not paychecks are generated from time-tracking data. If you include a blank `IsUsingTimeDataToCreatePaychecks` element in an `EmployeeMod` message, you’ll receive an error. */
562
1033
  IsUsingTimeDataToCreatePaychecks?: boolean;
1034
+ /** Indicates whether time data is used to create paychecks for this employee. */
563
1035
  UseTimeDataToCreatePaychecks?: UseTimeDataToCreatePaychecks;
1036
+ /** Describes how “sick time” is accrued for this employee, along with how many sick hours the employee has accrued. */
564
1037
  SickHours?: SickHours;
1038
+ /** Describes how vacation time is accrued for this employee, along with how many vacation hours the employee has accrued. */
565
1039
  VacationHours?: VacationHours;
566
1040
  }
567
1041
  interface EmployeeAdd {
1042
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
568
1043
  IsActive?: boolean;
1044
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
569
1045
  Salutation?: string;
1046
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
570
1047
  FirstName?: string;
1048
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
571
1049
  MiddleName?: string;
1050
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
572
1051
  LastName?: string;
1052
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
573
1053
  JobTitle?: string;
1054
+ /** The name of a customer, vendor, employee, or person on the “other names” list in the employment job details section. */
574
1055
  SupervisorRef?: SupervisorRef;
1056
+ /** The name of the department in the employment job details section. */
575
1057
  Department?: string;
1058
+ /** The description details in the employment job details section. */
576
1059
  Description?: string;
1060
+ /** The target bonus amount in the employment job details section. */
577
1061
  TargetBonus?: string;
1062
+ /** If an address request fails, some combination of address fields might be too long. If you use payroll, you must specify the employee’s city, state (or province), ZIP (or postal) code, and at least one line of the street address. (Note that the `State` element has restrictions when it’s used in the `EmployeeAddress` aggregate. For more information, click `State` in the table.) */
578
1063
  EmployeeAddress?: EmployeeAddress;
1064
+ /** By default within QuickBooks, the `PrintAs` element is the same as the `Name` element. */
579
1065
  PrintAs?: string;
1066
+ /** The telephone number. */
580
1067
  Phone?: string;
1068
+ /** Mobile telephone number. */
581
1069
  Mobile?: string;
1070
+ /** The pager number. */
582
1071
  Pager?: string;
1072
+ /** A personal identification number for this employee’s pager. */
583
1073
  PagerPIN?: string;
1074
+ /** A telephone number given as an alternative to `Phone`. */
584
1075
  AltPhone?: string;
1076
+ /** Fax number. */
585
1077
  Fax?: string;
1078
+ /** Social security number. When you add an `SSN` value to an employee record, it does not have to include dashes; for example, either 123-45-6789 or 123456789 would be valid. */
586
1079
  SSN?: string;
1080
+ /** E-mail address. */
587
1081
  Email?: string;
1082
+ /** List of additional contacts. */
588
1083
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1084
+ /** Emergency `Contact` information for the employee. */
589
1085
  EmergencyContacts?: EmergencyContacts;
1086
+ /** `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. */
590
1087
  EmployeeType?: EmployeeType;
1088
+ /** Full or Part time status of the employee. */
591
1089
  PartOrFullTime?: PartOrFullTime;
1090
+ /** Exempt or Non-exempt status of the employee. */
592
1091
  Exempt?: Exempt;
1092
+ /** Is employee a key or critical employee. */
593
1093
  KeyEmployee?: KeyEmployee;
1094
+ /** The gender of this employee. */
594
1095
  Gender?: Gender;
1096
+ /** An employee’s date of hire. */
595
1097
  HiredDate?: string;
1098
+ /** Original hire date the employee was hired. */
596
1099
  OriginalHireDate?: string;
1100
+ /** Adjusted service date for the employee. */
597
1101
  AdjustedServiceDate?: string;
1102
+ /** The date on which this person’s employment with the company ended. */
598
1103
  ReleasedDate?: string;
1104
+ /** Date of birth. */
599
1105
  BirthDate?: string;
1106
+ /** Is employee a US citizen? */
600
1107
  USCitizen?: USCitizen;
1108
+ /** Ethnicity of employee from `AmericianIndian`, Asian, Black, Hawaiian, Hispanic, White, `TwoOrMoreRaces` */
601
1109
  Ethnicity?: Ethnicity;
1110
+ /** Is employee disabled? */
602
1111
  Disabled?: Disabled;
1112
+ /** Description of employee’s disablitily. */
603
1113
  DisabilityDesc?: string;
1114
+ /** Is the employee’s I-9 on file? */
604
1115
  OnFile?: OnFile;
1116
+ /** Date the employee’s work authorization expires. */
605
1117
  WorkAuthExpireDate?: string;
1118
+ /** Is employee a US veteran? */
606
1119
  USVeteran?: USVeteran;
1120
+ /** Military status if the employee is a US veteran. */
607
1121
  MilitaryStatus?: MilitaryStatus;
1122
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
608
1123
  AccountNumber?: string;
1124
+ /** Additional information. */
609
1125
  Notes?: string;
1126
+ /** List of notes. */
610
1127
  AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1128
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
611
1129
  BillingRateRef?: BillingRateRef;
1130
+ /** Pay information for this employee. */
612
1131
  EmployeePayrollInfo?: EmployeePayrollInfo;
1132
+ /** Allows for the attachment of a user defined GUID value. */
613
1133
  ExternalGUID?: string;
614
1134
  }
615
1135
  export interface EmployeeAddRq {
616
1136
  EmployeeAdd: EmployeeAdd;
1137
+ /** 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. */
617
1138
  IncludeRetElement?: string[] | string;
618
1139
  }
619
1140
  interface EmployeeRet {
1141
+ /** 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. */
620
1142
  ListID: string;
1143
+ /** Time the object was created. */
621
1144
  TimeCreated: string;
1145
+ /** Time the object was last modified. */
622
1146
  TimeModified: string;
1147
+ /** 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. */
623
1148
  EditSequence: string;
1149
+ /** A concatenation of `FirstName`, `MiddleName`, and `LastName`. */
624
1150
  Name: string;
1151
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
625
1152
  IsActive?: boolean;
1153
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
626
1154
  Salutation?: string;
1155
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
627
1156
  FirstName?: string;
1157
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
628
1158
  MiddleName?: string;
1159
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
629
1160
  LastName?: string;
1161
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
630
1162
  JobTitle?: string;
1163
+ /** The name of a customer, vendor, employee, or person on the “other names” list in the employment job details section. */
631
1164
  SupervisorRef?: SupervisorRef;
1165
+ /** The name of the department in the employment job details section. */
632
1166
  Department?: string;
1167
+ /** The description details in the employment job details section. */
633
1168
  Description?: string;
1169
+ /** The target bonus amount in the employment job details section. */
634
1170
  TargetBonus?: string;
1171
+ /** If an address request fails, some combination of address fields might be too long. If you use payroll, you must specify the employee’s city, state (or province), ZIP (or postal) code, and at least one line of the street address. (Note that the `State` element has restrictions when it’s used in the `EmployeeAddress` aggregate. For more information, click `State` in the table.) */
635
1172
  EmployeeAddress?: EmployeeAddress;
1173
+ /** By default within QuickBooks, the `PrintAs` element is the same as the `Name` element. */
636
1174
  PrintAs?: string;
1175
+ /** The telephone number. */
637
1176
  Phone?: string;
1177
+ /** Mobile telephone number. */
638
1178
  Mobile?: string;
1179
+ /** The pager number. */
639
1180
  Pager?: string;
1181
+ /** A personal identification number for this employee’s pager. */
640
1182
  PagerPIN?: string;
1183
+ /** A telephone number given as an alternative to `Phone`. */
641
1184
  AltPhone?: string;
1185
+ /** Fax number. */
642
1186
  Fax?: string;
1187
+ /** Social security number. When you add an `SSN` value to an employee record, it does not have to include dashes; for example, either 123-45-6789 or 123456789 would be valid. */
643
1188
  SSN?: string;
1189
+ /** E-mail address. */
644
1190
  Email?: string;
1191
+ /** List of additional contacts. */
645
1192
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1193
+ /** Emergency `Contact` information for the employee. */
646
1194
  EmergencyContacts?: EmergencyContacts;
1195
+ /** `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. */
647
1196
  EmployeeType?: EmployeeType;
1197
+ /** Full or Part time status of the employee. */
648
1198
  PartOrFullTime?: PartOrFullTime;
1199
+ /** Exempt or Non-exempt status of the employee. */
649
1200
  Exempt?: Exempt;
1201
+ /** Is employee a key or critical employee. */
650
1202
  KeyEmployee?: KeyEmployee;
1203
+ /** The gender of this employee. */
651
1204
  Gender?: Gender;
1205
+ /** An employee’s date of hire. */
652
1206
  HiredDate?: string;
1207
+ /** Original hire date the employee was hired. */
653
1208
  OriginalHireDate?: string;
1209
+ /** Adjusted service date for the employee. */
654
1210
  AdjustedServiceDate?: string;
1211
+ /** The date on which this person’s employment with the company ended. */
655
1212
  ReleasedDate?: string;
1213
+ /** Date of birth. */
656
1214
  BirthDate?: string;
1215
+ /** Is employee a US citizen? */
657
1216
  USCitizen?: USCitizen;
1217
+ /** Ethnicity of employee from `AmericianIndian`, Asian, Black, Hawaiian, Hispanic, White, `TwoOrMoreRaces`. */
658
1218
  Ethnicity?: Ethnicity;
1219
+ /** Is employee disabled? */
659
1220
  Disabled?: Disabled;
1221
+ /** Description of employee’s disablitily. */
660
1222
  DisabilityDesc?: string;
1223
+ /** Is the employee’s I-9 on file? */
661
1224
  OnFile?: OnFile;
1225
+ /** Date the employee’s work authorization expires. */
662
1226
  WorkAuthExpireDate?: string;
1227
+ /** Is employee a US veteran? */
663
1228
  USVeteran?: USVeteran;
1229
+ /** Military status if the employee is a US veteran. */
664
1230
  MilitaryStatus?: MilitaryStatus;
1231
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
665
1232
  AccountNumber?: string;
1233
+ /** Additional information. */
666
1234
  Notes?: string;
1235
+ /** List of notes. */
667
1236
  AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1237
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
668
1238
  BillingRateRef?: BillingRateRef;
1239
+ /** Pay information for this employee. */
669
1240
  EmployeePayrollInfo?: EmployeePayrollInfo;
1241
+ /** Allows for the attachment of a user defined GUID value. */
670
1242
  ExternalGUID?: string;
1243
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
671
1244
  DataExtRet?: DataExtRet | DataExtRet[];
672
1245
  }
673
1246
  export interface EmployeeAddRs {
@@ -675,64 +1248,118 @@ export interface EmployeeAddRs {
675
1248
  ErrorRecovery?: ErrorRecovery;
676
1249
  }
677
1250
  interface EmployeePayrollInfoMod {
1251
+ /** Indicates how often employees are paid. If you include a blank `PayPeriod` element in an `EmployeeMod` message, you’ll receive an error. The default value is whatever the QuickBooks user has set in the QuickBooks Employee Preferences. */
678
1252
  PayPeriod?: PayPeriod;
1253
+ /** 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. */
679
1254
  ClassRef?: ClassRef;
1255
+ /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
680
1256
  ClearEarnings?: boolean;
1257
+ /** A list of `IEarnings` aggregate objects. If an `EmployeeMod` request does not include any `IEarnings` objects, the earnings table for that employee will not change. If `EmployeeMod` includes at least one `IEarnings` object, all existing earnings information will be deleted for that employee, and all the earnings information in the -Mod request will be added. (To delete all the earnings information, set the `ClearEarnings` field to true in an `EmployeeMod` request.) */
681
1258
  Earnings?: Earnings | Earnings[];
1259
+ /** Indicates whether or not paychecks are generated from time-tracking data. If you include a blank `IsUsingTimeDataToCreatePaychecks` element in an `EmployeeMod` message, you’ll receive an error. */
682
1260
  IsUsingTimeDataToCreatePaychecks?: boolean;
1261
+ /** Indicates whether time data is used to create paychecks for this employee. */
683
1262
  UseTimeDataToCreatePaychecks?: UseTimeDataToCreatePaychecks;
1263
+ /** Describes how “sick time” is accrued for this employee, along with how many sick hours the employee has accrued. */
684
1264
  SickHours?: SickHours;
1265
+ /** Describes how vacation time is accrued for this employee, along with how many vacation hours the employee has accrued. */
685
1266
  VacationHours?: VacationHours;
686
1267
  }
687
1268
  interface EmployeeMod {
1269
+ /** 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. */
688
1270
  ListID: string;
1271
+ /** 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. */
689
1272
  EditSequence: string;
1273
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
690
1274
  IsActive?: boolean;
1275
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
691
1276
  Salutation?: string;
1277
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
692
1278
  FirstName?: string;
1279
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
693
1280
  MiddleName?: string;
1281
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
694
1282
  LastName?: string;
1283
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
695
1284
  JobTitle?: string;
1285
+ /** The name of a customer, vendor, employee, or person on the “other names” list in the employment job details section. */
696
1286
  SupervisorRef?: SupervisorRef;
1287
+ /** The name of the department in the employment job details section. */
697
1288
  Department?: string;
1289
+ /** The description details in the employment job details section. */
698
1290
  Description?: string;
1291
+ /** The target bonus amount in the employment job details section. */
699
1292
  TargetBonus?: string;
1293
+ /** If an address request fails, some combination of address fields might be too long. If you use payroll, you must specify the employee’s city, state (or province), ZIP (or postal) code, and at least one line of the street address. (Note that the `State` element has restrictions when it’s used in the `EmployeeAddress` aggregate. For more information, click `State` in the table.) */
700
1294
  EmployeeAddress?: EmployeeAddress;
1295
+ /** By default within QuickBooks, the `PrintAs` element is the same as the `Name` element. */
701
1296
  PrintAs?: string;
1297
+ /** The telephone number. */
702
1298
  Phone?: string;
1299
+ /** Mobile telephone number. */
703
1300
  Mobile?: string;
1301
+ /** The pager number. */
704
1302
  Pager?: string;
1303
+ /** A personal identification number for this employee’s pager. */
705
1304
  PagerPIN?: string;
1305
+ /** A telephone number given as an alternative to `Phone`. */
706
1306
  AltPhone?: string;
1307
+ /** Fax number. */
707
1308
  Fax?: string;
1309
+ /** E-mail address. */
708
1310
  Email?: string;
1311
+ /** List of additional contacts. */
709
1312
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1313
+ /** Emergency `Contact` information for the employee. */
710
1314
  EmergencyContacts?: EmergencyContacts;
1315
+ /** `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. */
711
1316
  EmployeeType?: EmployeeType;
1317
+ /** Full or Part time status of the employee. */
712
1318
  PartOrFullTime?: PartOrFullTime;
1319
+ /** Exempt or Non-exempt status of the employee. */
713
1320
  Exempt?: Exempt;
1321
+ /** Is employee a key or critical employee. */
714
1322
  KeyEmployee?: KeyEmployee;
1323
+ /** An employee’s date of hire. */
715
1324
  HiredDate?: string;
1325
+ /** Original hire date the employee was hired. */
716
1326
  OriginalHireDate?: string;
1327
+ /** Adjusted service date for the employee. */
717
1328
  AdjustedServiceDate?: string;
1329
+ /** The date on which this person’s employment with the company ended. */
718
1330
  ReleasedDate?: string;
1331
+ /** Date of birth. */
719
1332
  BirthDate?: string;
1333
+ /** Is employee a US citizen? */
720
1334
  USCitizen?: USCitizen;
1335
+ /** Ethnicity of employee from `AmericianIndian`, Asian, Black, Hawaiian, Hispanic, White, `TwoOrMoreRaces`. */
721
1336
  Ethnicity?: Ethnicity;
1337
+ /** Is employee disabled? */
722
1338
  Disabled?: Disabled;
1339
+ /** Description of employee’s disablitily. */
723
1340
  DisabilityDesc?: string;
1341
+ /** Is the employee’s I-9 on file? */
724
1342
  OnFile?: OnFile;
1343
+ /** Date the employee’s work authorization expires. */
725
1344
  WorkAuthExpireDate?: string;
1345
+ /** Is employee a US veteran? */
726
1346
  USVeteran?: USVeteran;
1347
+ /** Military status if the employee is a US veteran. */
727
1348
  MilitaryStatus?: MilitaryStatus;
1349
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
728
1350
  AccountNumber?: string;
1351
+ /** Additional information. */
729
1352
  Notes?: string;
1353
+ /** List of notes. */
730
1354
  AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1355
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
731
1356
  BillingRateRef?: BillingRateRef;
1357
+ /** Pay information for this employee. */
732
1358
  EmployeePayrollInfoMod?: EmployeePayrollInfoMod;
733
1359
  }
734
1360
  export interface EmployeeModRq {
735
1361
  EmployeeMod: EmployeeMod;
1362
+ /** 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. */
736
1363
  IncludeRetElement?: string[] | string;
737
1364
  }
738
1365
  export interface EmployeeModRs {
@@ -740,81 +1367,138 @@ export interface EmployeeModRs {
740
1367
  ErrorRecovery?: ErrorRecovery;
741
1368
  }
742
1369
  export interface EmployeeQueryRq {
1370
+ /** 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. */
743
1371
  ListID?: string[] | string;
1372
+ /** 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. */
744
1373
  FullName?: string[] | string;
1374
+ /** 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. */
745
1375
  MaxReturned?: number;
1376
+ /** 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. */
746
1377
  ActiveStatus?: ActiveStatus;
1378
+ /** 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). */
747
1379
  FromModifiedDate?: string;
1380
+ /** 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). */
748
1381
  ToModifiedDate?: string;
1382
+ /** Filters according to the object’s `Name`. */
749
1383
  NameFilter?: NameFilter;
1384
+ /** Filters according to the object’s `Name`. */
750
1385
  NameRangeFilter?: NameRangeFilter;
1386
+ /** 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. */
751
1387
  IncludeRetElement?: string[] | string;
1388
+ /** 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. */
752
1389
  OwnerID?: string[] | string;
753
1390
  }
754
1391
  export interface EmployeeQueryRs {
755
1392
  EmployeeRet?: EmployeeRet | EmployeeRet[];
756
1393
  }
757
1394
  interface AccountRef {
1395
+ /** 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. */
758
1396
  ListID?: string;
1397
+ /** `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. */
759
1398
  FullName?: string;
760
1399
  }
761
1400
  interface EntityRef {
1401
+ /** 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. */
762
1402
  ListID?: string;
1403
+ /** `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. */
763
1404
  FullName?: string;
764
1405
  }
765
1406
  declare type BillableStatus = "Billable" | "HasBeenBilled" | "NotBillable";
766
1407
  interface JournalDebitLine {
1408
+ /** 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.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
767
1409
  TxnLineID?: string;
1410
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
768
1411
  AccountRef?: AccountRef;
1412
+ /** A monetary amount. */
769
1413
  Amount?: string;
1414
+ /** Additional information. */
770
1415
  Memo?: string;
1416
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
771
1417
  EntityRef?: EntityRef;
1418
+ /** 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. */
772
1419
  ClassRef?: ClassRef;
1420
+ /** 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. */
773
1421
  ItemSalesTaxRef?: ItemSalesTaxRef;
1422
+ /** The billing status of this item line or expense line. */
774
1423
  BillableStatus?: BillableStatus;
775
1424
  }
776
1425
  interface JournalCreditLine {
1426
+ /** 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.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
777
1427
  TxnLineID?: string;
1428
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
778
1429
  AccountRef?: AccountRef;
1430
+ /** A monetary amount. */
779
1431
  Amount?: string;
1432
+ /** Additional information. */
780
1433
  Memo?: string;
1434
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
781
1435
  EntityRef?: EntityRef;
1436
+ /** 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. */
782
1437
  ClassRef?: ClassRef;
1438
+ /** 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. */
783
1439
  ItemSalesTaxRef?: ItemSalesTaxRef;
1440
+ /** The billing status of this item line or expense line. */
784
1441
  BillableStatus?: BillableStatus;
785
1442
  }
786
1443
  interface JournalEntryAdd {
1444
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
787
1445
  TxnDate?: string;
1446
+ /** 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. */
788
1447
  RefNumber?: string;
1448
+ /** When a change is an “adjustment,” the original information is retained, usually so an accountant can see the effects of the adjustment. */
789
1449
  IsAdjustment?: boolean;
1450
+ /** Indicates whether the transaction is using a home currency or foreign currency. */
790
1451
  IsHomeCurrencyAdjustment?: boolean;
1452
+ /** Flag that indicates the amount being entered is in the home currency. */
791
1453
  IsAmountsEnteredInHomeCurrency?: boolean;
1454
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
792
1455
  CurrencyRef?: CurrencyRef;
1456
+ /** 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.) */
793
1457
  ExchangeRate?: number;
1458
+ /** Allows for the attachment of a user defined GUID value. */
794
1459
  ExternalGUID?: string;
1460
+ /** If no amount is included in the first debit line (or credit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that `JournalEntry` object will fail XML validation. */
795
1461
  JournalDebitLine?: JournalDebitLine;
1462
+ /** If no amount is included in the first credit line (or debit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that `JournalEntry` object will fail XML validation. */
796
1463
  JournalCreditLine?: JournalCreditLine;
797
1464
  }
798
1465
  export interface JournalEntryAddRq {
799
1466
  JournalEntryAdd: JournalEntryAdd;
1467
+ /** 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. */
800
1468
  IncludeRetElement?: string[] | string;
801
1469
  }
802
1470
  interface JournalEntryRet {
1471
+ /** 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. 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. */
803
1472
  TxnID: string;
1473
+ /** Time the object was created. */
804
1474
  TimeCreated: string;
1475
+ /** Time the object was last modified. */
805
1476
  TimeModified: string;
1477
+ /** 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. */
806
1478
  EditSequence: string;
1479
+ /** An identifying number for this transaction. */
807
1480
  TxnNumber?: number;
1481
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
808
1482
  TxnDate: string;
1483
+ /** 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. */
809
1484
  RefNumber?: string;
1485
+ /** When a change is an “adjustment,” the original information is retained, usually so an accountant can see the effects of the adjustment. */
810
1486
  IsAdjustment?: boolean;
1487
+ /** Indicates whether the transaction is using a home currency or foreign currency. */
811
1488
  IsHomeCurrencyAdjustment?: boolean;
1489
+ /** Flag that indicates the amount being entered is in the home currency. */
812
1490
  IsAmountsEnteredInHomeCurrency?: boolean;
1491
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
813
1492
  CurrencyRef?: CurrencyRef;
1493
+ /** 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.) */
814
1494
  ExchangeRate?: number;
1495
+ /** Allows for the attachment of a user defined GUID value. */
815
1496
  ExternalGUID?: string;
1497
+ /** If no amount is included in the first debit line (or credit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that `JournalEntry` object will fail XML validation. */
816
1498
  JournalDebitLine?: JournalDebitLine;
1499
+ /** If no amount is included in the first credit line (or debit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that `JournalEntry` object will fail XML validation. */
817
1500
  JournalCreditLine?: JournalCreditLine;
1501
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
818
1502
  DataExtRet?: DataExtRet | DataExtRet[];
819
1503
  }
820
1504
  export interface JournalEntryAddRs {
@@ -823,29 +1507,48 @@ export interface JournalEntryAddRs {
823
1507
  }
824
1508
  declare type JournalLineType = "Credit" | "Debit";
825
1509
  interface JournalLineMod {
1510
+ /** 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.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the `TxnLineID` to -1. */
826
1511
  TxnLineID: string;
1512
+ /** The type of journal line (debit or credit). */
827
1513
  JournalLineType?: JournalLineType;
1514
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
828
1515
  AccountRef?: AccountRef;
1516
+ /** A monetary amount. */
829
1517
  Amount?: string;
1518
+ /** Additional information. */
830
1519
  Memo?: string;
1520
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
831
1521
  EntityRef?: EntityRef;
1522
+ /** 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. */
832
1523
  ClassRef?: ClassRef;
1524
+ /** 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. */
833
1525
  ItemSalesTaxRef?: ItemSalesTaxRef;
1526
+ /** The billing status of this item line or expense line. */
834
1527
  BillableStatus?: BillableStatus;
835
1528
  }
836
1529
  interface JournalEntryMod {
1530
+ /** 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. 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. */
837
1531
  TxnID: string;
1532
+ /** 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. */
838
1533
  EditSequence: string;
1534
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
839
1535
  TxnDate?: string;
1536
+ /** 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. */
840
1537
  RefNumber?: string;
1538
+ /** When a change is an “adjustment,” the original information is retained, usually so an accountant can see the effects of the adjustment. */
841
1539
  IsAdjustment?: boolean;
1540
+ /** Flag that indicates the amount being entered is in the home currency. */
842
1541
  IsAmountsEnteredInHomeCurrency?: boolean;
1542
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
843
1543
  CurrencyRef?: CurrencyRef;
1544
+ /** 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.) */
844
1545
  ExchangeRate?: number;
1546
+ /** `IORJournalLineList` The list of journal lines in a `JournalMod` request – note that in a mod request, inclding one line means that you must include all lines, modified or not. */
845
1547
  JournalLineMod?: JournalLineMod | JournalLineMod[];
846
1548
  }
847
1549
  export interface JournalEntryModRq {
848
1550
  JournalEntryMod: JournalEntryMod;
1551
+ /** 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. */
849
1552
  IncludeRetElement?: string[] | string;
850
1553
  }
851
1554
  export interface JournalEntryModRs {
@@ -853,199 +1556,354 @@ export interface JournalEntryModRs {
853
1556
  ErrorRecovery?: ErrorRecovery;
854
1557
  }
855
1558
  interface ModifiedDateRangeFilter {
1559
+ /** 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). */
856
1560
  FromModifiedDate?: string;
1561
+ /** 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). */
857
1562
  ToModifiedDate?: string;
858
1563
  }
859
1564
  declare type DateMacro = "All" | "LastCalendarQuarter" | "LastCalendarQuarterToDate" | "LastCalendarYear" | "LastCalendarYearToDate" | "LastFiscalQuarter" | "LastFiscalQuarterToDate" | "LastFiscalYear" | "LastFiscalYearToDate" | "LastMonth" | "LastMonthToDate" | "LastWeek" | "LastWeekToDate" | "NextCalendarQuarter" | "NextCalendarYear" | "NextFiscalQuarter" | "NextFiscalYear" | "NextFourWeeks" | "NextMonth" | "NextWeek" | "ThisCalendarQuarter" | "ThisCalendarQuarterToDate" | "ThisCalendarYear" | "ThisCalendarYearToDate" | "ThisFiscalQuarter" | "ThisFiscalQuarterToDate" | "ThisFiscalYear" | "ThisFiscalYearToDate" | "ThisMonth" | "ThisMonthToDate" | "ThisWeek" | "ThisWeekToDate" | "Today" | "Yesterday";
860
1565
  interface TxnDateRangeFilter {
1566
+ /** Selects transactions created on or after this date. Both `FromTxnDate` and `ToTxnDate` must be between 01/01/1901 and 12/31/9999.If you omit `FromTxnDate`, it will be set to 1970-01-01 (1969-12-31 PST). */
861
1567
  FromTxnDate?: string;
1568
+ /** Selects transactions created on or before this date. Both `ToTxnDate` and `FromTxnDate` must be between 01/01/1901 and 12/31/9999. If you omit `ToTxnDate`, it will be set to 2038-01-19 (2038-01-18 PST). */
862
1569
  ToTxnDate?: string;
1570
+ /** Refers to the transaction date, not the last modification date. Do not include `DateMacro` if either `FromModifedDate` or `ToModifiedDate` are specified. If a query does not specify `DateMacro`, `FromModifedDate`, or `ToModifiedDate`, it includes all dates. `DateMacro` values, in alphabetical order, that are new with QBFC3: `dmAll`, `dmdmLastCalendarQuarter`, `dmdmLastCalendarQuarterToDate`, `dmdmLastCalendarYear`, `dmdmLastCalendarYearToDate`, `dmLastFiscalQuarterToDate`, `dmLastFiscalYearToDate`, `dmLastMonthToDate`, `dmLastWeekToDate`, `dmNextCalendarQuarter`, `dmNextCalendarYear`, `dmNextFiscalQuarter`, `dmNextFiscalYear`, `dmNextFourWeeks`, `dmNextMonth`, `dmNextWeek`, `dmThisCalendarQuarter`, `dmThisCalendarQuarterToDate`, `dmThisCalendarYear`, dm `ThisCalendarYearToDate`, `dmThisFiscalQuarter`, `dmThisFiscalYear`, `dmThisMonth`, `dmThisWeek`, `dmThisWeekToDate`, `dmToday`, `dmYesterday` The list given when you click `IQBENDateMacroType` shows the complete list of valid version 3.0 values. */
863
1571
  DateMacro?: DateMacro;
864
1572
  }
865
1573
  interface EntityFilter {
1574
+ /** 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. */
866
1575
  ListID?: string[] | string;
1576
+ /** 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. */
867
1577
  FullName?: string[] | string;
1578
+ /** Allows you to filter for data that relates to the specified object and its descendants. */
868
1579
  ListIDWithChildren?: string;
1580
+ /** Allows you to filter for data that relates to the specified object and its descendants. For names that do not have children, `FullNameWithChildren` is exactly the same as `FullName`. */
869
1581
  FullNameWithChildren?: string;
870
1582
  }
871
1583
  interface AccountFilter {
1584
+ /** 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. */
872
1585
  ListID?: string[] | string;
1586
+ /** 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. */
873
1587
  FullName?: string[] | string;
1588
+ /** Allows you to filter for data that relates to the specified object and its descendants. */
874
1589
  ListIDWithChildren?: string;
1590
+ /** Allows you to filter for data that relates to the specified object and its descendants. For names that do not have children, `FullNameWithChildren` is exactly the same as `FullName`. */
875
1591
  FullNameWithChildren?: string;
876
1592
  }
877
1593
  interface RefNumberFilter {
1594
+ /** The criterion to match. */
878
1595
  MatchCriterion: MatchCriterion;
1596
+ /** 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. */
879
1597
  RefNumber: string;
880
1598
  }
881
1599
  interface RefNumberRangeFilter {
1600
+ /** The first `RefNumber` in the search range. If `FromRefNumber` is omitted, the range will begin with first number on the list. */
882
1601
  FromRefNumber?: string;
1602
+ /** The final `RefNumber` in the search range. If `ToRefNumber` is omitted, the range will end with last number on the list. */
883
1603
  ToRefNumber?: string;
884
1604
  }
885
1605
  export interface JournalEntryQueryRq {
1606
+ /** 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. */
886
1607
  TxnID?: string[] | string;
1608
+ /** 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. */
887
1609
  RefNumber?: string[] | string;
1610
+ /** 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. */
888
1611
  RefNumberCaseSensitive?: string[] | string;
1612
+ /** 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. */
889
1613
  MaxReturned?: number;
1614
+ /** 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.) */
890
1615
  ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
1616
+ /** Filters according to the original transaction dates. */
891
1617
  TxnDateRangeFilter?: TxnDateRangeFilter;
1618
+ /** 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. */
892
1619
  EntityFilter?: EntityFilter;
1620
+ /** 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. */
893
1621
  AccountFilter?: AccountFilter;
1622
+ /** Filters according to `RefNumber`. */
894
1623
  RefNumberFilter?: RefNumberFilter;
1624
+ /** 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`. */
895
1625
  RefNumberRangeFilter?: RefNumberRangeFilter;
1626
+ /** Filters by the specified currency. */
896
1627
  CurrencyFilter?: CurrencyFilter;
1628
+ /** 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. */
897
1629
  IncludeLineItems?: boolean;
1630
+ /** 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. */
898
1631
  IncludeRetElement?: string[] | string;
1632
+ /** 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. */
899
1633
  OwnerID?: string[] | string;
900
1634
  }
901
1635
  export interface JournalEntryQueryRs {
902
1636
  JournalEntryRet?: JournalEntryRet | JournalEntryRet[];
903
1637
  }
904
1638
  interface VendorAddress {
1639
+ /** The first line of an address. */
905
1640
  Addr1?: string;
1641
+ /** The second line of an address (if a second line is needed). */
906
1642
  Addr2?: string;
1643
+ /** The third line of an address (if a third line is needed). */
907
1644
  Addr3?: string;
1645
+ /** The fourth line of an address (if a fourth line is needed). */
908
1646
  Addr4?: string;
1647
+ /** The fifth line of an address (if a fifth line is needed). */
909
1648
  Addr5?: string;
1649
+ /** The city name in an address. */
910
1650
  City?: string;
1651
+ /** The state name in an address. */
911
1652
  State?: string;
1653
+ /** The postal code in an address. */
912
1654
  PostalCode?: string;
1655
+ /** The country name in an address, or, in returned Host information (`HostRet` or `HostInfo`), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.) */
913
1656
  Country?: string;
1657
+ /** In a `BillAddress` or `ShipAddress` aggregate, the `Note` field value is written at the bottom of the address in the form in which it appears, such as the invoice form. */
914
1658
  Note?: string;
915
1659
  }
916
1660
  interface VendorTypeRef {
1661
+ /** 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. */
917
1662
  ListID?: string;
1663
+ /** `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. */
918
1664
  FullName?: string;
919
1665
  }
920
1666
  interface SalesTaxReturnRef {
1667
+ /** 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. */
921
1668
  ListID?: string;
1669
+ /** `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. */
922
1670
  FullName?: string;
923
1671
  }
924
1672
  /** @default: Quarterly */
925
1673
  declare type ReportingPeriod = "Monthly" | "Quarterly";
926
1674
  interface TaxOnPurchasesAccountRef {
1675
+ /** 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. */
927
1676
  ListID?: string;
1677
+ /** `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. */
928
1678
  FullName?: string;
929
1679
  }
930
1680
  interface TaxOnSalesAccountRef {
1681
+ /** 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. */
931
1682
  ListID?: string;
1683
+ /** `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. */
932
1684
  FullName?: string;
933
1685
  }
934
1686
  interface PrefillAccountRef {
1687
+ /** 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. */
935
1688
  ListID?: string;
1689
+ /** `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. */
936
1690
  FullName?: string;
937
1691
  }
938
1692
  interface VendorAdd {
1693
+ /** 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. */
939
1694
  Name: string;
1695
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
940
1696
  IsActive?: boolean;
1697
+ /** 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. */
941
1698
  ClassRef?: ClassRef;
1699
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
942
1700
  CompanyName?: string;
1701
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
943
1702
  Salutation?: string;
1703
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
944
1704
  FirstName?: string;
1705
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
945
1706
  MiddleName?: string;
1707
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
946
1708
  LastName?: string;
1709
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
947
1710
  JobTitle?: string;
1711
+ /** If an address request fails, some combination of address fields might be too long. */
948
1712
  VendorAddress?: VendorAddress;
1713
+ /** 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`. */
949
1714
  ShipAddress?: ShipAddress;
1715
+ /** The telephone number. */
950
1716
  Phone?: string;
1717
+ /** A telephone number given as an alternative to `Phone`. */
951
1718
  AltPhone?: string;
1719
+ /** Fax number. */
952
1720
  Fax?: string;
1721
+ /** E-mail address. */
953
1722
  Email?: string;
1723
+ /** Email address that would be carbon copied or CC. */
954
1724
  Cc?: string;
1725
+ /** The name of a contact person for a customer or vendor. */
955
1726
  Contact?: string;
1727
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
956
1728
  AltContact?: string;
1729
+ /** List of additional contacts. */
957
1730
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1731
+ /** A list of contact records. */
958
1732
  Contacts?: Contacts | Contacts[];
1733
+ /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
959
1734
  NameOnCheck?: string;
1735
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
960
1736
  AccountNumber?: string;
1737
+ /** Additional information about this vendor. */
961
1738
  Notes?: string;
1739
+ /** List of notes. */
962
1740
  AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1741
+ /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
963
1742
  VendorTypeRef?: VendorTypeRef;
1743
+ /** 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. */
964
1744
  TermsRef?: TermsRef;
1745
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
965
1746
  CreditLimit?: string;
1747
+ /** A character string that identifies a vendor. */
966
1748
  VendorTaxIdent?: string;
1749
+ /** If `IsVendorEligibleFor1099` is set to true, `VendorTaxIdent` and `VendorAddress` are required in a vendor add request message. Otherwise, `VendorTaxIdent` and `VendorAddress` are optional. */
967
1750
  IsVendorEligibleFor1099?: boolean;
1751
+ /** The opening balance of this vendor’s account. A positive number indicates money owed to this vendor. */
968
1752
  OpenBalance?: string;
1753
+ /** The date of the opening balance for this vendor. */
969
1754
  OpenBalanceDate?: string;
1755
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
970
1756
  BillingRateRef?: BillingRateRef;
1757
+ /** Allows for the attachment of a user defined GUID value. */
971
1758
  ExternalGUID?: string;
1759
+ /** 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. */
972
1760
  SalesTaxCodeRef?: SalesTaxCodeRef;
1761
+ /** The country that sales tax is collected for. */
973
1762
  SalesTaxCountry?: SalesTaxCountry;
1763
+ /** Indicates whether the entity is a sales tax agency. */
974
1764
  IsSalesTaxAgency?: boolean;
1765
+ /** Sales tax return information. */
975
1766
  SalesTaxReturnRef?: SalesTaxReturnRef;
1767
+ /** The tax registration number used in CA and UK. */
976
1768
  TaxRegistrationNumber?: string;
1769
+ /** Vendor reporting period for CA or UK. This can be monthly or quarterly. */
977
1770
  ReportingPeriod?: ReportingPeriod;
1771
+ /** This flag is used for CA or UK and whether tax is tracked on purchases. */
978
1772
  IsTaxTrackedOnPurchases?: boolean;
1773
+ /** Account used for taxes on purchases in CA or UK. */
979
1774
  TaxOnPurchasesAccountRef?: TaxOnPurchasesAccountRef;
1775
+ /** This flag is used for CA or UK and whether tax is tracked on sales. */
980
1776
  IsTaxTrackedOnSales?: boolean;
1777
+ /** Account used for taxes on sales in CA or UK. */
981
1778
  TaxOnSalesAccountRef?: TaxOnSalesAccountRef;
1779
+ /** For vendor in CA or UK, is there tax charged on top of tax. */
982
1780
  IsTaxOnTax?: boolean;
1781
+ /** Expense account to prefill when you enter bills for this vendor. */
983
1782
  PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
1783
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
984
1784
  CurrencyRef?: CurrencyRef;
985
1785
  }
986
1786
  export interface VendorAddRq {
987
1787
  VendorAdd: VendorAdd;
1788
+ /** 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. */
988
1789
  IncludeRetElement?: string[] | string;
989
1790
  }
990
1791
  interface VendorAddressBlock {
1792
+ /** The first line of an address. */
991
1793
  Addr1?: string;
1794
+ /** The second line of an address (if a second line is needed). */
992
1795
  Addr2?: string;
1796
+ /** The third line of an address (if a third line is needed). */
993
1797
  Addr3?: string;
1798
+ /** The fourth line of an address (if a fourth line is needed). */
994
1799
  Addr4?: string;
1800
+ /** The fifth line of an address (if a fifth line is needed). */
995
1801
  Addr5?: string;
996
1802
  }
997
1803
  interface VendorRet {
1804
+ /** 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. */
998
1805
  ListID: string;
1806
+ /** Time the object was created. */
999
1807
  TimeCreated: string;
1808
+ /** Time the object was last modified. */
1000
1809
  TimeModified: string;
1810
+ /** 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. */
1001
1811
  EditSequence: string;
1812
+ /** 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. */
1002
1813
  Name: string;
1814
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
1003
1815
  IsActive?: boolean;
1816
+ /** 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. */
1004
1817
  ClassRef?: ClassRef;
1818
+ /** Is the current entity a tax agency. */
1005
1819
  IsTaxAgency?: boolean;
1820
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
1006
1821
  CompanyName?: string;
1822
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
1007
1823
  Salutation?: string;
1824
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
1008
1825
  FirstName?: string;
1826
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
1009
1827
  MiddleName?: string;
1828
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
1010
1829
  LastName?: string;
1830
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1011
1831
  JobTitle?: string;
1832
+ /** If an address request fails, some combination of address fields might be too long. */
1012
1833
  VendorAddress?: VendorAddress;
1834
+ /** 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. */
1013
1835
  VendorAddressBlock?: VendorAddressBlock;
1836
+ /** 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`. */
1014
1837
  ShipAddress?: ShipAddress;
1838
+ /** The telephone number. */
1015
1839
  Phone?: string;
1840
+ /** A telephone number given as an alternative to `Phone`. */
1016
1841
  AltPhone?: string;
1842
+ /** Fax number. */
1017
1843
  Fax?: string;
1844
+ /** E-mail address. */
1018
1845
  Email?: string;
1846
+ /** Email address that would be carbon copied or CC. */
1019
1847
  Cc?: string;
1848
+ /** The name of a contact person for a customer or vendor. */
1020
1849
  Contact?: string;
1850
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1021
1851
  AltContact?: string;
1852
+ /** List of additional contacts. */
1022
1853
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1854
+ /** A list of contact records. */
1023
1855
  ContactsRet?: ContactsRet | ContactsRet[];
1856
+ /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
1024
1857
  NameOnCheck?: string;
1858
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
1025
1859
  AccountNumber?: string;
1860
+ /** Additional information about this vendor. */
1026
1861
  Notes?: string;
1862
+ /** List of notes. */
1027
1863
  AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1864
+ /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1028
1865
  VendorTypeRef?: VendorTypeRef;
1866
+ /** 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. */
1029
1867
  TermsRef?: TermsRef;
1868
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
1030
1869
  CreditLimit?: string;
1870
+ /** A character string that identifies a vendor. */
1031
1871
  VendorTaxIdent?: string;
1872
+ /** If `IsVendorEligibleFor1099` is set to true, `VendorTaxIdent` and `VendorAddress` are required in a vendor add request message. Otherwise, `VendorTaxIdent` and `VendorAddress` are optional. */
1032
1873
  IsVendorEligibleFor1099?: boolean;
1874
+ /** A positive number indicates money owed to this vendor. */
1033
1875
  Balance?: string;
1876
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
1034
1877
  BillingRateRef?: BillingRateRef;
1878
+ /** Allows for the attachment of a user defined GUID value. */
1035
1879
  ExternalGUID?: string;
1880
+ /** 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. */
1036
1881
  SalesTaxCodeRef?: SalesTaxCodeRef;
1882
+ /** The country that sales tax is collected for. */
1037
1883
  SalesTaxCountry?: SalesTaxCountry;
1884
+ /** Indicates whether the entity is a sales tax agency. */
1038
1885
  IsSalesTaxAgency?: boolean;
1886
+ /** Sales tax return information. */
1039
1887
  SalesTaxReturnRef?: SalesTaxReturnRef;
1888
+ /** The tax registration number used in CA and UK. */
1040
1889
  TaxRegistrationNumber?: string;
1890
+ /** Vendor reporting period for CA or UK. This can be monthly or quarterly. */
1041
1891
  ReportingPeriod?: ReportingPeriod;
1892
+ /** This flag is used for CA or UK and whether tax is tracked on purchases. */
1042
1893
  IsTaxTrackedOnPurchases?: boolean;
1894
+ /** Account used for taxes on purchases in CA or UK. */
1043
1895
  TaxOnPurchasesAccountRef?: TaxOnPurchasesAccountRef;
1896
+ /** This flag is used for CA or UK and whether tax is tracked on sales. */
1044
1897
  IsTaxTrackedOnSales?: boolean;
1898
+ /** Account used for taxes on sales in CA or UK. */
1045
1899
  TaxOnSalesAccountRef?: TaxOnSalesAccountRef;
1900
+ /** For vendor in CA or UK, is there tax charged on top of tax. */
1046
1901
  IsTaxOnTax?: boolean;
1902
+ /** Expense account to prefill when you enter bills for this vendor. */
1047
1903
  PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
1904
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
1048
1905
  CurrencyRef?: CurrencyRef;
1906
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1049
1907
  DataExtRet?: DataExtRet | DataExtRet[];
1050
1908
  }
1051
1909
  export interface VendorAddRs {
@@ -1053,54 +1911,100 @@ export interface VendorAddRs {
1053
1911
  ErrorRecovery?: ErrorRecovery;
1054
1912
  }
1055
1913
  interface VendorMod {
1914
+ /** 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. */
1056
1915
  ListID: string;
1916
+ /** 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. */
1057
1917
  EditSequence: string;
1918
+ /** 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. */
1058
1919
  Name?: string;
1920
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
1059
1921
  IsActive?: boolean;
1922
+ /** 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. */
1060
1923
  ClassRef?: ClassRef;
1924
+ /** The name of the QuickBooks user’s business, as specified in QuickBooks. `CompanyName` and Address are used on invoices, checks, and other forms. (`LegalCompanyName` and `LegalAddress`, on the other hand, are used on a company’s tax forms and pay stubs.) */
1061
1925
  CompanyName?: string;
1926
+ /** A formal reference, such as Mr. or Dr., that precedes a name. */
1062
1927
  Salutation?: string;
1928
+ /** The first name of a customer, vendor, employee, or person on the “other names” list. */
1063
1929
  FirstName?: string;
1930
+ /** The middle name of a customer, vendor, employee, or person on the “other names” list. */
1064
1931
  MiddleName?: string;
1932
+ /** The last name of a customer, vendor, employee, or person on the “other names” list. */
1065
1933
  LastName?: string;
1934
+ /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1066
1935
  JobTitle?: string;
1936
+ /** If an address request fails, some combination of address fields might be too long. */
1067
1937
  VendorAddress?: VendorAddress;
1938
+ /** 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`. */
1068
1939
  ShipAddress?: ShipAddress;
1940
+ /** The telephone number. */
1069
1941
  Phone?: string;
1942
+ /** A telephone number given as an alternative to `Phone`. */
1070
1943
  AltPhone?: string;
1944
+ /** Fax number. */
1071
1945
  Fax?: string;
1946
+ /** E-mail address. */
1072
1947
  Email?: string;
1948
+ /** Email address that would be carbon copied or CC. */
1073
1949
  Cc?: string;
1950
+ /** The name of a contact person for a customer or vendor. */
1074
1951
  Contact?: string;
1952
+ /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1075
1953
  AltContact?: string;
1954
+ /** List of additional contacts. */
1076
1955
  AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1956
+ /** A list of contact records. */
1077
1957
  ContactsMod?: ContactsMod | ContactsMod[];
1958
+ /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
1078
1959
  NameOnCheck?: string;
1960
+ /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
1079
1961
  AccountNumber?: string;
1962
+ /** Additional information about this vendor. */
1080
1963
  Notes?: string;
1964
+ /** List of notes. */
1081
1965
  AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1966
+ /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1082
1967
  VendorTypeRef?: VendorTypeRef;
1968
+ /** 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. */
1083
1969
  TermsRef?: TermsRef;
1970
+ /** Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit. */
1084
1971
  CreditLimit?: string;
1972
+ /** A character string that identifies a vendor. */
1085
1973
  VendorTaxIdent?: string;
1974
+ /** If `IsVendorEligibleFor1099` is set to true, `VendorTaxIdent` and `VendorAddress` are required in a vendor add request message. Otherwise, `VendorTaxIdent` and `VendorAddress` are optional. */
1086
1975
  IsVendorEligibleFor1099?: boolean;
1976
+ /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
1087
1977
  BillingRateRef?: BillingRateRef;
1978
+ /** 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. */
1088
1979
  SalesTaxCodeRef?: SalesTaxCodeRef;
1980
+ /** The country that sales tax is collected for. */
1089
1981
  SalesTaxCountry?: SalesTaxCountry;
1982
+ /** Indicates whether the entity is a sales tax agency. */
1090
1983
  IsSalesTaxAgency?: boolean;
1984
+ /** Sales tax return information. */
1091
1985
  SalesTaxReturnRef?: SalesTaxReturnRef;
1986
+ /** The tax registration number used in CA and UK. */
1092
1987
  TaxRegistrationNumber?: string;
1988
+ /** Vendor reporting period for CA or UK. This can be monthly or quarterly. */
1093
1989
  ReportingPeriod?: ReportingPeriod;
1990
+ /** This flag is used for CA or UK and whether tax is tracked on purchases. */
1094
1991
  IsTaxTrackedOnPurchases?: boolean;
1992
+ /** Account used for taxes on purchases in CA or UK. */
1095
1993
  TaxOnPurchasesAccountRef?: TaxOnPurchasesAccountRef;
1994
+ /** This flag is used for CA or UK and whether tax is tracked on sales. */
1096
1995
  IsTaxTrackedOnSales?: boolean;
1996
+ /** Account used for taxes on sales in CA or UK. */
1097
1997
  TaxOnSalesAccountRef?: TaxOnSalesAccountRef;
1998
+ /** For vendor in CA or UK, is there tax charged on top of tax. */
1098
1999
  IsTaxOnTax?: boolean;
2000
+ /** Expense account to prefill when you enter bills for this vendor. */
1099
2001
  PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
2002
+ /** 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. When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
1100
2003
  CurrencyRef?: CurrencyRef;
1101
2004
  }
1102
2005
  export interface VendorModRq {
1103
2006
  VendorMod: VendorMod;
2007
+ /** 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. */
1104
2008
  IncludeRetElement?: string[] | string;
1105
2009
  }
1106
2010
  export interface VendorModRs {
@@ -1108,18 +2012,31 @@ export interface VendorModRs {
1108
2012
  ErrorRecovery?: ErrorRecovery;
1109
2013
  }
1110
2014
  export interface VendorQueryRq {
2015
+ /** 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. */
1111
2016
  ListID?: string[] | string;
2017
+ /** 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. */
1112
2018
  FullName?: string[] | string;
2019
+ /** 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. */
1113
2020
  MaxReturned?: number;
2021
+ /** 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. */
1114
2022
  ActiveStatus?: ActiveStatus;
2023
+ /** 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). */
1115
2024
  FromModifiedDate?: string;
2025
+ /** 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). */
1116
2026
  ToModifiedDate?: string;
2027
+ /** Filters according to the object’s `Name`. */
1117
2028
  NameFilter?: NameFilter;
2029
+ /** Filters according to the object’s `Name`. */
1118
2030
  NameRangeFilter?: NameRangeFilter;
2031
+ /** Filters according to total balance. Total balance includes the balance for all subaccounts; for example, a customer’s `TotalBalance` would include all the jobs for that customer. */
1119
2032
  TotalBalanceFilter?: TotalBalanceFilter;
2033
+ /** Filters by the specified currency. */
1120
2034
  CurrencyFilter?: CurrencyFilter;
2035
+ /** Filter according to class. */
1121
2036
  ClassFilter?: ClassFilter;
2037
+ /** 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. */
1122
2038
  IncludeRetElement?: string[] | string;
2039
+ /** 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. */
1123
2040
  OwnerID?: string[] | string;
1124
2041
  }
1125
2042
  export interface VendorQueryRs {