conductor-node 3.1.2 → 3.2.1

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.
@@ -36,7 +36,7 @@ interface AccountAdd {
36
36
  }
37
37
  export interface AccountAddRq {
38
38
  AccountAdd: AccountAdd;
39
- /** 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.
39
+ /** 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.
40
40
 
41
41
  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.
42
42
 
@@ -99,7 +99,7 @@ interface AccountMod {
99
99
  }
100
100
  export interface AccountModRq {
101
101
  AccountMod: AccountMod;
102
- /** 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.
102
+ /** 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.
103
103
 
104
104
  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.
105
105
 
@@ -145,7 +145,7 @@ export interface AccountQueryRq {
145
145
  AccountType?: AccountType | AccountType[];
146
146
  /** Filters by the specified currency. */
147
147
  CurrencyFilter?: CurrencyFilter;
148
- /** 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.
148
+ /** 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.
149
149
 
150
150
  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.
151
151
 
@@ -251,6 +251,60 @@ interface AdditionalNotesRet {
251
251
  /** 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. */
252
252
  Note: string;
253
253
  }
254
+ interface Address {
255
+ /** The first line of an address. */
256
+ Addr1?: string;
257
+ /** The second line of an address (if a second line is needed). */
258
+ Addr2?: string;
259
+ /** The third line of an address (if a third line is needed). */
260
+ Addr3?: string;
261
+ /** The fourth line of an address (if a fourth line is needed). */
262
+ Addr4?: string;
263
+ /** The fifth line of an address (if a fifth line is needed). */
264
+ Addr5?: string;
265
+ /** The city name in an address. */
266
+ City?: string;
267
+ /** The state name in an address. */
268
+ State?: string;
269
+ /** The postal code in an address. */
270
+ PostalCode?: string;
271
+ /** 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.) */
272
+ Country?: string;
273
+ /** 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. */
274
+ Note?: string;
275
+ }
276
+ interface AddressBlock {
277
+ /** The first line of an address. */
278
+ Addr1?: string;
279
+ /** The second line of an address (if a second line is needed). */
280
+ Addr2?: string;
281
+ /** The third line of an address (if a third line is needed). */
282
+ Addr3?: string;
283
+ /** The fourth line of an address (if a fourth line is needed). */
284
+ Addr4?: string;
285
+ /** The fifth line of an address (if a fifth line is needed). */
286
+ Addr5?: string;
287
+ }
288
+ interface ApplyCheckToTxnAdd {
289
+ /** 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. */
290
+ TxnID: string;
291
+ /** A monetary amount. */
292
+ Amount?: string;
293
+ }
294
+ interface ApplyCheckToTxnMod {
295
+ /** 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. */
296
+ TxnID: string;
297
+ /** A monetary amount. */
298
+ Amount?: string;
299
+ }
300
+ interface BarCode {
301
+ /** Value of the barcode in the item. */
302
+ BarCodeValue?: string;
303
+ /** Allow barcode to be assigned to item, even if already in use. */
304
+ AssignEvenIfUsed?: boolean;
305
+ /** Allows for barcode to be overridden for an item. */
306
+ AllowOverride?: boolean;
307
+ }
254
308
  declare type BillableStatus = "Billable" | "HasBeenBilled" | "NotBillable";
