conductor-node 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ export interface AccountAddRq {
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
 
43
43
  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. */
44
- IncludeRetElement?: string[] | string;
44
+ IncludeRetElement?: string | [string, ...string[]];
45
45
  }
46
46
  export interface AccountAddRs {
47
47
  AccountRet?: AccountRet;
@@ -51,9 +51,9 @@ export interface AccountFilter {
51
51
  /** 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`.
52
52
 
53
53
  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. */
54
- ListID?: string[] | string;
54
+ ListID?: string | [string, ...string[]];
55
55
  /** 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. */
56
- FullName?: string[] | string;
56
+ FullName?: string | [string, ...string[]];
57
57
  /** Allows you to filter for data that relates to the specified object and its descendants. */
58
58
  ListIDWithChildren?: string;
59
59
  /** 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`. */
@@ -106,7 +106,7 @@ export interface AccountModRq {
106
106
  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.
107
107
 
108
108
  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. */
109
- IncludeRetElement?: string[] | string;
109
+ IncludeRetElement?: string | [string, ...string[]];
110
110
  }
111
111
  export interface AccountModRs {
112
112
  AccountRet?: AccountRet;
@@ -116,9 +116,9 @@ export interface AccountQueryRq {
116
116
  /** 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`.
117
117
 
118
118
  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. */
119
- ListID?: string[] | string;
119
+ ListID?: string | [string, ...string[]];
120
120
  /** 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. */
121
- FullName?: string[] | string;
121
+ FullName?: string | [string, ...string[]];
122
122
  /** Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `metaData` query attribute.) If you include a `MaxReturned` value, it must be at least 1. */
123
123
  MaxReturned?: number;
124
124
  /** 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. */
@@ -144,7 +144,7 @@ export interface AccountQueryRq {
144
144
  /** Filters according to the object’s `Name`. */
145
145
  NameRangeFilter?: NameRangeFilter;
146
146
  /** A list of QuickBooks account types. */
147
- AccountType?: AccountType | AccountType[];
147
+ AccountType?: AccountType | [AccountType, ...AccountType[]];
148
148
  /** Filters by the specified currency. */
149
149
  CurrencyFilter?: CurrencyFilter;
150
150
  /** 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.
@@ -152,16 +152,16 @@ export interface AccountQueryRq {
152
152
  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.
153
153
 
154
154
  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. */
155
- IncludeRetElement?: string[] | string;
155
+ IncludeRetElement?: string | [string, ...string[]];
156
156
  /** 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.
157
157
 
158
158
  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.
159
159
 
160
160
  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. */
161
- OwnerID?: string[] | string;
161
+ OwnerID?: string | [string, ...string[]];
162
162
  }
163
163
  export interface AccountQueryRs {
164
- AccountRet?: AccountRet | AccountRet[];
164
+ AccountRet: [AccountRet, ...AccountRet[]];
165
165
  }
166
166
  export interface AccountRef {
167
167
  /** 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. */
@@ -223,7 +223,7 @@ export interface AccountRet {
223
223
  When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
224
224
  CurrencyRef?: CurrencyRef;
225
225
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
226
- DataExtRet?: DataExtRet | DataExtRet[];
226
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
227
227
  }
228
228
  export declare type AccountType = "AccountsPayable" | "AccountsReceivable" | "Bank" | "CostOfGoodsSold" | "CreditCard" | "Equity" | "Expense" | "FixedAsset" | "Income" | "LongTermLiability" | "NonPosting" | "OtherAsset" | "OtherCurrentAsset" | "OtherCurrentLiability" | "OtherExpense" | "OtherIncome";
229
229
  export declare type AccrualPeriod = "BeginningOfYear" | "EveryHourOnPaycheck" | "EveryPaycheck";
@@ -299,7 +299,7 @@ export interface AppliedToTxnAdd {
299
299
  /** Represents the amount assigned to a particular receivable. The sum of all `PaymentAmount` elements in any given receive payment transaction must not be greater than `TotalAmount`. */
300
300
  PaymentAmount?: string;
301
301
  /** A list of credits to set. Setting, or applying, a credit means using an available credit to lower the balance of a transaction such as an invoice or a bill. (Creating a credit, on the other hand, means making a credit available to be applied in the future.) Notice that if you use a credit (`SetCredit`) only, in your `ReceivePaymentAdd` or `BillPaymentCreditCardAdd` request, then no transaction ID is created, because, from the viewpoint of QuickBooks, there was no transaction. Setting a credit merely creates links between existing transactions (for example, between a credit memo transaction and an invoice transaction), and no information about these links will be returned to you in the response. If you need to retrieve which transactions were linked in the `SetCredit`, for Bill Payment, you must do a `BillQuery` and specify `IncludeLinkedTxns`. */
302
- SetCredit?: SetCredit | SetCredit[];
302
+ SetCredit?: SetCredit | [SetCredit, ...SetCredit[]];
303
303
  /** Reduces the receivable amount. */
304
304
  DiscountAmount?: string;
305
305
  /** Refers to the account where this discount is tracked. In a request, if a `DiscountAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -313,7 +313,7 @@ export interface AppliedToTxnMod {
313
313
  /** Represents the amount assigned to a particular receivable. The sum of all `PaymentAmount` elements in any given receive payment transaction must not be greater than `TotalAmount`. */
314
314
  PaymentAmount?: string;
315
315
  /** A list of credits to set. Setting, or applying, a credit means using an available credit to lower the balance of a transaction such as an invoice or a bill. (Creating a credit, on the other hand, means making a credit available to be applied in the future.) Notice that if you use a credit (`SetCredit`) only, in your `ReceivePaymentAdd` or `BillPaymentCreditCardAdd` request, then no transaction ID is created, because, from the viewpoint of QuickBooks, there was no transaction. Setting a credit merely creates links between existing transactions (for example, between a credit memo transaction and an invoice transaction), and no information about these links will be returned to you in the response. If you need to retrieve which transactions were linked in the `SetCredit`, for Bill Payment, you must do a `BillQuery` and specify `IncludeLinkedTxns`. */
316
- SetCredit?: SetCredit | SetCredit[];
316
+ SetCredit?: SetCredit | [SetCredit, ...SetCredit[]];
317
317
  /** Reduces the receivable amount. */
318
318
  DiscountAmount?: string;
319
319
  /** Refers to the account where this discount is tracked. In a request, if a `DiscountAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -341,7 +341,7 @@ export interface AppliedToTxnRet {
341
341
  /** Class reference used in the Discount object */
342
342
  DiscountClassRef?: DiscountClassRef;
343
343
  /** 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. */
344
- LinkedTxn?: LinkedTxn | LinkedTxn[];
344
+ LinkedTxn?: LinkedTxn | [LinkedTxn, ...LinkedTxn[]];
345
345
  }
346
346
  export interface ApplyCheckToTxnAdd {
347
347
  /** 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. */
@@ -406,9 +406,9 @@ export interface BillAdd {
406
406
  /** The `LinkToTxnID` aggregate allows to link an entire transaction. If you want to link individual lines in a transaction, use the `LinkToTxn` aggregate.
407
407
 
408
408
  You can use both `LinkToTxnID` and `LinkToTxn` aggregates in the same request, as long as these aggregates do NOT link to the same `TxnID`. If both aggregates are used and do link to the same `TxnID`, you receive an error 3000. Also, if you attempt to invoke `LinkToTxnID` with the same `TxnID`, more than once, you get an error 3177. If the transaction specified by `LinkToTxnID` is already closed or fully received and the `ItemReceiptAdd` request does not contain any other lines, you get error 3180 for attempting to save an empty transaction. You get a warning if you attempt to link to a transaction that’s already closed. */
409
- LinkToTxnID?: string[] | string;
409
+ LinkToTxnID?: string | [string, ...string[]];
410
410
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
411
- ExpenseLineAdd?: ExpenseLineAdd | ExpenseLineAdd[];
411
+ ExpenseLineAdd?: ExpenseLineAdd | [ExpenseLineAdd, ...ExpenseLineAdd[]];
412
412
  /** 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`. */
413
413
  ItemLineAdd?: ItemLineAdd;
414
414
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
@@ -453,7 +453,7 @@ export interface BillAddRq {
453
453
  /** 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.
454
454
 
455
455
  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. */
456
- IncludeRetElement?: string[] | string;
456
+ IncludeRetElement?: string | [string, ...string[]];
457
457
  }
458
458
  export interface BillAddRs {
459
459
  BillRet?: BillRet;
@@ -509,7 +509,7 @@ export interface BillMod {
509
509
  /** Set `ClearExpenseLines` to true to clear all the expense lines. To modify individual lines, use `ExpenseLineMod`. */
510
510
  ClearExpenseLines?: boolean;
511
511
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
512
- ExpenseLineMod?: ExpenseLineMod | ExpenseLineMod[];
512
+ ExpenseLineMod?: ExpenseLineMod | [ExpenseLineMod, ...ExpenseLineMod[]];
513
513
  /** Set `ClearItemLines` to true to clear all the item lines. To modify individual lines, use `ItemLineMod`. */
514
514
  ClearItemLines?: boolean;
515
515
  /** 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`. */
@@ -524,7 +524,7 @@ export interface BillModRq {
524
524
  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.
525
525
 
526
526
  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. */
527
- IncludeRetElement?: string[] | string;
527
+ IncludeRetElement?: string | [string, ...string[]];
528
528
  }
529
529
  export interface BillModRs {
530
530
  BillRet?: BillRet;
@@ -550,12 +550,12 @@ export interface BillPaymentCheckAdd {
550
550
  /** Allows for the attachment of a user defined GUID value. */
551
551
  ExternalGUID?: string;
552
552
  /** `AppliedToTxn` List A list of `AppliedToTxn` aggregates. */
553
- AppliedToTxnAdd: AppliedToTxnAdd | AppliedToTxnAdd[];
553
+ AppliedToTxnAdd: AppliedToTxnAdd | [AppliedToTxnAdd, ...AppliedToTxnAdd[]];
554
554
  }
555
555
  export interface BillPaymentCheckAddRq {
556
556
  BillPaymentCheckAdd: BillPaymentCheckAdd;
557
557
  /** 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. */
558
- IncludeRetElement?: string[] | string;
558
+ IncludeRetElement?: string | [string, ...string[]];
559
559
  }
560
560
  export interface BillPaymentCheckAddRs {
561
561
  BillPaymentCheckRet?: BillPaymentCheckRet;
@@ -581,12 +581,12 @@ export interface BillPaymentCheckMod {
581
581
  /** Additional information. */
582
582
  Memo?: string;
583
583
  /** `AppliedToTxn` List A list of `AppliedToTxn` aggregates. */
584
- AppliedToTxnMod?: AppliedToTxnMod | AppliedToTxnMod[];
584
+ AppliedToTxnMod?: AppliedToTxnMod | [AppliedToTxnMod, ...AppliedToTxnMod[]];
585
585
  }
586
586
  export interface BillPaymentCheckModRq {
587
587
  BillPaymentCheckMod: BillPaymentCheckMod;
588
588
  /** 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. */
589
- IncludeRetElement?: string[] | string;
589
+ IncludeRetElement?: string | [string, ...string[]];
590
590
  }
591
591
  export interface BillPaymentCheckModRs {
592
592
  BillPaymentCheckRet?: BillPaymentCheckRet;
@@ -594,11 +594,11 @@ export interface BillPaymentCheckModRs {
594
594
  }
595
595
  export interface BillPaymentCheckQueryRq {
596
596
  /** 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. */
597
- TxnID?: string[] | string;
597
+ TxnID?: string | [string, ...string[]];
598
598
  /** 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. */
599
- RefNumber?: string[] | string;
599
+ RefNumber?: string | [string, ...string[]];
600
600
  /** 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. */
601
- RefNumberCaseSensitive?: string[] | string;
601
+ RefNumberCaseSensitive?: string | [string, ...string[]];
602
602
  /** 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. */
603
603
  MaxReturned?: number;
604
604
  /** 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.) */
@@ -618,12 +618,12 @@ export interface BillPaymentCheckQueryRq {
618
618
  /** 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. */
619
619
  IncludeLineItems?: boolean;
620
620
  /** 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. */
621
- IncludeRetElement?: string[] | string;
621
+ IncludeRetElement?: string | [string, ...string[]];
622
622
  /** 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. */
623
- OwnerID?: string[] | string;
623
+ OwnerID?: string | [string, ...string[]];
624
624
  }
625
625
  export interface BillPaymentCheckQueryRs {
626
- BillPaymentCheckRet?: BillPaymentCheckRet | BillPaymentCheckRet[];
626
+ BillPaymentCheckRet: [BillPaymentCheckRet, ...BillPaymentCheckRet[]];
627
627
  }
628
628
  export interface BillPaymentCheckRet {
629
629
  /** 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. */
@@ -665,23 +665,23 @@ export interface BillPaymentCheckRet {
665
665
  /** Allows for the attachment of a user defined GUID value. */
666
666
  ExternalGUID?: string;
667
667
  /** `AppliedToTxn` List A list of `AppliedToTxn` aggregates. */
668
- AppliedToTxnRet?: AppliedToTxnRet | AppliedToTxnRet[];
668
+ AppliedToTxnRet?: AppliedToTxnRet | [AppliedToTxnRet, ...AppliedToTxnRet[]];
669
669
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
670
- DataExtRet?: DataExtRet | DataExtRet[];
670
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
671
671
  }
672
672
  export interface BillQueryRq {
673
673
  /** One or more `TxnID` values. QuickBooks generates a unique `TxnID` for each transaction that is added to QuickBooks.
674
674
 
675
675
  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. */
676
- TxnID?: string[] | string;
676
+ TxnID?: string | [string, ...string[]];
677
677
  /** 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.
678
678
 
679
679
  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. */
680
- RefNumber?: string[] | string;
680
+ RefNumber?: string | [string, ...string[]];
681
681
  /** 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.
682
682
 
683
683
  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. */
684
- RefNumberCaseSensitive?: string[] | string;
684
+ RefNumberCaseSensitive?: string | [string, ...string[]];
685
685
  /** 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. */
686
686
  MaxReturned?: number;
687
687
  /** 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.
@@ -721,16 +721,16 @@ export interface BillQueryRq {
721
721
  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.
722
722
 
723
723
  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. */
724
- IncludeRetElement?: string[] | string;
724
+ IncludeRetElement?: string | [string, ...string[]];
725
725
  /** 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.
726
726
 
727
727
  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.
728
728
 
729
729
  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. */
730
- OwnerID?: string[] | string;
730
+ OwnerID?: string | [string, ...string[]];
731
731
  }
732
732
  export interface BillQueryRs {
733
- BillRet?: BillRet | BillRet[];
733
+ BillRet: [BillRet, ...BillRet[]];
734
734
  }
735
735
  export interface BillRet {
736
736
  /** 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.
@@ -794,9 +794,9 @@ export interface BillRet {
794
794
  /** 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.
795
795
 
796
796
  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. */
797
- LinkedTxn?: LinkedTxn | LinkedTxn[];
797
+ LinkedTxn?: LinkedTxn | [LinkedTxn, ...LinkedTxn[]];
798
798
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
799
- ExpenseLineRet?: ExpenseLineRet | ExpenseLineRet[];
799
+ ExpenseLineRet?: ExpenseLineRet | [ExpenseLineRet, ...ExpenseLineRet[]];
800
800
  /** 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`. */
801
801
  ItemLineRet?: ItemLineRet;
802
802
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
@@ -804,7 +804,7 @@ export interface BillRet {
804
804
  /** Indicates the amount that is still owed. `AmountDue` minus any credits or discounts equals the `OpenAmount`. */
805
805
  OpenAmount?: string;
806
806
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
807
- DataExtRet?: DataExtRet | DataExtRet[];
807
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
808
808
  }
809
809
  export declare type CashFlowClassification = "Financing" | "Investing" | "None" | "NotApplicable" | "Operating";
810
810
  export interface CheckAdd {
@@ -831,9 +831,9 @@ export interface CheckAdd {
831
831
  /** Allows for the attachment of a user defined GUID value. */
832
832
  ExternalGUID?: string;
833
833
  /** Allows you to specify a transaction to be paid by this check. */
834
- ApplyCheckToTxnAdd?: ApplyCheckToTxnAdd | ApplyCheckToTxnAdd[];
834
+ ApplyCheckToTxnAdd?: ApplyCheckToTxnAdd | [ApplyCheckToTxnAdd, ...ApplyCheckToTxnAdd[]];
835
835
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
836
- ExpenseLineAdd?: ExpenseLineAdd | ExpenseLineAdd[];
836
+ ExpenseLineAdd?: ExpenseLineAdd | [ExpenseLineAdd, ...ExpenseLineAdd[]];
837
837
  /** 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`. */
838
838
  ItemLineAdd?: ItemLineAdd;
839
839
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
@@ -842,7 +842,7 @@ export interface CheckAdd {
842
842
  export interface CheckAddRq {
843
843
  CheckAdd: CheckAdd;
844
844
  /** 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. */
845
- IncludeRetElement?: string[] | string;
845
+ IncludeRetElement?: string | [string, ...string[]];
846
846
  }
847
847
  export interface CheckAddRs {
848
848
  CheckRet?: CheckRet;
@@ -874,11 +874,11 @@ export interface CheckMod {
874
874
  /** 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.) */
875
875
  ExchangeRate?: number;
876
876
  /** Allows you to specify a transaction to be paid by this check. */
877
- ApplyCheckToTxnMod?: ApplyCheckToTxnMod | ApplyCheckToTxnMod[];
877
+ ApplyCheckToTxnMod?: ApplyCheckToTxnMod | [ApplyCheckToTxnMod, ...ApplyCheckToTxnMod[]];
878
878
  /** Set `ClearExpenseLines` to true to clear all the expense lines. To modify individual lines, use `ExpenseLineMod`. */
879
879
  ClearExpenseLines?: boolean;
880
880
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
881
- ExpenseLineMod?: ExpenseLineMod | ExpenseLineMod[];
881
+ ExpenseLineMod?: ExpenseLineMod | [ExpenseLineMod, ...ExpenseLineMod[]];
882
882
  /** Set `ClearItemLines` to true to clear all the item lines. To modify individual lines, use `ItemLineMod`. */
883
883
  ClearItemLines?: boolean;
884
884
  /** 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`. */
@@ -889,7 +889,7 @@ export interface CheckMod {
889
889
  export interface CheckModRq {
890
890
  CheckMod: CheckMod;
891
891
  /** 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. */
892
- IncludeRetElement?: string[] | string;
892
+ IncludeRetElement?: string | [string, ...string[]];
893
893
  }
894
894
  export interface CheckModRs {
895
895
  CheckRet?: CheckRet;
@@ -897,11 +897,11 @@ export interface CheckModRs {
897
897
  }
898
898
  export interface CheckQueryRq {
899
899
  /** 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. */
900
- TxnID?: string[] | string;
900
+ TxnID?: string | [string, ...string[]];
901
901
  /** 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. */
902
- RefNumber?: string[] | string;
902
+ RefNumber?: string | [string, ...string[]];
903
903
  /** 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. */
904
- RefNumberCaseSensitive?: string[] | string;
904
+ RefNumberCaseSensitive?: string | [string, ...string[]];
905
905
  /** 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. */
906
906
  MaxReturned?: number;
907
907
  /** 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.) */
@@ -923,12 +923,12 @@ export interface CheckQueryRq {
923
923
  /** 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. */
924
924
  IncludeLinkedTxns?: boolean;
925
925
  /** 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. */
926
- IncludeRetElement?: string[] | string;
926
+ IncludeRetElement?: string | [string, ...string[]];
927
927
  /** 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. */
928
- OwnerID?: string[] | string;
928
+ OwnerID?: string | [string, ...string[]];
929
929
  }
930
930
  export interface CheckQueryRs {
931
- CheckRet?: CheckRet | CheckRet[];
931
+ CheckRet: [CheckRet, ...CheckRet[]];
932
932
  }
933
933
  export interface CheckRet {
934
934
  /** 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. */
@@ -972,15 +972,15 @@ export interface CheckRet {
972
972
  /** Allows for the attachment of a user defined GUID value. */
973
973
  ExternalGUID?: string;
974
974
  /** 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. */
975
- LinkedTxn?: LinkedTxn | LinkedTxn[];
975
+ LinkedTxn?: LinkedTxn | [LinkedTxn, ...LinkedTxn[]];
976
976
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
977
- ExpenseLineRet?: ExpenseLineRet | ExpenseLineRet[];
977
+ ExpenseLineRet?: ExpenseLineRet | [ExpenseLineRet, ...ExpenseLineRet[]];
978
978
  /** 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`. */
979
979
  ItemLineRet?: ItemLineRet;
980
980
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
981
981
  ItemGroupLineRet?: ItemGroupLineRet;
982
982
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
983
- DataExtRet?: DataExtRet | DataExtRet[];
983
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
984
984
  }
985
985
  export interface ClassAdd {
986
986
  /** The case-insensitive name of the class, not including the names of its ancestors. */
@@ -993,7 +993,7 @@ export interface ClassAdd {
993
993
  export interface ClassAddRq {
994
994
  ClassAdd: ClassAdd;
995
995
  /** 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. */
996
- IncludeRetElement?: string[] | string;
996
+ IncludeRetElement?: string | [string, ...string[]];
997
997
  }
998
998
  export interface ClassAddRs {
999
999
  ClassRet?: ClassRet;
@@ -1001,9 +1001,9 @@ export interface ClassAddRs {
1001
1001
  }
1002
1002
  export interface ClassFilter {
1003
1003
  /** 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. */
1004
- ListID?: string[] | string;
1004
+ ListID?: string | [string, ...string[]];
1005
1005
  /** 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. */
1006
- FullName?: string[] | string;
1006
+ FullName?: string | [string, ...string[]];
1007
1007
  /** Allows you to filter for data that relates to the specified object and its descendants. */
1008
1008
  ListIDWithChildren?: string;
1009
1009
  /** 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`. */
@@ -1024,7 +1024,7 @@ export interface ClassMod {
1024
1024
  export interface ClassModRq {
1025
1025
  ClassMod: ClassMod;
1026
1026
  /** 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. */
1027
- IncludeRetElement?: string[] | string;
1027
+ IncludeRetElement?: string | [string, ...string[]];
1028
1028
  }
1029
1029
  export interface ClassModRs {
1030
1030
  ClassRet?: ClassRet;
@@ -1032,9 +1032,9 @@ export interface ClassModRs {
1032
1032
  }
1033
1033
  export interface ClassQueryRq {
1034
1034
  /** 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. */
1035
- ListID?: string[] | string;
1035
+ ListID?: string | [string, ...string[]];
1036
1036
  /** 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. */
1037
- FullName?: string[] | string;
1037
+ FullName?: string | [string, ...string[]];
1038
1038
  /** 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. */
1039
1039
  MaxReturned?: number;
1040
1040
  /** 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. */
@@ -1048,10 +1048,10 @@ export interface ClassQueryRq {
1048
1048
  /** Filters according to the object’s `Name`. */
1049
1049
  NameRangeFilter?: NameRangeFilter;
1050
1050
  /** 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. */
1051
- IncludeRetElement?: string[] | string;
1051
+ IncludeRetElement?: string | [string, ...string[]];
1052
1052
  }
1053
1053
  export interface ClassQueryRs {
1054
- ClassRet?: ClassRet | ClassRet[];
1054
+ ClassRet: [ClassRet, ...ClassRet[]];
1055
1055
  }
1056
1056
  export interface ClassRef {
1057
1057
  /** 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. */
@@ -1091,7 +1091,7 @@ export interface Contacts {
1091
1091
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1092
1092
  JobTitle?: string;
1093
1093
  /** List of additional contacts. */
1094
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1094
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1095
1095
  }
1096
1096
  export interface ContactsMod {
1097
1097
  /** 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. */
@@ -1109,7 +1109,7 @@ export interface ContactsMod {
1109
1109
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1110
1110
  JobTitle?: string;
1111
1111
  /** List of additional contacts. */
1112
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1112
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1113
1113
  }
1114
1114
  export interface ContactsRet {
1115
1115
  /** 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. */
@@ -1133,7 +1133,7 @@ export interface ContactsRet {
1133
1133
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1134
1134
  JobTitle?: string;
1135
1135
  /** List of additional contacts. */
1136
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1136
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1137
1137
  }
1138
1138
  export interface CreditCardInfo {
1139
1139
  /** Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234. */
@@ -1153,9 +1153,9 @@ export interface CurrencyFilter {
1153
1153
  /** 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`.
1154
1154
 
1155
1155
  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. */
1156
- ListID?: string[] | string;
1156
+ ListID?: string | [string, ...string[]];
1157
1157
  /** 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. */
1158
- FullName?: string[] | string;
1158
+ FullName?: string | [string, ...string[]];
1159
1159
  }
1160
1160
  export interface CurrencyRef {
1161
1161
  /** 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. */
@@ -1189,7 +1189,7 @@ export interface CustomerAdd {
1189
1189
  /** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode.Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query) If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
1190
1190
  ShipAddress?: ShipAddress;
1191
1191
  /** List of ship to addresses. */
1192
- ShipToAddress?: ShipToAddress | ShipToAddress[];
1192
+ ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1193
1193
  /** The telephone number. */
1194
1194
  Phone?: string;
1195
1195
  /** A telephone number given as an alternative to `Phone`. */
@@ -1205,9 +1205,9 @@ export interface CustomerAdd {
1205
1205
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1206
1206
  AltContact?: string;
1207
1207
  /** List of additional contacts. */
1208
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1208
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1209
1209
  /** A list of contact records. */
1210
- Contacts?: Contacts | Contacts[];
1210
+ Contacts?: Contacts | [Contacts, ...Contacts[]];
1211
1211
  /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1212
1212
  CustomerTypeRef?: CustomerTypeRef;
1213
1213
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -1249,7 +1249,7 @@ export interface CustomerAdd {
1249
1249
  /** Not supported. */
1250
1250
  Notes?: string;
1251
1251
  /** List of notes. */
1252
- AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1252
+ AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
1253
1253
  /** Preference for how invoices are delivered. */
1254
1254
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1255
1255
  /** You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the `Rate` for the item, which was set using the price level. */
@@ -1264,7 +1264,7 @@ export interface CustomerAdd {
1264
1264
  export interface CustomerAddRq {
1265
1265
  CustomerAdd: CustomerAdd;
1266
1266
  /** 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. */
1267
- IncludeRetElement?: string[] | string;
1267
+ IncludeRetElement?: string | [string, ...string[]];
1268
1268
  }
1269
1269
  export interface CustomerAddRs {
1270
1270
  CustomerRet?: CustomerRet;
@@ -1300,7 +1300,7 @@ export interface CustomerMod {
1300
1300
  /** Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using `Addr1` through `Addr3` along with the other possible aggregate elements, such as `City`, `State`, Postalcode.Using `Addr1`, `Addr2`, `Addr3`, `Addr4`, and `Addr5` to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as `City`, `State`, etc. (Note: this approach is not valid for `EmployeeAdd`/Mod/Query) If you use the address block approach above, the lines `Addr1`…`Addr5` are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate `ShipAddressBlock` or `BillAddressBlock`. */
1301
1301
  ShipAddress?: ShipAddress;
1302
1302
  /** List of ship to addresses. */
1303
- ShipToAddress?: ShipToAddress | ShipToAddress[];
1303
+ ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1304
1304
  /** The telephone number. */
1305
1305
  Phone?: string;
1306
1306
  /** A telephone number given as an alternative to `Phone`. */
@@ -1316,9 +1316,9 @@ export interface CustomerMod {
1316
1316
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1317
1317
  AltContact?: string;
1318
1318
  /** List of additional contacts. */
1319
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1319
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1320
1320
  /** A list of contact records. */
1321
- ContactsMod?: ContactsMod | ContactsMod[];
1321
+ ContactsMod?: ContactsMod | [ContactsMod, ...ContactsMod[]];
1322
1322
  /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1323
1323
  CustomerTypeRef?: CustomerTypeRef;
1324
1324
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -1356,7 +1356,7 @@ export interface CustomerMod {
1356
1356
  /** Not supported. */
1357
1357
  Notes?: string;
1358
1358
  /** List of notes. */
1359
- AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1359
+ AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
1360
1360
  /** Preference for how invoices are delivered. */
1361
1361
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1362
1362
  /** You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the `Rate` for the item, which was set using the price level. */
@@ -1369,7 +1369,7 @@ export interface CustomerMod {
1369
1369
  export interface CustomerModRq {
1370
1370
  CustomerMod: CustomerMod;
1371
1371
  /** 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. */
1372
- IncludeRetElement?: string[] | string;
1372
+ IncludeRetElement?: string | [string, ...string[]];
1373
1373
  }
1374
1374
  export interface CustomerModRs {
1375
1375
  CustomerRet?: CustomerRet;
@@ -1377,9 +1377,9 @@ export interface CustomerModRs {
1377
1377
  }
1378
1378
  export interface CustomerQueryRq {
1379
1379
  /** 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. */
1380
- ListID?: string[] | string;
1380
+ ListID?: string | [string, ...string[]];
1381
1381
  /** 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. */
1382
- FullName?: string[] | string;
1382
+ FullName?: string | [string, ...string[]];
1383
1383
  /** 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. */
1384
1384
  MaxReturned?: number;
1385
1385
  /** 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. */
@@ -1399,12 +1399,12 @@ export interface CustomerQueryRq {
1399
1399
  /** Filter according to class. */
1400
1400
  ClassFilter?: ClassFilter;
1401
1401
  /** 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. */
1402
- IncludeRetElement?: string[] | string;
1402
+ IncludeRetElement?: string | [string, ...string[]];
1403
1403
  /** 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. */
1404
- OwnerID?: string[] | string;
1404
+ OwnerID?: string | [string, ...string[]];
1405
1405
  }
1406
1406
  export interface CustomerQueryRs {
1407
- CustomerRet?: CustomerRet | CustomerRet[];
1407
+ CustomerRet: [CustomerRet, ...CustomerRet[]];
1408
1408
  }
1409
1409
  export interface CustomerRef {
1410
1410
  /** 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. */
@@ -1454,7 +1454,7 @@ export interface CustomerRet {
1454
1454
  /** 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. */
1455
1455
  ShipAddressBlock?: ShipAddressBlock;
1456
1456
  /** List of ship to addresses. */
1457
- ShipToAddress?: ShipToAddress | ShipToAddress[];
1457
+ ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1458
1458
  /** The telephone number. */
1459
1459
  Phone?: string;
1460
1460
  /** A telephone number given as an alternative to `Phone`. */
@@ -1470,9 +1470,9 @@ export interface CustomerRet {
1470
1470
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1471
1471
  AltContact?: string;
1472
1472
  /** List of additional contacts. */
1473
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1473
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1474
1474
  /** A list of contact records. */
1475
- ContactsRet?: ContactsRet | ContactsRet[];
1475
+ ContactsRet?: ContactsRet | [ContactsRet, ...ContactsRet[]];
1476
1476
  /** Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A `CustomerTypeRef` aggregate refers to one of the types on the `CustomerType` list. In a request, if a `CustomerTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1477
1477
  CustomerTypeRef?: CustomerTypeRef;
1478
1478
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -1514,7 +1514,7 @@ export interface CustomerRet {
1514
1514
  /** Not supported. */
1515
1515
  Notes?: string;
1516
1516
  /** List of notes. */
1517
- AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1517
+ AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
1518
1518
  /** Preference for how invoices are delivered. */
1519
1519
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1520
1520
  /** You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the `Rate` for the item, which was set using the price level. */
@@ -1526,7 +1526,7 @@ export interface CustomerRet {
1526
1526
  /** 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. */
1527
1527
  CurrencyRef?: CurrencyRef;
1528
1528
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1529
- DataExtRet?: DataExtRet | DataExtRet[];
1529
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
1530
1530
  }
1531
1531
  export interface CustomerTypeRef {
1532
1532
  /** 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. */
@@ -1631,7 +1631,7 @@ export interface EmployeeAdd {
1631
1631
  /** E-mail address. */
1632
1632
  Email?: string;
1633
1633
  /** List of additional contacts. */
1634
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1634
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1635
1635
  /** Emergency `Contact` information for the employee. */
1636
1636
  EmergencyContacts?: EmergencyContacts;
1637
1637
  /** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
@@ -1675,7 +1675,7 @@ export interface EmployeeAdd {
1675
1675
  /** Additional information. */
1676
1676
  Notes?: string;
1677
1677
  /** List of notes. */
1678
- AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1678
+ AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
1679
1679
  /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
1680
1680
  BillingRateRef?: BillingRateRef;
1681
1681
  /** Pay information for this employee. */
@@ -1698,7 +1698,7 @@ export interface EmployeeAddress {
1698
1698
  export interface EmployeeAddRq {
1699
1699
  EmployeeAdd: EmployeeAdd;
1700
1700
  /** 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. */
1701
- IncludeRetElement?: string[] | string;
1701
+ IncludeRetElement?: string | [string, ...string[]];
1702
1702
  }
1703
1703
  export interface EmployeeAddRs {
1704
1704
  EmployeeRet?: EmployeeRet;
@@ -1748,7 +1748,7 @@ export interface EmployeeMod {
1748
1748
  /** E-mail address. */
1749
1749
  Email?: string;
1750
1750
  /** List of additional contacts. */
1751
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1751
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1752
1752
  /** Emergency `Contact` information for the employee. */
1753
1753
  EmergencyContacts?: EmergencyContacts;
1754
1754
  /** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
@@ -1790,7 +1790,7 @@ export interface EmployeeMod {
1790
1790
  /** Additional information. */
1791
1791
  Notes?: string;
1792
1792
  /** List of notes. */
1793
- AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1793
+ AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
1794
1794
  /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
1795
1795
  BillingRateRef?: BillingRateRef;
1796
1796
  /** Pay information for this employee. */
@@ -1799,7 +1799,7 @@ export interface EmployeeMod {
1799
1799
  export interface EmployeeModRq {
1800
1800
  EmployeeMod: EmployeeMod;
1801
1801
  /** 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. */
1802
- IncludeRetElement?: string[] | string;
1802
+ IncludeRetElement?: string | [string, ...string[]];
1803
1803
  }
1804
1804
  export interface EmployeeModRs {
1805
1805
  EmployeeRet?: EmployeeRet;
@@ -1813,7 +1813,7 @@ export interface EmployeePayrollInfo {
1813
1813
  /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
1814
1814
  ClearEarnings?: boolean;
1815
1815
  /** A list of `IEarnings` aggregate objects. If an `EmployeeMod` request does not include any `IEarnings` objects, the earnings table for that employee will not change. If `EmployeeMod` includes at least one `IEarnings` object, all existing earnings information will be deleted for that employee, and all the earnings information in the -Mod request will be added. (To delete all the earnings information, set the `ClearEarnings` field to true in an `EmployeeMod` request.) */
1816
- Earnings?: Earnings | Earnings[];
1816
+ Earnings?: Earnings | [Earnings, ...Earnings[]];
1817
1817
  /** Indicates whether or not paychecks are generated from time-tracking data. If you include a blank `IsUsingTimeDataToCreatePaychecks` element in an `EmployeeMod` message, you’ll receive an error. */
1818
1818
  IsUsingTimeDataToCreatePaychecks?: boolean;
1819
1819
  /** Indicates whether time data is used to create paychecks for this employee. */
@@ -1831,7 +1831,7 @@ export interface EmployeePayrollInfoMod {
1831
1831
  /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
1832
1832
  ClearEarnings?: boolean;
1833
1833
  /** A list of `IEarnings` aggregate objects. If an `EmployeeMod` request does not include any `IEarnings` objects, the earnings table for that employee will not change. If `EmployeeMod` includes at least one `IEarnings` object, all existing earnings information will be deleted for that employee, and all the earnings information in the -Mod request will be added. (To delete all the earnings information, set the `ClearEarnings` field to true in an `EmployeeMod` request.) */
1834
- Earnings?: Earnings | Earnings[];
1834
+ Earnings?: Earnings | [Earnings, ...Earnings[]];
1835
1835
  /** Indicates whether or not paychecks are generated from time-tracking data. If you include a blank `IsUsingTimeDataToCreatePaychecks` element in an `EmployeeMod` message, you’ll receive an error. */
1836
1836
  IsUsingTimeDataToCreatePaychecks?: boolean;
1837
1837
  /** Indicates whether time data is used to create paychecks for this employee. */
@@ -1843,9 +1843,9 @@ export interface EmployeePayrollInfoMod {
1843
1843
  }
1844
1844
  export interface EmployeeQueryRq {
1845
1845
  /** 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. */
1846
- ListID?: string[] | string;
1846
+ ListID?: string | [string, ...string[]];
1847
1847
  /** 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. */
1848
- FullName?: string[] | string;
1848
+ FullName?: string | [string, ...string[]];
1849
1849
  /** 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. */
1850
1850
  MaxReturned?: number;
1851
1851
  /** 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. */
@@ -1859,12 +1859,12 @@ export interface EmployeeQueryRq {
1859
1859
  /** Filters according to the object’s `Name`. */
1860
1860
  NameRangeFilter?: NameRangeFilter;
1861
1861
  /** 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. */
1862
- IncludeRetElement?: string[] | string;
1862
+ IncludeRetElement?: string | [string, ...string[]];
1863
1863
  /** 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. */
1864
- OwnerID?: string[] | string;
1864
+ OwnerID?: string | [string, ...string[]];
1865
1865
  }
1866
1866
  export interface EmployeeQueryRs {
1867
- EmployeeRet?: EmployeeRet | EmployeeRet[];
1867
+ EmployeeRet: [EmployeeRet, ...EmployeeRet[]];
1868
1868
  }
1869
1869
  export interface EmployeeRet {
1870
1870
  /** 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. */
@@ -1918,7 +1918,7 @@ export interface EmployeeRet {
1918
1918
  /** E-mail address. */
1919
1919
  Email?: string;
1920
1920
  /** List of additional contacts. */
1921
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1921
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1922
1922
  /** Emergency `Contact` information for the employee. */
1923
1923
  EmergencyContacts?: EmergencyContacts;
1924
1924
  /** `EmployeeType` can affect payroll taxes for an employee. A statutory employee is a person who is defined as an employee by statute. Usually an owner or partner will be on the Other Names list, but if they are on the Employee list, their `EmployeeType` will be Owner. */
@@ -1962,7 +1962,7 @@ export interface EmployeeRet {
1962
1962
  /** Additional information. */
1963
1963
  Notes?: string;
1964
1964
  /** List of notes. */
1965
- AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1965
+ AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
1966
1966
  /** Billing rates are used to override the service item rate in a time transaction (`TimeTrackingAdd`) based on the employee or vendor performing the work. Billing rates are assigned to an employee or a vendor to specify overrides to service items. */
1967
1967
  BillingRateRef?: BillingRateRef;
1968
1968
  /** Pay information for this employee. */
@@ -1970,7 +1970,7 @@ export interface EmployeeRet {
1970
1970
  /** Allows for the attachment of a user defined GUID value. */
1971
1971
  ExternalGUID?: string;
1972
1972
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1973
- DataExtRet?: DataExtRet | DataExtRet[];
1973
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
1974
1974
  }
1975
1975
  /** @default: Regular */
1976
1976
  export declare type EmployeeType = "Officer" | "Owner" | "Regular" | "Statutory";
@@ -1978,9 +1978,9 @@ export interface EntityFilter {
1978
1978
  /** 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`.
1979
1979
 
1980
1980
  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. */
1981
- ListID?: string[] | string;
1981
+ ListID?: string | [string, ...string[]];
1982
1982
  /** 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. */
1983
- FullName?: string[] | string;
1983
+ FullName?: string | [string, ...string[]];
1984
1984
  /** Allows you to filter for data that relates to the specified object and its descendants. */
1985
1985
  ListIDWithChildren?: string;
1986
1986
  /** 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`. */
@@ -2066,7 +2066,7 @@ export interface ExpenseLineAdd {
2066
2066
  /** 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. */
2067
2067
  SalesRepRef?: SalesRepRef;
2068
2068
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2069
- DataExt?: DataExt | DataExt[];
2069
+ DataExt?: DataExt | [DataExt, ...DataExt[]];
2070
2070
  }
2071
2071
  export interface ExpenseLineMod {
2072
2072
  /** 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.)
@@ -2172,7 +2172,7 @@ export interface ExpenseLineRet {
2172
2172
  /** 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. */
2173
2173
  SalesRepRef?: SalesRepRef;
2174
2174
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2175
- DataExtRet?: DataExtRet | DataExtRet[];
2175
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
2176
2176
  }
2177
2177
  export declare type Gender = "Female" | "Male";
2178
2178
  export interface IncomeAccountRef {
@@ -2205,7 +2205,7 @@ export interface ItemGroupLineAdd {
2205
2205
  /** Location within the Inventory Site. */
2206
2206
  InventorySiteLocationRef?: InventorySiteLocationRef;
2207
2207
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2208
- DataExt?: DataExt | DataExt[];
2208
+ DataExt?: DataExt | [DataExt, ...DataExt[]];
2209
2209
  }
2210
2210
  export interface ItemGroupLineMod {
2211
2211
  /** 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.)
@@ -2221,7 +2221,7 @@ export interface ItemGroupLineMod {
2221
2221
  /** 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. */
2222
2222
  OverrideUOMSetRef?: OverrideUOMSetRef;
2223
2223
  /** 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.” */
2224
- ItemLineMod?: ItemLineMod | ItemLineMod[];
2224
+ ItemLineMod?: ItemLineMod | [ItemLineMod, ...ItemLineMod[]];
2225
2225
  }
2226
2226
  export interface ItemGroupLineRet {
2227
2227
  /** 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.)
@@ -2241,9 +2241,9 @@ export interface ItemGroupLineRet {
2241
2241
  /** 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`. */
2242
2242
  TotalAmount: string;
2243
2243
  /** 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.” */
2244
- ItemLineRet?: ItemLineRet | ItemLineRet[];
2244
+ ItemLineRet?: ItemLineRet | [ItemLineRet, ...ItemLineRet[]];
2245
2245
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2246
- DataExt?: DataExt | DataExt[];
2246
+ DataExt?: DataExt | [DataExt, ...DataExt[]];
2247
2247
  }
2248
2248
  export interface ItemGroupRef {
2249
2249
  /** 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. */
@@ -2299,7 +2299,7 @@ export interface ItemLineAdd {
2299
2299
  /** 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. */
2300
2300
  SalesRepRef?: SalesRepRef;
2301
2301
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2302
- DataExt?: DataExt | DataExt[];
2302
+ DataExt?: DataExt | [DataExt, ...DataExt[]];
2303
2303
  }
2304
2304
  export interface ItemLineMod {
2305
2305
  /** 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.)
@@ -2407,7 +2407,7 @@ export interface ItemLineRet {
2407
2407
  /** 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. */
2408
2408
  SalesRepRef?: SalesRepRef;
2409
2409
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2410
- DataExtRet?: DataExtRet | DataExtRet[];
2410
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
2411
2411
  }
2412
2412
  export interface ItemRef {
2413
2413
  /** 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. */
@@ -2448,7 +2448,7 @@ export interface ItemServiceAdd {
2448
2448
  export interface ItemServiceAddRq {
2449
2449
  ItemServiceAdd: ItemServiceAdd;
2450
2450
  /** 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. */
2451
- IncludeRetElement?: string[] | string;
2451
+ IncludeRetElement?: string | [string, ...string[]];
2452
2452
  }
2453
2453
  export interface ItemServiceAddRs {
2454
2454
  ItemServiceRet?: ItemServiceRet;
@@ -2485,7 +2485,7 @@ export interface ItemServiceMod {
2485
2485
  export interface ItemServiceModRq {
2486
2486
  ItemServiceMod: ItemServiceMod;
2487
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. */
2488
- IncludeRetElement?: string[] | string;
2488
+ IncludeRetElement?: string | [string, ...string[]];
2489
2489
  }
2490
2490
  export interface ItemServiceModRs {
2491
2491
  ItemServiceRet?: ItemServiceRet;
@@ -2493,9 +2493,9 @@ export interface ItemServiceModRs {
2493
2493
  }
2494
2494
  export interface ItemServiceQueryRq {
2495
2495
  /** 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. */
2496
- ListID?: string[] | string;
2496
+ ListID?: string | [string, ...string[]];
2497
2497
  /** 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. */
2498
- FullName?: string[] | string;
2498
+ FullName?: string | [string, ...string[]];
2499
2499
  /** 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. */
2500
2500
  MaxReturned?: number;
2501
2501
  /** 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. */
@@ -2511,12 +2511,12 @@ export interface ItemServiceQueryRq {
2511
2511
  /** Filters according to the object’s class. */
2512
2512
  ClassFilter?: ClassFilter;
2513
2513
  /** 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. */
2514
- IncludeRetElement?: string[] | string;
2514
+ IncludeRetElement?: string | [string, ...string[]];
2515
2515
  /** 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. */
2516
- OwnerID?: string[] | string;
2516
+ OwnerID?: string | [string, ...string[]];
2517
2517
  }
2518
2518
  export interface ItemServiceQueryRs {
2519
- ItemServiceRet?: ItemServiceRet | ItemServiceRet[];
2519
+ ItemServiceRet: [ItemServiceRet, ...ItemServiceRet[]];
2520
2520
  }
2521
2521
  export interface ItemServiceRef {
2522
2522
  /** 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. */
@@ -2560,7 +2560,7 @@ export interface ItemServiceRet {
2560
2560
  /** Allows for the attachment of a user defined GUID value. */
2561
2561
  ExternalGUID?: string;
2562
2562
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2563
- DataExtRet?: DataExtRet | DataExtRet[];
2563
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
2564
2564
  }
2565
2565
  /** @default: None */
2566
2566
  export declare type JobStatus = "Awarded" | "Closed" | "InProgress" | "None" | "NotAwarded" | "Pending";
@@ -2631,7 +2631,7 @@ export interface JournalEntryAdd {
2631
2631
  export interface JournalEntryAddRq {
2632
2632
  JournalEntryAdd: JournalEntryAdd;
2633
2633
  /** 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. */
2634
- IncludeRetElement?: string[] | string;
2634
+ IncludeRetElement?: string | [string, ...string[]];
2635
2635
  }
2636
2636
  export interface JournalEntryAddRs {
2637
2637
  JournalEntryRet?: JournalEntryRet;
@@ -2655,12 +2655,12 @@ export interface JournalEntryMod {
2655
2655
  /** 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.) */
2656
2656
  ExchangeRate?: number;
2657
2657
  /** `IORJournalLineList` The list of journal lines in a `JournalMod` request – note that in a mod request, inclding one line means that you must include all lines, modified or not. */
2658
- JournalLineMod?: JournalLineMod | JournalLineMod[];
2658
+ JournalLineMod?: JournalLineMod | [JournalLineMod, ...JournalLineMod[]];
2659
2659
  }
2660
2660
  export interface JournalEntryModRq {
2661
2661
  JournalEntryMod: JournalEntryMod;
2662
2662
  /** 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. */
2663
- IncludeRetElement?: string[] | string;
2663
+ IncludeRetElement?: string | [string, ...string[]];
2664
2664
  }
2665
2665
  export interface JournalEntryModRs {
2666
2666
  JournalEntryRet?: JournalEntryRet;
@@ -2668,11 +2668,11 @@ export interface JournalEntryModRs {
2668
2668
  }
2669
2669
  export interface JournalEntryQueryRq {
2670
2670
  /** 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. */
2671
- TxnID?: string[] | string;
2671
+ TxnID?: string | [string, ...string[]];
2672
2672
  /** 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. */
2673
- RefNumber?: string[] | string;
2673
+ RefNumber?: string | [string, ...string[]];
2674
2674
  /** 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. */
2675
- RefNumberCaseSensitive?: string[] | string;
2675
+ RefNumberCaseSensitive?: string | [string, ...string[]];
2676
2676
  /** 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. */
2677
2677
  MaxReturned?: number;
2678
2678
  /** 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.) */
@@ -2692,12 +2692,12 @@ export interface JournalEntryQueryRq {
2692
2692
  /** 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. */
2693
2693
  IncludeLineItems?: boolean;
2694
2694
  /** 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. */
2695
- IncludeRetElement?: string[] | string;
2695
+ IncludeRetElement?: string | [string, ...string[]];
2696
2696
  /** 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. */
2697
- OwnerID?: string[] | string;
2697
+ OwnerID?: string | [string, ...string[]];
2698
2698
  }
2699
2699
  export interface JournalEntryQueryRs {
2700
- JournalEntryRet?: JournalEntryRet | JournalEntryRet[];
2700
+ JournalEntryRet: [JournalEntryRet, ...JournalEntryRet[]];
2701
2701
  }
2702
2702
  export interface JournalEntryRet {
2703
2703
  /** 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. */
@@ -2731,7 +2731,7 @@ export interface JournalEntryRet {
2731
2731
  /** If no amount is included in the first credit line (or debit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that `JournalEntry` object will fail XML validation. */
2732
2732
  JournalCreditLine?: JournalCreditLine;
2733
2733
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
2734
- DataExtRet?: DataExtRet | DataExtRet[];
2734
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
2735
2735
  }
2736
2736
  export interface JournalLineMod {
2737
2737
  /** 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. */
@@ -3145,7 +3145,7 @@ export interface TimeTrackingAdd {
3145
3145
  export interface TimeTrackingAddRq {
3146
3146
  TimeTrackingAdd: TimeTrackingAdd;
3147
3147
  /** 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. */
3148
- IncludeRetElement?: string[] | string;
3148
+ IncludeRetElement?: string | [string, ...string[]];
3149
3149
  }
3150
3150
  export interface TimeTrackingAddRs {
3151
3151
  TimeTrackingRet?: TimeTrackingRet;
@@ -3153,9 +3153,9 @@ export interface TimeTrackingAddRs {
3153
3153
  }
3154
3154
  export interface TimeTrackingEntityFilter {
3155
3155
  /** 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. */
3156
- ListID?: string[] | string;
3156
+ ListID?: string | [string, ...string[]];
3157
3157
  /** 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. */
3158
- FullName?: string[] | string;
3158
+ FullName?: string | [string, ...string[]];
3159
3159
  }
3160
3160
  export interface TimeTrackingMod {
3161
3161
  /** 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. */
@@ -3184,7 +3184,7 @@ export interface TimeTrackingMod {
3184
3184
  export interface TimeTrackingModRq {
3185
3185
  TimeTrackingMod: TimeTrackingMod;
3186
3186
  /** 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. */
3187
- IncludeRetElement?: string[] | string;
3187
+ IncludeRetElement?: string | [string, ...string[]];
3188
3188
  }
3189
3189
  export interface TimeTrackingModRs {
3190
3190
  TimeTrackingRet?: TimeTrackingRet;
@@ -3192,7 +3192,7 @@ export interface TimeTrackingModRs {
3192
3192
  }
3193
3193
  export interface TimeTrackingQueryRq {
3194
3194
  /** 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. */
3195
- TxnID?: string[] | string;
3195
+ TxnID?: string | [string, ...string[]];
3196
3196
  /** 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. */
3197
3197
  MaxReturned?: number;
3198
3198
  /** 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.) */
@@ -3202,10 +3202,10 @@ export interface TimeTrackingQueryRq {
3202
3202
  /** Allows you to query for one or more names on the QuickBooks Vendor list, Employee list, or Other Names list. */
3203
3203
  TimeTrackingEntityFilter?: TimeTrackingEntityFilter;
3204
3204
  /** 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. */
3205
- IncludeRetElement?: string[] | string;
3205
+ IncludeRetElement?: string | [string, ...string[]];
3206
3206
  }
3207
3207
  export interface TimeTrackingQueryRs {
3208
- TimeTrackingRet?: TimeTrackingRet | TimeTrackingRet[];
3208
+ TimeTrackingRet: [TimeTrackingRet, ...TimeTrackingRet[]];
3209
3209
  }
3210
3210
  export interface TimeTrackingRet {
3211
3211
  /** 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. */
@@ -3329,9 +3329,9 @@ export interface VendorAdd {
3329
3329
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3330
3330
  AltContact?: string;
3331
3331
  /** List of additional contacts. */
3332
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3332
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3333
3333
  /** A list of contact records. */
3334
- Contacts?: Contacts | Contacts[];
3334
+ Contacts?: Contacts | [Contacts, ...Contacts[]];
3335
3335
  /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
3336
3336
  NameOnCheck?: string;
3337
3337
  /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
@@ -3339,7 +3339,7 @@ export interface VendorAdd {
3339
3339
  /** Additional information about this vendor. */
3340
3340
  Notes?: string;
3341
3341
  /** List of notes. */
3342
- AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
3342
+ AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
3343
3343
  /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
3344
3344
  VendorTypeRef?: VendorTypeRef;
3345
3345
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -3381,7 +3381,7 @@ export interface VendorAdd {
3381
3381
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3382
3382
  IsTaxOnTax?: boolean;
3383
3383
  /** Expense account to prefill when you enter bills for this vendor. */
3384
- PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3384
+ PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3385
3385
  /** 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. */
3386
3386
  CurrencyRef?: CurrencyRef;
3387
3387
  }
@@ -3422,7 +3422,7 @@ export interface VendorAddressBlock {
3422
3422
  export interface VendorAddRq {
3423
3423
  VendorAdd: VendorAdd;
3424
3424
  /** 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. */
3425
- IncludeRetElement?: string[] | string;
3425
+ IncludeRetElement?: string | [string, ...string[]];
3426
3426
  }
3427
3427
  export interface VendorAddRs {
3428
3428
  VendorRet?: VendorRet;
@@ -3470,9 +3470,9 @@ export interface VendorMod {
3470
3470
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3471
3471
  AltContact?: string;
3472
3472
  /** List of additional contacts. */
3473
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3473
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3474
3474
  /** A list of contact records. */
3475
- ContactsMod?: ContactsMod | ContactsMod[];
3475
+ ContactsMod?: ContactsMod | [ContactsMod, ...ContactsMod[]];
3476
3476
  /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
3477
3477
  NameOnCheck?: string;
3478
3478
  /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
@@ -3480,7 +3480,7 @@ export interface VendorMod {
3480
3480
  /** Additional information about this vendor. */
3481
3481
  Notes?: string;
3482
3482
  /** List of notes. */
3483
- AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
3483
+ AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
3484
3484
  /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
3485
3485
  VendorTypeRef?: VendorTypeRef;
3486
3486
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -3516,14 +3516,14 @@ export interface VendorMod {
3516
3516
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3517
3517
  IsTaxOnTax?: boolean;
3518
3518
  /** Expense account to prefill when you enter bills for this vendor. */
3519
- PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3519
+ PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3520
3520
  /** 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. */
3521
3521
  CurrencyRef?: CurrencyRef;
3522
3522
  }
3523
3523
  export interface VendorModRq {
3524
3524
  VendorMod: VendorMod;
3525
3525
  /** 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. */
3526
- IncludeRetElement?: string[] | string;
3526
+ IncludeRetElement?: string | [string, ...string[]];
3527
3527
  }
3528
3528
  export interface VendorModRs {
3529
3529
  VendorRet?: VendorRet;
@@ -3531,9 +3531,9 @@ export interface VendorModRs {
3531
3531
  }
3532
3532
  export interface VendorQueryRq {
3533
3533
  /** 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. */
3534
- ListID?: string[] | string;
3534
+ ListID?: string | [string, ...string[]];
3535
3535
  /** 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. */
3536
- FullName?: string[] | string;
3536
+ FullName?: string | [string, ...string[]];
3537
3537
  /** 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. */
3538
3538
  MaxReturned?: number;
3539
3539
  /** 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. */
@@ -3553,12 +3553,12 @@ export interface VendorQueryRq {
3553
3553
  /** Filter according to class. */
3554
3554
  ClassFilter?: ClassFilter;
3555
3555
  /** 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. */
3556
- IncludeRetElement?: string[] | string;
3556
+ IncludeRetElement?: string | [string, ...string[]];
3557
3557
  /** 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. */
3558
- OwnerID?: string[] | string;
3558
+ OwnerID?: string | [string, ...string[]];
3559
3559
  }
3560
3560
  export interface VendorQueryRs {
3561
- VendorRet?: VendorRet | VendorRet[];
3561
+ VendorRet: [VendorRet, ...VendorRet[]];
3562
3562
  }
3563
3563
  export interface VendorRef {
3564
3564
  /** 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. */
@@ -3616,9 +3616,9 @@ export interface VendorRet {
3616
3616
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3617
3617
  AltContact?: string;
3618
3618
  /** List of additional contacts. */
3619
- AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3619
+ AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3620
3620
  /** A list of contact records. */
3621
- ContactsRet?: ContactsRet | ContactsRet[];
3621
+ ContactsRet?: ContactsRet | [ContactsRet, ...ContactsRet[]];
3622
3622
  /** The vendor’s name as it will appear on checks sent to the vendor. (Corresponds in the QuickBooks user interface to the “Print on Check as” field of the Edit Vendor and New Vendor windows.) */
3623
3623
  NameOnCheck?: string;
3624
3624
  /** Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the `IsUsingAccountNumber` preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface. */
@@ -3626,7 +3626,7 @@ export interface VendorRet {
3626
3626
  /** Additional information about this vendor. */
3627
3627
  Notes?: string;
3628
3628
  /** List of notes. */
3629
- AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
3629
+ AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
3630
3630
  /** Vendor types allow business owners to categorize vendors in ways that are meaningful for their businesses. For example, a vendor type might indicate which industry a vendor represents, or which part of the country a vendor is in. A `VendorTypeRef` aggregate refers to one of the types on the `VendorType` list. In a request, if a `VendorTypeRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
3631
3631
  VendorTypeRef?: VendorTypeRef;
3632
3632
  /** Refers to the payment terms associated with this entity. (This will be an item on the `DateDrivenTerms` or `StandardTerms` list.) If a `TermsRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
@@ -3666,11 +3666,11 @@ export interface VendorRet {
3666
3666
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3667
3667
  IsTaxOnTax?: boolean;
3668
3668
  /** Expense account to prefill when you enter bills for this vendor. */
3669
- PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3669
+ PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3670
3670
  /** 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. */
3671
3671
  CurrencyRef?: CurrencyRef;
3672
3672
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
3673
- DataExtRet?: DataExtRet | DataExtRet[];
3673
+ DataExtRet?: DataExtRet | [DataExtRet, ...DataExtRet[]];
3674
3674
  }
3675
3675
  export interface VendorTypeRef {
3676
3676
  /** 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. */