255
309
  interface BillAddress {
256
310
  /** The first line of an address. */
@@ -293,6 +347,198 @@ interface BillingRateRef {
293
347
  FullName?: string;
294
348
  }
295
349
  declare type CashFlowClassification = "Financing" | "Investing" | "None" | "NotApplicable" | "Operating";
350
+ interface CheckAdd {
351
+ /** 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` */
352
+ AccountRef: AccountRef;
353
+ /** Refers to a payee who is a customer, vendor, employee, or person on the “other names” list. In a request, if a `PayeeEntityRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Check message, `PayeeEntityRef` refers to the person or company to whom the check is written. In `CreditCardCharge` and `CreditCardCredit` messages, `PayeeEntityRef` refers to the vendor or company from whom merchandise was purchased. (`PayeeEntityRef` corresponds to the choice in the Purchased From list in QuickBooks.) */
354
+ PayeeEntityRef?: PayeeEntityRef;
355
+ /** 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. */
356
+ RefNumber?: string;
357
+ /** The date written on the check. 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. */
358
+ TxnDate?: string;
359
+ /** The memo that is printed on the check itself. */
360
+ Memo?: string;
361
+ /** If an address request fails, some combination of address fields might be too long. In a Check, `BillPaymentCheck`, or `SalesTaxPaymentCheck` message, `Address` is the address that will print on the check. */
362
+ Address?: Address;
363
+ /** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once. Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
364
+ IsToBePrinted?: boolean;
365
+ /** For future use with international versions of QuickBooks. */
366
+ IsTaxIncluded?: boolean;
367
+ /** 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. */
368
+ SalesTaxCodeRef?: SalesTaxCodeRef;
369
+ /** 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.) */
370
+ ExchangeRate?: number;
371
+ /** Allows for the attachment of a user defined GUID value. */
372
+ ExternalGUID?: string;
373
+ /** Allows you to specify a transaction to be paid by this check. */
374
+ ApplyCheckToTxnAdd?: ApplyCheckToTxnAdd | ApplyCheckToTxnAdd[];
375
+ /** A list of `IExpenseLine` objects, each representing one line in this expense. */
376
+ ExpenseLineAdd?: ExpenseLineAdd | ExpenseLineAdd[];
377
+ /** An `ItemLine` is used to track any portion of a transaction that represents the purchase of an “item.” If `ItemLineAdd` does not specify an `Amount`, `Cost`, or `Quantity`, then QuickBooks will calculate `Amount` based on a `Quantity` of 1 and the suggested `Cost`. */
378
+ ItemLineAdd?: ItemLineAdd;
379
+ /** Refers to items that are grouped together in QuickBooks for fast entry. */
380
+ ItemGroupLineAdd?: ItemGroupLineAdd;
381
+ }
382
+ export interface CheckAddRq {
383
+ CheckAdd: CheckAdd;
384
+ /** 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. */
385
+ IncludeRetElement?: string[] | string;
386
+ }
387
+ export interface CheckAddRs {
388
+ CheckRet?: CheckRet;
389
+ ErrorRecovery?: ErrorRecovery;
390
+ }
391
+ interface CheckMod {
392
+ /** 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. */
393
+ TxnID: string;
394
+ /** 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. */
395
+ EditSequence: string;
396
+ /** 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` */
397
+ AccountRef?: AccountRef;
398
+ /** Refers to a payee who is a customer, vendor, employee, or person on the “other names” list. In a request, if a `PayeeEntityRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Check message, `PayeeEntityRef` refers to the person or company to whom the check is written. In `CreditCardCharge` and `CreditCardCredit` messages, `PayeeEntityRef` refers to the vendor or company from whom merchandise was purchased. (`PayeeEntityRef` corresponds to the choice in the Purchased From list in QuickBooks.) */
399
+ PayeeEntityRef?: PayeeEntityRef;
400
+ /** 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. */
401
+ RefNumber?: string;
402
+ /** The date written on the check. 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. */
403
+ TxnDate?: string;
404
+ /** The memo that is printed on the check itself. */
405
+ Memo?: string;
406
+ /** If an address request fails, some combination of address fields might be too long. In a Check, `BillPaymentCheck`, or `SalesTaxPaymentCheck` message, `Address` is the address that will print on the check. */
407
+ Address?: Address;
408
+ /** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once. Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
409
+ IsToBePrinted?: boolean;
410
+ /** For future use with international versions of QuickBooks. */
411
+ IsTaxIncluded?: boolean;
412
+ /** 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. */
413
+ SalesTaxCodeRef?: SalesTaxCodeRef;
414
+ /** 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.) */
415
+ ExchangeRate?: number;
416
+ /** Allows you to specify a transaction to be paid by this check. */
417
+ ApplyCheckToTxnMod?: ApplyCheckToTxnMod | ApplyCheckToTxnMod[];
418
+ /** Set `ClearExpenseLines` to true to clear all the expense lines. To modify individual lines, use `ExpenseLineMod`. */
419
+ ClearExpenseLines?: boolean;
420
+ /** A list of `IExpenseLine` objects, each representing one line in this expense. */
421
+ ExpenseLineMod?: ExpenseLineMod | ExpenseLineMod[];
422
+ /** Set `ClearItemLines` to true to clear all the item lines. To modify individual lines, use `ItemLineMod`. */
423
+ ClearItemLines?: boolean;
424
+ /** An `ItemLine` is used to track any portion of a transaction that represents the purchase of an “item.” If `ItemLineAdd` does not specify an `Amount`, `Cost`, or `Quantity`, then QuickBooks will calculate `Amount` based on a `Quantity` of 1 and the suggested `Cost`. */
425
+ ItemLineMod?: ItemLineMod;
426
+ /** Refers to items that are grouped together in QuickBooks for fast entry. */
427
+ ItemGroupLineMod?: ItemGroupLineMod;
428
+ }
429
+ export interface CheckModRq {
430
+ CheckMod: CheckMod;
431
+ /** 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. */
432
+ IncludeRetElement?: string[] | string;
433
+ }
434
+ export interface CheckModRs {
435
+ CheckRet?: CheckRet;
436
+ ErrorRecovery?: ErrorRecovery;
437
+ }
438
+ export interface CheckQueryRq {
439
+ /** 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. */
440
+ TxnID?: string[] | string;
441
+ /** 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. */
442
+ RefNumber?: string[] | string;
443
+ /** 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. */
444
+ RefNumberCaseSensitive?: string[] | string;
445
+ /** 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. */
446
+ MaxReturned?: number;
447
+ /** 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.) */
448
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
449
+ /** Filters according to the original transaction dates. */
450
+ TxnDateRangeFilter?: TxnDateRangeFilter;
451
+ /** 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. */
452
+ EntityFilter?: EntityFilter;
453
+ /** 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. */
454
+ AccountFilter?: AccountFilter;
455
+ /** Filters according to `RefNumber`. */
456
+ RefNumberFilter?: RefNumberFilter;
457
+ /** 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`. */
458
+ RefNumberRangeFilter?: RefNumberRangeFilter;
459
+ /** Filters by the specified currency. */
460
+ CurrencyFilter?: CurrencyFilter;
461
+ /** 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. */
462
+ IncludeLineItems?: boolean;
463
+ /** If you set `IncludeLinkedTxns` to true, then the returned object will include a list of all the transactions linked to the queried object. (This list is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items.) Each linked transaction will be represented by a `LinkedTxn` aggregate. If no linked transactions exist, no `LinkedTxn` aggregates will be returned. */
464
+ IncludeLinkedTxns?: boolean;
465
+ /** 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. */
466
+ IncludeRetElement?: string[] | string;
467
+ /** 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. */
468
+ OwnerID?: string[] | string;
469
+ }
470
+ export interface CheckQueryRs {
471
+ CheckRet?: CheckRet | CheckRet[];
472
+ }
473
+ interface CheckRet {
474
+ /** 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. */
475
+ TxnID: string;
476
+ /** Time the object was created. */
477
+ TimeCreated: string;
478
+ /** Time the object was last modified. */
479
+ TimeModified: string;
480
+ /** 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. */
481
+ EditSequence: string;
482
+ /** An identifying number for this transaction. */
483
+ TxnNumber?: number;
484
+ /** 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` */
485
+ AccountRef: AccountRef;
486
+ /** Refers to a payee who is a customer, vendor, employee, or person on the “other names” list. In a request, if a `PayeeEntityRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a Check message, `PayeeEntityRef` refers to the person or company to whom the check is written. In `CreditCardCharge` and `CreditCardCredit` messages, `PayeeEntityRef` refers to the vendor or company from whom merchandise was purchased. (`PayeeEntityRef` corresponds to the choice in the Purchased From list in QuickBooks.) */
487
+ PayeeEntityRef?: PayeeEntityRef;
488
+ /** 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. */
489
+ RefNumber?: string;
490
+ /** The date written on the check. 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. */
491
+ TxnDate: string;
492
+ /** The total of the amounts in the expense lines, item lines, and item group lines. If a `CheckAdd` request does not specify an `Amount`, `Cost`, or `Quantity`, then QuickBooks will calculate the `Amount` based on a `Quantity` of 1 and the suggested `Cost`. */
493
+ Amount: string;
494
+ /** 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. */
495
+ CurrencyRef?: CurrencyRef;
496
+ /** 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.) */
497
+ ExchangeRate?: number;
498
+ /** Amount in units of the home currency. */
499
+ AmountInHomeCurrency?: string;
500
+ /** The memo that is printed on the check itself. */
501
+ Memo?: string;
502
+ /** If an address request fails, some combination of address fields might be too long. In a Check, `BillPaymentCheck`, or `SalesTaxPaymentCheck` message, `Address` is the address that will print on the check. */
503
+ Address?: Address;
504
+ /** 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. */
505
+ AddressBlock?: AddressBlock;
506
+ /** If `IsToBePrinted` is set to true, this transaction is on a list of forms to be printed later. The user can then choose to print all these forms at once. Notice that setting this field to true does not actually perform the printing. Only the QuickBooks user can do that from within QuickBooks. This cannot be done from the SDK. Setting this field to false does not prevent the QuickBooks user from printing the transaction later. It simply results in the transaction NOT being placed in the list of transactions to be printed. */
507
+ IsToBePrinted?: boolean;
508
+ /** For future use with international versions of QuickBooks. */
509
+ IsTaxIncluded?: boolean;
510
+ /** 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. */
511
+ SalesTaxCodeRef?: SalesTaxCodeRef;
512
+ /** Allows for the attachment of a user defined GUID value. */
513
+ ExternalGUID?: string;
514
+ /** If the `IncludeLinkedTxns` flag is set to true in a query, or if you create an item receipt that links to other transactionsthen the returned object will include a list of linked transactions, if any exist. If no linked transactions exist, the `ILinkedTxnList` object will be empty. The list of linked transactions is similar to the History view of a transaction in the user interface, but not identical, as the SDK list contains only linked transactions, not items. */
515
+ LinkedTxn?: LinkedTxn | LinkedTxn[];
516
+ /** A list of `IExpenseLine` objects, each representing one line in this expense. */
517
+ ExpenseLineRet?: ExpenseLineRet | ExpenseLineRet[];
518
+ /** An `ItemLine` is used to track any portion of a transaction that represents the purchase of an “item.” If `ItemLineAdd` does not specify an `Amount`, `Cost`, or `Quantity`, then QuickBooks will calculate `Amount` based on a `Quantity` of 1 and the suggested `Cost`. */
519
+ ItemLineRet?: ItemLineRet;
520
+ /** Refers to items that are grouped together in QuickBooks for fast entry. */
521
+ ItemGroupLineRet?: ItemGroupLineRet;
522
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
523
+ DataExtRet?: DataExtRet | DataExtRet[];
524
+ }
525
+ interface ClassAdd {
526
+ /** The case-insensitive name of the class, not including the names of its ancestors. */
527
+ Name: string;
528
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
529
+ IsActive?: boolean;
530
+ /** 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. */
531
+ ParentRef?: ParentRef;
532
+ }
533
+ export interface ClassAddRq {
534
+ ClassAdd: ClassAdd;
535
+ /** 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. */
536
+ IncludeRetElement?: string[] | string;
537
+ }
538
+ export interface ClassAddRs {
539
+ ClassRet?: ClassRet;
540
+ ErrorRecovery?: ErrorRecovery;
541
+ }
296
542
  interface ClassFilter {
297
543
  /** 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. */
298
544
  ListID?: string[] | string;
@@ -303,12 +549,76 @@ interface ClassFilter {
303
549
  /** 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`. */
304
550
  FullNameWithChildren?: string;
305
551
  }
552
+ interface ClassMod {
553
+ /** 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. */
554
+ ListID: string;
555
+ /** 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. */
556
+ EditSequence: string;
557
+ /** The case-insensitive name of the class, not including the names of its ancestors. */
558
+ Name?: string;
559
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
560
+ IsActive?: boolean;
561
+ /** 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. */
562
+ ParentRef?: ParentRef;
563
+ }
564
+ export interface ClassModRq {
565
+ ClassMod: ClassMod;
566
+ /** 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. */
567
+ IncludeRetElement?: string[] | string;
568
+ }
569
+ export interface ClassModRs {
570
+ ClassRet?: ClassRet;
571
+ ErrorRecovery?: ErrorRecovery;
572
+ }
573
+ export interface ClassQueryRq {
574
+ /** 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. */
575
+ ListID?: string[] | string;
576
+ /** 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. */
577
+ FullName?: string[] | string;
578
+ /** 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. */
579
+ MaxReturned?: number;
580
+ /** 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. */
581
+ ActiveStatus?: ActiveStatus;
582
+ /** 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). */
583
+ FromModifiedDate?: string;
584
+ /** 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). */
585
+ ToModifiedDate?: string;
586
+ /** Filters according to the object’s `Name`. */
587
+ NameFilter?: NameFilter;
588
+ /** Filters according to the object’s `Name`. */
589
+ NameRangeFilter?: NameRangeFilter;
590
+ /** 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. */
591
+ IncludeRetElement?: string[] | string;
592
+ }
593
+ export interface ClassQueryRs {
594
+ ClassRet?: ClassRet | ClassRet[];
595
+ }
306
596
  interface ClassRef {
307
597
  /** 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. */
308
598
  ListID?: string;
309
599
  /** `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. */
310
600
  FullName?: string;
311
601
  }
602
+ interface ClassRet {
603
+ /** 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. */
604
+ ListID: string;
605
+ /** Time the object was created. */
606
+ TimeCreated: string;
607
+ /** Time the object was last modified. */
608
+ TimeModified: string;
609
+ /** 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. */
610
+ EditSequence: string;
611
+ /** The case-insensitive name of the class, not including the names of its ancestors. */
612
+ Name: string;
613
+ /** `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. */
614
+ FullName: string;
615
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
616
+ IsActive?: boolean;
617
+ /** 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. */
618
+ ParentRef?: ParentRef;
619
+ /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
620
+ Sublevel: number;
621
+ }
312
622
  interface Contacts {
313
623
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
314
624
  Salutation?: string;
@@ -402,7 +712,7 @@ interface CustomerAdd {
402
712
  ClassRef?: ClassRef;
403
713
  /** 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. */
404
714
  ParentRef?: ParentRef;
405
- /** 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.) */
715
+ /** 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
716
  CompanyName?: string;
407
717
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
408
718
  Salutation?: string;
@@ -493,7 +803,7 @@ interface CustomerAdd {
493
803
  }
494
804
  export interface CustomerAddRq {
495
805
  CustomerAdd: CustomerAdd;
496
- /** 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. */
806
+ /** 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. */
497
807
  IncludeRetElement?: string[] | string;
498
808
  }
499
809
  export interface CustomerAddRs {
@@ -513,7 +823,7 @@ interface CustomerMod {
513
823
  ClassRef?: ClassRef;
514
824
  /** 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. */
515
825
  ParentRef?: ParentRef;
516
- /** 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.) */
826
+ /** 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.) */
517
827
  CompanyName?: string;
518
828
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
519
829
  Salutation?: string;
@@ -598,7 +908,7 @@ interface CustomerMod {
598
908
  }
599
909
  export interface CustomerModRq {
600
910
  CustomerMod: CustomerMod;
601
- /** 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. */
911
+ /** 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. */
602
912
  IncludeRetElement?: string[] | string;
603
913
  }
604
914
  export interface CustomerModRs {
@@ -628,7 +938,7 @@ export interface CustomerQueryRq {
628
938
  CurrencyFilter?: CurrencyFilter;
629
939
  /** Filter according to class. */
630
940
  ClassFilter?: ClassFilter;
631
- /** 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. */
941
+ /** 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. */
632
942
  IncludeRetElement?: string[] | string;
633
943
  /** 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. */
634
944
  OwnerID?: string[] | string;
@@ -663,7 +973,7 @@ interface CustomerRet {
663
973
  ParentRef?: ParentRef;
664
974
  /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
665
975
  Sublevel: number;
666
- /** 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.) */
976
+ /** 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.) */
667
977
  CompanyName?: string;
668
978
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
669
979
  Salutation?: string;
@@ -764,6 +1074,14 @@ interface CustomerTypeRef {
764
1074
  /** `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. */
765
1075
  FullName?: string;
766
1076
  }
1077
+ interface DataExt {
1078
+ /** `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. ) 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.) 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. */
1079
+ OwnerID: string;
1080
+ /** 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. */
1081
+ DataExtName: string;
1082
+ /** 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`. */
1083
+ DataExtValue: string;
1084
+ }
767
1085
  interface DataExtRet {
768
1086
  /** `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. )
769
1087
 
@@ -903,7 +1221,7 @@ interface EmployeeAddress {
903
1221
  }
904
1222
  export interface EmployeeAddRq {
905
1223
  EmployeeAdd: EmployeeAdd;
906
- /** 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. */
1224
+ /** 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. */
907
1225
  IncludeRetElement?: string[] | string;
908
1226
  }
909
1227
  export interface EmployeeAddRs {
@@ -1004,7 +1322,7 @@ interface EmployeeMod {
1004
1322
  }
1005
1323
  export interface EmployeeModRq {
1006
1324
  EmployeeMod: EmployeeMod;
1007
- /** 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. */
1325
+ /** 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. */
1008
1326
  IncludeRetElement?: string[] | string;
1009
1327
  }
1010
1328
  export interface EmployeeModRs {
@@ -1064,7 +1382,7 @@ export interface EmployeeQueryRq {
1064
1382
  NameFilter?: NameFilter;
1065
1383
  /** Filters according to the object’s `Name`. */
1066
1384
  NameRangeFilter?: NameRangeFilter;
1067
- /** 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. */
1385
+ /** 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. */
1068
1386
  IncludeRetElement?: string[] | string;
1069
1387
  /** 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. */
1070
1388
  OwnerID?: string[] | string;
@@ -1220,19 +1538,412 @@ interface ErrorRecovery {
1220
1538
  }
1221
1539
  declare type Ethnicity = "AmericianIndian" | "Asian" | "Black" | "Hawaiian" | "Hispanic" | "TwoOrMoreRaces" | "White";
1222
1540
  declare type Exempt = "Exempt" | "NonExempt";
1541
+ interface ExpenseAccountRef {
1542
+ /** 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. */
1543
+ ListID?: string;
1544
+ /** `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. */
1545
+ FullName?: string;
1546
+ }
1547
+ interface ExpenseLineAdd {
1548
+ /** 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` */
1549
+ AccountRef?: AccountRef;
1550
+ /** A monetary amount. */
1551
+ Amount?: string;
1552
+ /** Additional information about this expense line. */
1553
+ Memo?: string;
1554
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1555
+ CustomerRef?: CustomerRef;
1556
+ /** 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. */
1557
+ ClassRef?: ClassRef;
1558
+ /** 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. */
1559
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1560
+ /** The billing status of this item line or expense line. */
1561
+ BillableStatus?: BillableStatus;
1562
+ /** 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. */
1563
+ SalesRepRef?: SalesRepRef;
1564
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1565
+ DataExt?: DataExt | DataExt[];
1566
+ }
1567
+ interface ExpenseLineMod {
1568
+ /** 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. */
1569
+ TxnLineID: string;
1570
+ /** 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` */
1571
+ AccountRef?: AccountRef;
1572
+ /** A monetary amount. */
1573
+ Amount?: string;
1574
+ /** Additional information about this expense line. */
1575
+ Memo?: string;
1576
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1577
+ CustomerRef?: CustomerRef;
1578
+ /** 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. */
1579
+ ClassRef?: ClassRef;
1580
+ /** 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. */
1581
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1582
+ /** The billing status of this item line or expense line. */
1583
+ BillableStatus?: BillableStatus;
1584
+ /** 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. */
1585
+ SalesRepRef?: SalesRepRef;
1586
+ }
1587
+ interface ExpenseLineRet {
1588
+ /** 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. */
1589
+ TxnLineID: string;
1590
+ /** 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` */
1591
+ AccountRef?: AccountRef;
1592
+ /** A monetary amount. */
1593
+ Amount?: string;
1594
+ /** Additional information about this expense line. */
1595
+ Memo?: string;
1596
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1597
+ CustomerRef?: CustomerRef;
1598
+ /** 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. */
1599
+ ClassRef?: ClassRef;
1600
+ /** 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. */
1601
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1602
+ /** The billing status of this item line or expense line. */
1603
+ BillableStatus?: BillableStatus;
1604
+ /** 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. */
1605
+ SalesRepRef?: SalesRepRef;
1606
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1607
+ DataExtRet?: DataExtRet | DataExtRet[];
1608
+ }
1223
1609
  declare type Gender = "Female" | "Male";
1610
+ interface IncomeAccountRef {
1611
+ /** 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. */
1612
+ ListID?: string;
1613
+ /** `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. */
1614
+ FullName?: string;
1615
+ }
1616
+ interface InventorySiteLocationRef {
1617
+ /** 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. */
1618
+ ListID?: string;
1619
+ /** `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. */
1620
+ FullName?: string;
1621
+ }
1622
+ interface InventorySiteRef {
1623
+ /** 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. */
1624
+ ListID?: string;
1625
+ /** `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. */
1626
+ FullName?: string;
1627
+ }
1628
+ interface ItemGroupLineAdd {
1629
+ /** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
1630
+ ItemGroupRef: ItemGroupRef;
1631
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1632
+ Quantity?: number;
1633
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1634
+ UnitOfMeasure?: string;
1635
+ /** Site where inventory is located. */
1636
+ InventorySiteRef?: InventorySiteRef;
1637
+ /** Location within the Inventory Site. */
1638
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1639
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1640
+ DataExt?: DataExt | DataExt[];
1641
+ }
1642
+ interface ItemGroupLineMod {
1643
+ /** 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. */
1644
+ TxnLineID: string;
1645
+ /** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
1646
+ ItemGroupRef?: ItemGroupRef;
1647
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1648
+ Quantity?: number;
1649
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1650
+ UnitOfMeasure?: string;
1651
+ /** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
1652
+ OverrideUOMSetRef?: OverrideUOMSetRef;
1653
+ /** A list of `IItemLineRet` objects, each representing one line of the item. Each item line is used to track a portion of a transaction that represents the purchase of an “item.” */
1654
+ ItemLineMod?: ItemLineMod | ItemLineMod[];
1655
+ }
1656
+ interface ItemGroupLineRet {
1657
+ /** 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. */
1658
+ TxnLineID: string;
1659
+ /** `ItemGroup` objects represent items that are grouped together for fast entry, and an `ItemGroupRef` aggregate refers to one of these item groups. In a request, if an `ItemGroupRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. You can use an `ItemGroupQuery` request to get information about all the item groups that are set up in the QuickBooks file. */
1660
+ ItemGroupRef: ItemGroupRef;
1661
+ /** A descriptive text field. */
1662
+ Desc?: string;
1663
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1664
+ Quantity?: number;
1665
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1666
+ UnitOfMeasure?: string;
1667
+ /** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
1668
+ OverrideUOMSetRef?: OverrideUOMSetRef;
1669
+ /** Total amount of money paid or received. In a receive payment add transaction that has payment amount elements (such as `AppliedToTxnAdd` lines) you must supply a `TotalAmount` and the sum of all the `PaymentAmount` elements must not be greater than the `TotalAmount`. */
1670
+ TotalAmount: string;
1671
+ /** A list of `IItemLineRet` objects, each representing one line of the item. Each item line is used to track a portion of a transaction that represents the purchase of an “item.” */
1672
+ ItemLineRet?: ItemLineRet | ItemLineRet[];
1673
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1674
+ DataExt?: DataExt | DataExt[];
1675
+ }
1676
+ interface ItemGroupRef {
1677
+ /** 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. */
1678
+ ListID?: string;
1679
+ /** `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. */
1680
+ FullName?: string;
1681
+ }
1682
+ interface ItemLineAdd {
1683
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1684
+ ItemRef?: ItemRef;
1685
+ /** Site where inventory is located. */
1686
+ InventorySiteRef?: InventorySiteRef;
1687
+ /** Location within the Inventory Site. */
1688
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1689
+ /** The serial number of the asset. */
1690
+ SerialNumber?: string;
1691
+ /** The lot number of the asset. */
1692
+ LotNumber?: string;
1693
+ /** A descriptive text field. */
1694
+ Desc?: string;
1695
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1696
+ Quantity?: number;
1697
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1698
+ UnitOfMeasure?: string;
1699
+ /** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
1700
+ Cost?: string;
1701
+ /** A monetary amount. */
1702
+ Amount?: string;
1703
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1704
+ CustomerRef?: CustomerRef;
1705
+ /** 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. */
1706
+ ClassRef?: ClassRef;
1707
+ /** 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. */
1708
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1709
+ /** The billing status of this item line or expense line. */
1710
+ BillableStatus?: BillableStatus;
1711
+ /** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1712
+ OverrideItemAccountRef?: OverrideItemAccountRef;
1713
+ /** 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. */
1714
+ SalesRepRef?: SalesRepRef;
1715
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1716
+ DataExt?: DataExt | DataExt[];
1717
+ }
1718
+ interface ItemLineMod {
1719
+ /** 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. */
1720
+ TxnLineID: string;
1721
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1722
+ ItemRef?: ItemRef;
1723
+ /** Site where inventory is located. */
1724
+ InventorySiteRef?: InventorySiteRef;
1725
+ /** Location within the Inventory Site. */
1726
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1727
+ /** The serial number of the asset. */
1728
+ SerialNumber?: string;
1729
+ /** The lot number of the asset. */
1730
+ LotNumber?: string;
1731
+ /** A descriptive text field. */
1732
+ Desc?: string;
1733
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1734
+ Quantity?: number;
1735
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1736
+ UnitOfMeasure?: string;
1737
+ /** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
1738
+ OverrideUOMSetRef?: OverrideUOMSetRef;
1739
+ /** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
1740
+ Cost?: string;
1741
+ /** A monetary amount. */
1742
+ Amount?: string;
1743
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1744
+ CustomerRef?: CustomerRef;
1745
+ /** 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. */
1746
+ ClassRef?: ClassRef;
1747
+ /** 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. */
1748
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1749
+ /** The billing status of this item line or expense line. */
1750
+ BillableStatus?: BillableStatus;
1751
+ /** Refers to a QuickBooks account. If you are using QB Online edition, you cannot specify an accounts receivable account here. If an `OverrideItemAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1752
+ OverrideItemAccountRef?: OverrideItemAccountRef;
1753
+ /** 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. */
1754
+ SalesRepRef?: SalesRepRef;
1755
+ }
1756
+ interface ItemLineRet {
1757
+ /** 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. */
1758
+ TxnLineID: string;
1759
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1760
+ ItemRef?: ItemRef;
1761
+ /** Site where inventory is located. */
1762
+ InventorySiteRef?: InventorySiteRef;
1763
+ /** Location within the Inventory Site. */
1764
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1765
+ /** The serial number of the asset. */
1766
+ SerialNumber?: string;
1767
+ /** The lot number of the asset. */
1768
+ LotNumber?: string;
1769
+ /** A descriptive text field. */
1770
+ Desc?: string;
1771
+ /** `QuantityFor` transactions: If an item line add on a transaction request specifies `Quantity` and `Amount` but not `Rate`, QuickBooks will use `Quantity` and `Amount` to calculate `Rate`. Likewise, if a request specifies `Quantity` and `Rate` but not `Amount`, QuickBooks will calculate the `Amount`. If a transaction add request includes a reference to an `ItemDiscount` item, do not include a `Quantity` element as well, or you will get an error. For Item requests: `Quantity` indicates how many of this item there are. */
1772
+ Quantity?: number;
1773
+ /** In a transaction line item, the name of the unit of measure selected from within the item’s available units. If the company file is enabled only for single unit of measure per item, this must be the base unit! */
1774
+ UnitOfMeasure?: string;
1775
+ /** When you modify a transaction line to change the unit of measure used in that line, you use this aggregate to specify the UOM set within which you are choosing an available unit of measure. The “override” here refers to the unit within the set, not the UOM Set itself, which you cannot change or override–the UOM set that can be set or changed only in the item itself via an Item Mod request. */
1776
+ OverrideUOMSetRef?: OverrideUOMSetRef;
1777
+ /** If both `Quantity` and `Amount` are specified, QuickBooks will use them to calculate `Cost`. Likewise, if both `Quantity` and `Cost` are specified, QuickBooks will use them to calculate the total `Amount`. */
1778
+ Cost?: string;
1779
+ /** A monetary amount. */
1780
+ Amount?: string;
1781
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
1782
+ CustomerRef?: CustomerRef;
1783
+ /** 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. */
1784
+ ClassRef?: ClassRef;
1785
+ /** 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. */
1786
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1787
+ /** The billing status of this item line or expense line. */
1788
+ BillableStatus?: BillableStatus;
1789
+ /** 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. */
1790
+ SalesRepRef?: SalesRepRef;
1791
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1792
+ DataExtRet?: DataExtRet | DataExtRet[];
1793
+ }
1794
+ interface ItemRef {
1795
+ /** 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. */
1796
+ ListID?: string;
1797
+ /** `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. */
1798
+ FullName?: string;
1799
+ }
1224
1800
  interface ItemSalesTaxRef {
1225
1801
  /** 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. */
1226
1802
  ListID?: string;
1227
1803
  /** `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. */
1228
1804
  FullName?: string;
1229
1805
  }
1806
+ interface ItemServiceAdd {
1807
+ /** 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. */
1808
+ Name: string;
1809
+ /** Barcode reference information. */
1810
+ BarCode?: BarCode;
1811
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
1812
+ IsActive?: boolean;
1813
+ /** 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. */
1814
+ ClassRef?: ClassRef;
1815
+ /** 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. */
1816
+ ParentRef?: ParentRef;
1817
+ /** The unit of measure set consists of a base unit and 0-n related units. */
1818
+ UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
1819
+ /** For future use with international versions of QuickBooks. */
1820
+ IsTaxIncluded?: boolean;
1821
+ /** 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. */
1822
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1823
+ /** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
1824
+ SalesOrPurchase?: SalesOrPurchase;
1825
+ /** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
1826
+ SalesAndPurchase?: SalesAndPurchase;
1827
+ /** Allows for the attachment of a user defined GUID value. */
1828
+ ExternalGUID?: string;
1829
+ }
1830
+ export interface ItemServiceAddRq {
1831
+ ItemServiceAdd: ItemServiceAdd;
1832
+ /** 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. */
1833
+ IncludeRetElement?: string[] | string;
1834
+ }
1835
+ export interface ItemServiceAddRs {
1836
+ ItemServiceRet?: ItemServiceRet;
1837
+ ErrorRecovery?: ErrorRecovery;
1838
+ }
1839
+ interface ItemServiceMod {
1840
+ /** 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. */
1841
+ ListID: string;
1842
+ /** 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. */
1843
+ EditSequence: string;
1844
+ /** 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. */
1845
+ Name?: string;
1846
+ /** Barcode reference information. */
1847
+ BarCode?: BarCode;
1848
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
1849
+ IsActive?: boolean;
1850
+ /** 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. */
1851
+ ClassRef?: ClassRef;
1852
+ /** 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. */
1853
+ ParentRef?: ParentRef;
1854
+ /** The unit of measure set consists of a base unit and 0-n related units. */
1855
+ UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
1856
+ /** By Default `ForceUOMChange` is false. However, in item Mod requests, you need to set the `ForceUOMChange` field to True if you are changing the UOM set and the base unit of the new set does not match the base unit of the UOM set currently assigned to the item. This does the same thing as the user accepting the warning prompt in the UI. If you don’t set `ForceUOMChange` to True, you’ll get an error when you invoke the Item* Mod request.Y You should be aware that if you change the base unit for an item, you should also change the item’s quantities on hand and cost to reflect the new unit; otherwise the values will be inaccurate. An alternative to handle such UOM changes to an item is to create a new item with the desired UOM set and inactivate the old item. */
1857
+ ForceUOMChange?: boolean;
1858
+ /** For future use with international versions of QuickBooks. */
1859
+ IsTaxIncluded?: boolean;
1860
+ /** 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. */
1861
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1862
+ /** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
1863
+ SalesOrPurchaseMod?: SalesOrPurchaseMod;
1864
+ /** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
1865
+ SalesAndPurchaseMod?: SalesAndPurchaseMod;
1866
+ }
1867
+ export interface ItemServiceModRq {
1868
+ ItemServiceMod: ItemServiceMod;
1869
+ /** 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. */
1870
+ IncludeRetElement?: string[] | string;
1871
+ }
1872
+ export interface ItemServiceModRs {
1873
+ ItemServiceRet?: ItemServiceRet;
1874
+ ErrorRecovery?: ErrorRecovery;
1875
+ }
1876
+ export interface ItemServiceQueryRq {
1877
+ /** 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. */
1878
+ ListID?: string[] | string;
1879
+ /** 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. */
1880
+ FullName?: string[] | string;
1881
+ /** 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. */
1882
+ MaxReturned?: number;
1883
+ /** 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. */
1884
+ ActiveStatus?: ActiveStatus;
1885
+ /** 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). */
1886
+ FromModifiedDate?: string;
1887
+ /** 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). */
1888
+ ToModifiedDate?: string;
1889
+ /** Filters according to the object’s `Name`. */
1890
+ NameFilter?: NameFilter;
1891
+ /** Filters according to the object’s `Name`. */
1892
+ NameRangeFilter?: NameRangeFilter;
1893
+ /** Filters according to the object’s class. */
1894
+ ClassFilter?: ClassFilter;
1895
+ /** 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. */
1896
+ IncludeRetElement?: string[] | string;
1897
+ /** 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. */
1898
+ OwnerID?: string[] | string;
1899
+ }
1900
+ export interface ItemServiceQueryRs {
1901
+ ItemServiceRet?: ItemServiceRet | ItemServiceRet[];
1902
+ }
1230
1903
  interface ItemServiceRef {
1231
1904
  /** 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. */
1232
1905
  ListID?: string;
1233
1906
  /** `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. */
1234
1907
  FullName?: string;
1235
1908
  }
1909
+ interface ItemServiceRet {
1910
+ /** 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. */
1911
+ ListID: string;
1912
+ /** Time the object was created. */
1913
+ TimeCreated: string;
1914
+ /** Time the object was last modified. */
1915
+ TimeModified: 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. */
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. */
1919
+ Name: string;
1920
+ /** `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. */
1921
+ FullName: string;
1922
+ /** Value of the barcode in the item. */
1923
+ BarCodeValue?: string;
1924
+ /** If `IsActive` is true, this object is currently enabled for use by QuickBooks. The default value is true. */
1925
+ IsActive?: boolean;
1926
+ /** 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. */
1927
+ ClassRef?: ClassRef;
1928
+ /** 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. */
1929
+ ParentRef?: ParentRef;
1930
+ /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
1931
+ Sublevel: number;
1932
+ /** The unit of measure set consists of a base unit and 0-n related units. */
1933
+ UnitOfMeasureSetRef?: UnitOfMeasureSetRef;
1934
+ /** For future use with international versions of QuickBooks. */
1935
+ IsTaxIncluded?: boolean;
1936
+ /** 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. */
1937
+ SalesTaxCodeRef?: SalesTaxCodeRef;
1938
+ /** A `SalesOrPurchase` aggregate is used for items that are meant to be either purchased or sold, but not both. For example, a `SalesOrPurchase` aggregate would be used for a non-inventory item that is purchased but not sold, or for a service item that is sold but not purchased. */
1939
+ SalesOrPurchase?: SalesOrPurchase;
1940
+ /** A `SalesAndPurchase` aggregate is used for items that are meant to be both purchased and sold, such as an “other charge” item that is reimbursable. */
1941
+ SalesAndPurchase?: SalesAndPurchase;
1942
+ /** Allows for the attachment of a user defined GUID value. */
1943
+ ExternalGUID?: string;
1944
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1945
+ DataExtRet?: DataExtRet | DataExtRet[];
1946
+ }
1236
1947
  /** @default: None */
1237
1948
  declare type JobStatus = "Awarded" | "Closed" | "InProgress" | "None" | "NotAwarded" | "Pending";
1238
1949
  interface JobTypeRef {
@@ -1301,7 +2012,7 @@ interface JournalEntryAdd {
1301
2012
  }
1302
2013
  export interface JournalEntryAddRq {
1303
2014
  JournalEntryAdd: JournalEntryAdd;
1304
- /** 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. */
2015
+ /** 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. */
1305
2016
  IncludeRetElement?: string[] | string;
1306
2017
  }
1307
2018
  export interface JournalEntryAddRs {
@@ -1330,7 +2041,7 @@ interface JournalEntryMod {
1330
2041
  }
1331
2042
  export interface JournalEntryModRq {
1332
2043
  JournalEntryMod: JournalEntryMod;
1333
- /** 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. */
2044
+ /** 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. */
1334
2045
  IncludeRetElement?: string[] | string;
1335
2046
  }
1336
2047
  export interface JournalEntryModRs {
@@ -1362,7 +2073,7 @@ export interface JournalEntryQueryRq {
1362
2073
  CurrencyFilter?: CurrencyFilter;
1363
2074
  /** 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. */
1364
2075
  IncludeLineItems?: boolean;
1365
- /** 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. */
2076
+ /** 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. */
1366
2077
  IncludeRetElement?: string[] | string;
1367
2078
  /** 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. */
1368
2079
  OwnerID?: string[] | string;
@@ -1426,6 +2137,21 @@ interface JournalLineMod {
1426
2137
  }
1427
2138
  declare type JournalLineType = "Credit" | "Debit";
1428
2139
  declare type KeyEmployee = "No" | "Yes";
2140
+ interface LinkedTxn {
2141
+ /** 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. */
2142
+ TxnID: string;
2143
+ /** The type of transaction. */
2144
+ TxnType: TxnType;
2145
+ /** 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. */
2146
+ TxnDate: string;
2147
+ /** 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. */
2148
+ RefNumber?: string;
2149
+ /** Indicates the nature of the link between the transactions:`ltAMTTYPE` means the two transactions are linked based on an amount value (for example `an` invoice linked to a payment).`ltQUANTYPE` means the two transactions are linked based on a quantity. This affects transactions that are linked to sales orders, estimates and purchase orders. For example, an invoice might be created from a sales order, based on the quantity of items received. */
2150
+ LinkType?: LinkType;
2151
+ /** A monetary amount. */
2152
+ Amount: string;
2153
+ }
2154
+ declare type LinkType = "AMTTYPE" | "QUANTYPE";
1429
2155
  declare type MatchCriterion = "Contains" | "EndsWith" | "StartsWith";
1430
2156
  declare type MilitaryStatus = "Active" | "Reserve";
1431
2157
  interface ModifiedDateRangeFilter {
@@ -1448,6 +2174,18 @@ interface NameRangeFilter {
1448
2174
  }
1449
2175
  declare type OnFile = "No" | "Yes";
1450
2176
  declare type Operator = "Equal" | "GreaterThan" | "GreaterThanEqual" | "LessThan" | "LessThanEqual";
2177
+ interface OverrideItemAccountRef {
2178
+ /** 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. */
2179
+ ListID?: string;
2180
+ /** `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. */
2181
+ FullName?: string;
2182
+ }
2183
+ interface OverrideUOMSetRef {
2184
+ /** 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. */
2185
+ ListID?: string;
2186
+ /** `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. */
2187
+ FullName?: string;
2188
+ }
1451
2189
  interface ParentRef {
1452
2190
  /** 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. */
1453
2191
  ListID?: string;
@@ -1455,6 +2193,12 @@ interface ParentRef {
1455
2193
  FullName?: string;
1456
2194
  }
1457
2195
  declare type PartOrFullTime = "FullTime" | "PartTime";
2196
+ interface PayeeEntityRef {
2197
+ /** 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. */
2198
+ ListID?: string;
2199
+ /** `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. */
2200
+ FullName?: string;
2201
+ }
1458
2202
  declare type PayPeriod = "Biweekly" | "Daily" | "Monthly" | "Quarterly" | "Semimonthly" | "Weekly" | "Yearly";
1459
2203
  interface PayrollItemWageRef {
1460
2204
  /** 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. */
@@ -1476,6 +2220,12 @@ interface PrefillAccountRef {
1476
2220
  /** `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. */
1477
2221
  FullName?: string;
1478
2222
  }
2223
+ interface PrefVendorRef {
2224
+ /** 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. */
2225
+ ListID?: string;
2226
+ /** `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. */
2227
+ FullName?: string;
2228
+ }
1479
2229
  interface PriceLevelRef {
1480
2230
  /** 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. */
1481
2231
  ListID?: string;
@@ -1490,6 +2240,12 @@ interface PrimaryContact {
1490
2240
  /** Relationship of emergency contact information to the employee. */
1491
2241
  Relation?: Relation;
1492
2242
  }
2243
+ interface PurchaseTaxCodeRef {
2244
+ /** 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. */
2245
+ ListID?: string;
2246
+ /** `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. */
2247
+ FullName?: string;
2248
+ }
1493
2249
  interface RefNumberFilter {
1494
2250
  /** The criterion to match. */
1495
2251
  MatchCriterion: MatchCriterion;
@@ -1505,6 +2261,68 @@ interface RefNumberRangeFilter {
1505
2261
  declare type Relation = "Brother" | "Daughter" | "Father" | "Friend" | "Mother" | "Other" | "Partner" | "Sister" | "Son" | "Spouse";
1506
2262
  /** @default: Quarterly */
1507
2263
  declare type ReportingPeriod = "Monthly" | "Quarterly";
2264
+ interface SalesAndPurchase {
2265
+ /** Appears in the `Description` column of a sales form when the QuickBooks user sells this item. For a fixed asset, describes the sale of the asset (for accounting purposes). */
2266
+ SalesDesc?: string;
2267
+ /** Price charged for this item. */
2268
+ SalesPrice?: string;
2269
+ /** Refers to an income account. If an `IncomeAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2270
+ IncomeAccountRef?: IncomeAccountRef;
2271
+ /** Description that appears in the `Description` column of checks, bills, credit card charges, and item receipts (when an item is reordered). For a fixed asset, a description of the item as it was when it was purchased. */
2272
+ PurchaseDesc?: string;
2273
+ /** Amount that the QuickBooks user expects to pay when ordering or buying this item, or the amount that was actually paid for this item. */
2274
+ PurchaseCost?: string;
2275
+ /** Account used for taxes on purchases in CA or UK. */
2276
+ PurchaseTaxCodeRef?: PurchaseTaxCodeRef;
2277
+ /** Refers to an expense account. If an `ExpenseAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2278
+ ExpenseAccountRef?: ExpenseAccountRef;
2279
+ /** The preferred vendor for this item. If a `PrefVendorRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2280
+ PrefVendorRef?: PrefVendorRef;
2281
+ }
2282
+ interface SalesAndPurchaseMod {
2283
+ /** Appears in the `Description` column of a sales form when the QuickBooks user sells this item. For a fixed asset, describes the sale of the asset (for accounting purposes). */
2284
+ SalesDesc?: string;
2285
+ /** Price charged for this item. */
2286
+ SalesPrice?: string;
2287
+ /** Refers to an income account. If an `IncomeAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2288
+ IncomeAccountRef?: IncomeAccountRef;
2289
+ /** Used to support changing the `AccountRef` in the Mod request. When you do this, the QuickBooks UI normally displays a prompt asking whether the change should apply to existing transactions or not. Specifying False basically dismisses this with a “No” answer; specifying True dismisses it with a “Yes” answer and then changes the existing transactions that use the item with that `AccountRef`. Setting this to “True” should be used with caution and normally only after some user has indicated that they want those changes made to all those existing transactions! If any affected transactions are protected by a closing date and password, the `AccountRef` changes will not be made and so the Mod request will return an error without making the requested Mod. */
2290
+ ApplyIncomeAccountRefToExistingTxns?: boolean;
2291
+ /** Description that appears in the `Description` column of checks, bills, credit card charges, and item receipts (when an item is reordered). For a fixed asset, a description of the item as it was when it was purchased. */
2292
+ PurchaseDesc?: string;
2293
+ /** Amount that the QuickBooks user expects to pay when ordering or buying this item, or the amount that was actually paid for this item. */
2294
+ PurchaseCost?: string;
2295
+ /** Account used for taxes on purchases in CA or UK. */
2296
+ PurchaseTaxCodeRef?: PurchaseTaxCodeRef;
2297
+ /** Refers to an expense account. If an `ExpenseAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2298
+ ExpenseAccountRef?: ExpenseAccountRef;
2299
+ /** Used to support changing the `AccountRef` in the Mod request. When you do this, the QuickBooks UI normally displays a prompt asking whether the change should apply to existing transactions or not. Specifying False basically dismisses this with a “No” answer; specifying True dismisses it with a “Yes” answer and then changes the existing transactions that use the item with that `AccountRef`. Setting this to “True” should be used with caution and normally only after some user has indicated that they want those changes made to all those existing transactions! If any affected transactions are protected by a closing date and password, the `AccountRef` changes will not be made and so the Mod request will return an error without making the requested Mod. */
2300
+ ApplyExpenseAccountRefToExistingTxns?: boolean;
2301
+ /** The preferred vendor for this item. If a `PrefVendorRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2302
+ PrefVendorRef?: PrefVendorRef;
2303
+ }
2304
+ interface SalesOrPurchase {
2305
+ /** A descriptive text field. */
2306
+ Desc?: string;
2307
+ /** The purchase price or sales price of this item. */
2308
+ Price?: string;
2309
+ /** The price expressed as a percent. (For example, an auto shop that calculates the cost of labor as a percentage of the cost of parts might have a service item called “Labor” that uses `PricePercent` instead of `Price`.) */
2310
+ PricePercent?: string;
2311
+ /** 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` */
2312
+ AccountRef?: AccountRef;
2313
+ }
2314
+ interface SalesOrPurchaseMod {
2315
+ /** A descriptive text field. */
2316
+ Desc?: string;
2317
+ /** The purchase price or sales price of this item. */
2318
+ Price?: string;
2319
+ /** The price expressed as a percent. (For example, an auto shop that calculates the cost of labor as a percentage of the cost of parts might have a service item called “Labor” that uses `PricePercent` instead of `Price`.) */
2320
+ PricePercent?: string;
2321
+ /** 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` */
2322
+ AccountRef?: AccountRef;
2323
+ /** Used to support changing the `AccountRef` in the Mod request. When you do this, the QuickBooks UI normally displays a prompt asking whether the change should apply to existing transactions or not. Specifying False basically dismisses this with a “No” answer; specifying True dismisses it with a “Yes” answer and then changes the existing transactions that use the item with that `AccountRef`. Setting this to “True” should be used with caution and normally only after some user has indicated that they want those changes made to all those existing transactions! If any affected transactions are protected by a closing date and password, the `AccountRef` changes will not be made and so the Mod request will return an error without making the requested Mod. */
2324
+ ApplyAccountRefToExistingTxns?: boolean;
2325
+ }
1508
2326
  interface SalesRepRef {
1509
2327
  /** 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. */
1510
2328
  ListID?: string;
@@ -1666,7 +2484,7 @@ interface TimeTrackingAdd {
1666
2484
  }
1667
2485
  export interface TimeTrackingAddRq {
1668
2486
  TimeTrackingAdd: TimeTrackingAdd;
1669
- /** 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. */
2487
+ /** 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. */
1670
2488
  IncludeRetElement?: string[] | string;
1671
2489
  }
1672
2490
  export interface TimeTrackingAddRs {
@@ -1705,7 +2523,7 @@ interface TimeTrackingMod {
1705
2523
  }
1706
2524
  export interface TimeTrackingModRq {
1707
2525
  TimeTrackingMod: TimeTrackingMod;
1708
- /** 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. */
2526
+ /** 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. */
1709
2527
  IncludeRetElement?: string[] | string;
1710
2528
  }
1711
2529
  export interface TimeTrackingModRs {
@@ -1723,7 +2541,7 @@ export interface TimeTrackingQueryRq {
1723
2541
  TxnDateRangeFilter?: TxnDateRangeFilter;
1724
2542
  /** Allows you to query for one or more names on the QuickBooks Vendor list, Employee list, or Other Names list. */
1725
2543
  TimeTrackingEntityFilter?: TimeTrackingEntityFilter;
1726
- /** 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. */
2544
+ /** 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. */
1727
2545
  IncludeRetElement?: string[] | string;
1728
2546
  }
1729
2547
  export interface TimeTrackingQueryRs {
@@ -1779,6 +2597,13 @@ interface TxnDateRangeFilter {
1779
2597
  /** 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. */
1780
2598
  DateMacro?: DateMacro;
1781
2599
  }
2600
+ declare type TxnType = "ARRefundCreditCard" | "Bill" | "BillPaymentCheck" | "BillPaymentCreditCard" | "BuildAssembly" | "Charge" | "Check" | "CreditCardCharge" | "CreditCardCredit" | "CreditMemo" | "Deposit" | "Estimate" | "InventoryAdjustment" | "Invoice" | "ItemReceipt" | "JournalEntry" | "LiabilityAdjustment" | "Paycheck" | "PayrollLiabilityCheck" | "PurchaseOrder" | "ReceivePayment" | "SalesOrder" | "SalesReceipt" | "SalesTaxPaymentCheck" | "Transfer" | "VendorCredit" | "YTDAdjustment";
2601
+ interface UnitOfMeasureSetRef {
2602
+ /** 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. */
2603
+ ListID?: string;
2604
+ /** `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. */
2605
+ FullName?: string;
2606
+ }
1782
2607
  declare type USCitizen = "No" | "Yes";
1783
2608
  declare type UseTimeDataToCreatePaychecks = "DoNotUseTimeData" | "NotSet" | "UseTimeData";
1784
2609
  declare type USVeteran = "No" | "Yes";
@@ -1805,7 +2630,7 @@ interface VendorAdd {
1805
2630
  IsActive?: boolean;
1806
2631
  /** 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. */
1807
2632
  ClassRef?: ClassRef;
1808
- /** 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.) */
2633
+ /** 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.) */
1809
2634
  CompanyName?: string;
1810
2635
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
1811
2636
  Salutation?: string;
@@ -1928,7 +2753,7 @@ interface VendorAddressBlock {
1928
2753
  }
1929
2754
  export interface VendorAddRq {
1930
2755
  VendorAdd: VendorAdd;
1931
- /** 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. */
2756
+ /** 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. */
1932
2757
  IncludeRetElement?: string[] | string;
1933
2758
  }
1934
2759
  export interface VendorAddRs {
@@ -1946,7 +2771,7 @@ interface VendorMod {
1946
2771
  IsActive?: boolean;
1947
2772
  /** 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. */
1948
2773
  ClassRef?: ClassRef;
1949
- /** 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.) */
2774
+ /** 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.) */
1950
2775
  CompanyName?: string;
1951
2776
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
1952
2777
  Salutation?: string;
@@ -2029,7 +2854,7 @@ interface VendorMod {
2029
2854
  }
2030
2855
  export interface VendorModRq {
2031
2856
  VendorMod: VendorMod;
2032
- /** 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. */
2857
+ /** 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. */
2033
2858
  IncludeRetElement?: string[] | string;
2034
2859
  }
2035
2860
  export interface VendorModRs {
@@ -2059,7 +2884,7 @@ export interface VendorQueryRq {
2059
2884
  CurrencyFilter?: CurrencyFilter;
2060
2885
  /** Filter according to class. */
2061
2886
  ClassFilter?: ClassFilter;
2062
- /** 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. */
2887
+ /** 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. */
2063
2888
  IncludeRetElement?: string[] | string;
2064
2889
  /** 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. */
2065
2890
  OwnerID?: string[] | string;
@@ -2084,7 +2909,7 @@ interface VendorRet {
2084
2909
  ClassRef?: ClassRef;
2085
2910
  /** Is the current entity a tax agency. */
2086
2911
  IsTaxAgency?: boolean;
2087
- /** 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.) */
2912
+ /** 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.) */
2088
2913
  CompanyName?: string;
2089
2914
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
2090
2915
  Salutation?: string;