conductor-node 3.8.3 → 3.8.5

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, ...string[]];
44
+ IncludeRetElement?: 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, ...string[]];
54
+ ListID?: 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, ...string[]];
56
+ FullName?: 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, ...string[]];
109
+ IncludeRetElement?: 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, ...string[]];
119
+ ListID?: 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, ...string[]];
121
+ FullName?: 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, ...AccountType[]];
147
+ 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,13 +152,13 @@ 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, ...string[]];
155
+ IncludeRetElement?: 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, ...string[]];
161
+ OwnerID?: string[] | string;
162
162
  }
163
163
  export interface AccountQueryRs {
164
164
  AccountRet: [AccountRet, ...AccountRet[]];
@@ -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, ...DataExtRet[]];
226
+ 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, ...SetCredit[]];
302
+ 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, ...SetCredit[]];
316
+ 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, ...LinkedTxn[]];
344
+ 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, ...string[]];
409
+ LinkToTxnID?: string[] | string;
410
410
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
411
- ExpenseLineAdd?: ExpenseLineAdd | [ExpenseLineAdd, ...ExpenseLineAdd[]];
411
+ 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, ...string[]];
456
+ IncludeRetElement?: 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, ...ExpenseLineMod[]];
512
+ 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, ...string[]];
527
+ IncludeRetElement?: 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, ...AppliedToTxnAdd[]];
553
+ 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, ...string[]];
558
+ IncludeRetElement?: 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, ...AppliedToTxnMod[]];
584
+ 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, ...string[]];
589
+ IncludeRetElement?: 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, ...string[]];
597
+ TxnID?: 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, ...string[]];
599
+ RefNumber?: 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, ...string[]];
601
+ RefNumberCaseSensitive?: 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,9 +618,9 @@ 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, ...string[]];
621
+ IncludeRetElement?: 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, ...string[]];
623
+ OwnerID?: string[] | string;
624
624
  }
625
625
  export interface BillPaymentCheckQueryRs {
626
626
  BillPaymentCheckRet: [BillPaymentCheckRet, ...BillPaymentCheckRet[]];
@@ -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, ...AppliedToTxnRet[]];
668
+ 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, ...DataExtRet[]];
670
+ 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, ...string[]];
676
+ TxnID?: 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, ...string[]];
680
+ RefNumber?: 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, ...string[]];
684
+ RefNumberCaseSensitive?: 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,13 +721,13 @@ 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, ...string[]];
724
+ IncludeRetElement?: 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, ...string[]];
730
+ OwnerID?: string[] | string;
731
731
  }
732
732
  export interface BillQueryRs {
733
733
  BillRet: [BillRet, ...BillRet[]];
@@ -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, ...LinkedTxn[]];
797
+ LinkedTxn?: LinkedTxn | LinkedTxn[];
798
798
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
799
- ExpenseLineRet?: ExpenseLineRet | [ExpenseLineRet, ...ExpenseLineRet[]];
799
+ 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,33 @@ 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, ...DataExtRet[]];
807
+ DataExtRet?: DataExtRet | DataExtRet[];
808
+ }
809
+ export interface CashBackInfoAdd {
810
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
811
+ AccountRef: AccountRef;
812
+ /** Additional information. */
813
+ Memo?: string;
814
+ /** A monetary amount. */
815
+ Amount?: string;
816
+ }
817
+ export interface CashBackInfoMod {
818
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
819
+ AccountRef?: AccountRef;
820
+ /** Additional information. */
821
+ Memo?: string;
822
+ /** A monetary amount. */
823
+ Amount?: string;
824
+ }
825
+ export interface CashBackInfoRet {
826
+ /** 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. */
827
+ TxnLineID: string;
828
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
829
+ AccountRef: AccountRef;
830
+ /** Additional information. */
831
+ Memo?: string;
832
+ /** A monetary amount. */
833
+ Amount?: string;
808
834
  }
809
835
  export declare type CashFlowClassification = "Financing" | "Investing" | "None" | "NotApplicable" | "Operating";
810
836
  export interface CheckAdd {
@@ -831,9 +857,9 @@ export interface CheckAdd {
831
857
  /** Allows for the attachment of a user defined GUID value. */
832
858
  ExternalGUID?: string;
833
859
  /** Allows you to specify a transaction to be paid by this check. */
834
- ApplyCheckToTxnAdd?: ApplyCheckToTxnAdd | [ApplyCheckToTxnAdd, ...ApplyCheckToTxnAdd[]];
860
+ ApplyCheckToTxnAdd?: ApplyCheckToTxnAdd | ApplyCheckToTxnAdd[];
835
861
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
836
- ExpenseLineAdd?: ExpenseLineAdd | [ExpenseLineAdd, ...ExpenseLineAdd[]];
862
+ ExpenseLineAdd?: ExpenseLineAdd | ExpenseLineAdd[];
837
863
  /** 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
864
  ItemLineAdd?: ItemLineAdd;
839
865
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
@@ -842,7 +868,7 @@ export interface CheckAdd {
842
868
  export interface CheckAddRq {
843
869
  CheckAdd: CheckAdd;
844
870
  /** 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, ...string[]];
871
+ IncludeRetElement?: string[] | string;
846
872
  }
847
873
  export interface CheckAddRs {
848
874
  CheckRet?: CheckRet;
@@ -874,11 +900,11 @@ export interface CheckMod {
874
900
  /** 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
901
  ExchangeRate?: number;
876
902
  /** Allows you to specify a transaction to be paid by this check. */
877
- ApplyCheckToTxnMod?: ApplyCheckToTxnMod | [ApplyCheckToTxnMod, ...ApplyCheckToTxnMod[]];
903
+ ApplyCheckToTxnMod?: ApplyCheckToTxnMod | ApplyCheckToTxnMod[];
878
904
  /** Set `ClearExpenseLines` to true to clear all the expense lines. To modify individual lines, use `ExpenseLineMod`. */
879
905
  ClearExpenseLines?: boolean;
880
906
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
881
- ExpenseLineMod?: ExpenseLineMod | [ExpenseLineMod, ...ExpenseLineMod[]];
907
+ ExpenseLineMod?: ExpenseLineMod | ExpenseLineMod[];
882
908
  /** Set `ClearItemLines` to true to clear all the item lines. To modify individual lines, use `ItemLineMod`. */
883
909
  ClearItemLines?: boolean;
884
910
  /** 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 +915,7 @@ export interface CheckMod {
889
915
  export interface CheckModRq {
890
916
  CheckMod: CheckMod;
891
917
  /** 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, ...string[]];
918
+ IncludeRetElement?: string[] | string;
893
919
  }
894
920
  export interface CheckModRs {
895
921
  CheckRet?: CheckRet;
@@ -897,11 +923,11 @@ export interface CheckModRs {
897
923
  }
898
924
  export interface CheckQueryRq {
899
925
  /** 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, ...string[]];
926
+ TxnID?: string[] | string;
901
927
  /** 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, ...string[]];
928
+ RefNumber?: string[] | string;
903
929
  /** 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, ...string[]];
930
+ RefNumberCaseSensitive?: string[] | string;
905
931
  /** 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
932
  MaxReturned?: number;
907
933
  /** 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,9 +949,9 @@ export interface CheckQueryRq {
923
949
  /** 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
950
  IncludeLinkedTxns?: boolean;
925
951
  /** 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, ...string[]];
952
+ IncludeRetElement?: string[] | string;
927
953
  /** 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, ...string[]];
954
+ OwnerID?: string[] | string;
929
955
  }
930
956
  export interface CheckQueryRs {
931
957
  CheckRet: [CheckRet, ...CheckRet[]];
@@ -972,15 +998,15 @@ export interface CheckRet {
972
998
  /** Allows for the attachment of a user defined GUID value. */
973
999
  ExternalGUID?: string;
974
1000
  /** 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, ...LinkedTxn[]];
1001
+ LinkedTxn?: LinkedTxn | LinkedTxn[];
976
1002
  /** A list of `IExpenseLine` objects, each representing one line in this expense. */
977
- ExpenseLineRet?: ExpenseLineRet | [ExpenseLineRet, ...ExpenseLineRet[]];
1003
+ ExpenseLineRet?: ExpenseLineRet | ExpenseLineRet[];
978
1004
  /** 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
1005
  ItemLineRet?: ItemLineRet;
980
1006
  /** Refers to items that are grouped together in QuickBooks for fast entry. */
981
1007
  ItemGroupLineRet?: ItemGroupLineRet;
982
1008
  /** 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, ...DataExtRet[]];
1009
+ DataExtRet?: DataExtRet | DataExtRet[];
984
1010
  }
985
1011
  export interface ClassAdd {
986
1012
  /** The case-insensitive name of the class, not including the names of its ancestors. */
@@ -993,7 +1019,7 @@ export interface ClassAdd {
993
1019
  export interface ClassAddRq {
994
1020
  ClassAdd: ClassAdd;
995
1021
  /** 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, ...string[]];
1022
+ IncludeRetElement?: string[] | string;
997
1023
  }
998
1024
  export interface ClassAddRs {
999
1025
  ClassRet?: ClassRet;
@@ -1001,9 +1027,9 @@ export interface ClassAddRs {
1001
1027
  }
1002
1028
  export interface ClassFilter {
1003
1029
  /** 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, ...string[]];
1030
+ ListID?: string[] | string;
1005
1031
  /** 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, ...string[]];
1032
+ FullName?: string[] | string;
1007
1033
  /** Allows you to filter for data that relates to the specified object and its descendants. */
1008
1034
  ListIDWithChildren?: string;
1009
1035
  /** 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 +1050,7 @@ export interface ClassMod {
1024
1050
  export interface ClassModRq {
1025
1051
  ClassMod: ClassMod;
1026
1052
  /** 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, ...string[]];
1053
+ IncludeRetElement?: string[] | string;
1028
1054
  }
1029
1055
  export interface ClassModRs {
1030
1056
  ClassRet?: ClassRet;
@@ -1032,9 +1058,9 @@ export interface ClassModRs {
1032
1058
  }
1033
1059
  export interface ClassQueryRq {
1034
1060
  /** 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, ...string[]];
1061
+ ListID?: string[] | string;
1036
1062
  /** 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, ...string[]];
1063
+ FullName?: string[] | string;
1038
1064
  /** 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
1065
  MaxReturned?: number;
1040
1066
  /** 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,7 +1074,7 @@ export interface ClassQueryRq {
1048
1074
  /** Filters according to the object’s `Name`. */
1049
1075
  NameRangeFilter?: NameRangeFilter;
1050
1076
  /** 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, ...string[]];
1077
+ IncludeRetElement?: string[] | string;
1052
1078
  }
1053
1079
  export interface ClassQueryRs {
1054
1080
  ClassRet: [ClassRet, ...ClassRet[]];
@@ -1091,7 +1117,7 @@ export interface Contacts {
1091
1117
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1092
1118
  JobTitle?: string;
1093
1119
  /** List of additional contacts. */
1094
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1120
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1095
1121
  }
1096
1122
  export interface ContactsMod {
1097
1123
  /** 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 +1135,7 @@ export interface ContactsMod {
1109
1135
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1110
1136
  JobTitle?: string;
1111
1137
  /** List of additional contacts. */
1112
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1138
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1113
1139
  }
1114
1140
  export interface ContactsRet {
1115
1141
  /** Along with `FullName`, `ListID` is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a `ListID`. A `ListID` is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same `ListID`, and a customer could not have the same `ListID` as an employee (because Customer and Employee are both name lists). But a customer could have the same `ListID` as a non-inventory item. */
@@ -1133,7 +1159,7 @@ export interface ContactsRet {
1133
1159
  /** The job title of a customer, vendor, employee, or person on the “other names” list. */
1134
1160
  JobTitle?: string;
1135
1161
  /** List of additional contacts. */
1136
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1162
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1137
1163
  }
1138
1164
  export interface CreditCardInfo {
1139
1165
  /** 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 +1179,9 @@ export interface CurrencyFilter {
1153
1179
  /** 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
1180
 
1155
1181
  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, ...string[]];
1182
+ ListID?: string[] | string;
1157
1183
  /** 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, ...string[]];
1184
+ FullName?: string[] | string;
1159
1185
  }
1160
1186
  export interface CurrencyRef {
1161
1187
  /** 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 +1215,7 @@ export interface CustomerAdd {
1189
1215
  /** 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
1216
  ShipAddress?: ShipAddress;
1191
1217
  /** List of ship to addresses. */
1192
- ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1218
+ ShipToAddress?: ShipToAddress | ShipToAddress[];
1193
1219
  /** The telephone number. */
1194
1220
  Phone?: string;
1195
1221
  /** A telephone number given as an alternative to `Phone`. */
@@ -1205,9 +1231,9 @@ export interface CustomerAdd {
1205
1231
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1206
1232
  AltContact?: string;
1207
1233
  /** List of additional contacts. */
1208
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1234
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1209
1235
  /** A list of contact records. */
1210
- Contacts?: Contacts | [Contacts, ...Contacts[]];
1236
+ Contacts?: Contacts | Contacts[];
1211
1237
  /** 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
1238
  CustomerTypeRef?: CustomerTypeRef;
1213
1239
  /** 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 +1275,7 @@ export interface CustomerAdd {
1249
1275
  /** Not supported. */
1250
1276
  Notes?: string;
1251
1277
  /** List of notes. */
1252
- AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
1278
+ AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1253
1279
  /** Preference for how invoices are delivered. */
1254
1280
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1255
1281
  /** 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 +1290,7 @@ export interface CustomerAdd {
1264
1290
  export interface CustomerAddRq {
1265
1291
  CustomerAdd: CustomerAdd;
1266
1292
  /** 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, ...string[]];
1293
+ IncludeRetElement?: string[] | string;
1268
1294
  }
1269
1295
  export interface CustomerAddRs {
1270
1296
  CustomerRet?: CustomerRet;
@@ -1300,7 +1326,7 @@ export interface CustomerMod {
1300
1326
  /** 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
1327
  ShipAddress?: ShipAddress;
1302
1328
  /** List of ship to addresses. */
1303
- ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1329
+ ShipToAddress?: ShipToAddress | ShipToAddress[];
1304
1330
  /** The telephone number. */
1305
1331
  Phone?: string;
1306
1332
  /** A telephone number given as an alternative to `Phone`. */
@@ -1316,9 +1342,9 @@ export interface CustomerMod {
1316
1342
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1317
1343
  AltContact?: string;
1318
1344
  /** List of additional contacts. */
1319
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1345
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1320
1346
  /** A list of contact records. */
1321
- ContactsMod?: ContactsMod | [ContactsMod, ...ContactsMod[]];
1347
+ ContactsMod?: ContactsMod | ContactsMod[];
1322
1348
  /** 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
1349
  CustomerTypeRef?: CustomerTypeRef;
1324
1350
  /** 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 +1382,7 @@ export interface CustomerMod {
1356
1382
  /** Not supported. */
1357
1383
  Notes?: string;
1358
1384
  /** List of notes. */
1359
- AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
1385
+ AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1360
1386
  /** Preference for how invoices are delivered. */
1361
1387
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1362
1388
  /** 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 +1395,7 @@ export interface CustomerMod {
1369
1395
  export interface CustomerModRq {
1370
1396
  CustomerMod: CustomerMod;
1371
1397
  /** 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, ...string[]];
1398
+ IncludeRetElement?: string[] | string;
1373
1399
  }
1374
1400
  export interface CustomerModRs {
1375
1401
  CustomerRet?: CustomerRet;
@@ -1377,9 +1403,9 @@ export interface CustomerModRs {
1377
1403
  }
1378
1404
  export interface CustomerQueryRq {
1379
1405
  /** 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, ...string[]];
1406
+ ListID?: string[] | string;
1381
1407
  /** 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, ...string[]];
1408
+ FullName?: string[] | string;
1383
1409
  /** 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
1410
  MaxReturned?: number;
1385
1411
  /** 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,9 +1425,9 @@ export interface CustomerQueryRq {
1399
1425
  /** Filter according to class. */
1400
1426
  ClassFilter?: ClassFilter;
1401
1427
  /** 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, ...string[]];
1428
+ IncludeRetElement?: string[] | string;
1403
1429
  /** 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, ...string[]];
1430
+ OwnerID?: string[] | string;
1405
1431
  }
1406
1432
  export interface CustomerQueryRs {
1407
1433
  CustomerRet: [CustomerRet, ...CustomerRet[]];
@@ -1454,7 +1480,7 @@ export interface CustomerRet {
1454
1480
  /** 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
1481
  ShipAddressBlock?: ShipAddressBlock;
1456
1482
  /** List of ship to addresses. */
1457
- ShipToAddress?: ShipToAddress | [ShipToAddress, ...ShipToAddress[]];
1483
+ ShipToAddress?: ShipToAddress | ShipToAddress[];
1458
1484
  /** The telephone number. */
1459
1485
  Phone?: string;
1460
1486
  /** A telephone number given as an alternative to `Phone`. */
@@ -1470,9 +1496,9 @@ export interface CustomerRet {
1470
1496
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
1471
1497
  AltContact?: string;
1472
1498
  /** List of additional contacts. */
1473
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1499
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1474
1500
  /** A list of contact records. */
1475
- ContactsRet?: ContactsRet | [ContactsRet, ...ContactsRet[]];
1501
+ ContactsRet?: ContactsRet | ContactsRet[];
1476
1502
  /** 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
1503
  CustomerTypeRef?: CustomerTypeRef;
1478
1504
  /** 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 +1540,7 @@ export interface CustomerRet {
1514
1540
  /** Not supported. */
1515
1541
  Notes?: string;
1516
1542
  /** List of notes. */
1517
- AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
1543
+ AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1518
1544
  /** Preference for how invoices are delivered. */
1519
1545
  PreferredDeliveryMethod?: PreferredDeliveryMethod;
1520
1546
  /** 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 +1552,7 @@ export interface CustomerRet {
1526
1552
  /** 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
1553
  CurrencyRef?: CurrencyRef;
1528
1554
  /** 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, ...DataExtRet[]];
1555
+ DataExtRet?: DataExtRet | DataExtRet[];
1530
1556
  }
1531
1557
  export interface CustomerTypeRef {
1532
1558
  /** 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. */
@@ -1562,6 +1588,205 @@ export interface DataExtRet {
1562
1588
  }
1563
1589
  export declare type DataExtType = "AMTTYPE" | "DATETIMETYPE" | "INTTYPE" | "PERCENTTYPE" | "PRICETYPE" | "QUANTYPE" | "STR255TYPE" | "STR1024TYPE";
1564
1590
  export declare type DateMacro = "All" | "LastCalendarQuarter" | "LastCalendarQuarterToDate" | "LastCalendarYear" | "LastCalendarYearToDate" | "LastFiscalQuarter" | "LastFiscalQuarterToDate" | "LastFiscalYear" | "LastFiscalYearToDate" | "LastMonth" | "LastMonthToDate" | "LastWeek" | "LastWeekToDate" | "NextCalendarQuarter" | "NextCalendarYear" | "NextFiscalQuarter" | "NextFiscalYear" | "NextFourWeeks" | "NextMonth" | "NextWeek" | "ThisCalendarQuarter" | "ThisCalendarQuarterToDate" | "ThisCalendarYear" | "ThisCalendarYearToDate" | "ThisFiscalQuarter" | "ThisFiscalQuarterToDate" | "ThisFiscalYear" | "ThisFiscalYearToDate" | "ThisMonth" | "ThisMonthToDate" | "ThisWeek" | "ThisWeekToDate" | "Today" | "Yesterday";
1591
+ export interface DepositAdd {
1592
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
1593
+ TxnDate?: string;
1594
+ /** Refers to the account where these funds will be (or have been) deposited. In a `ReceivePaymentAdd` request, the default is Undeposited Funds if this is not included in the request. In a request, if a `DepositToAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1595
+ DepositToAccountRef: DepositToAccountRef;
1596
+ /** Additional information. */
1597
+ Memo?: string;
1598
+ /** This aggregate is included if there is cash back from this deposit. `AccountRef` indicates where the cash back `Amount` is going (for example, into a petty cash account). */
1599
+ CashBackInfoAdd?: CashBackInfoAdd;
1600
+ /** 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. */
1601
+ CurrencyRef?: CurrencyRef;
1602
+ /** 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.) */
1603
+ ExchangeRate?: number;
1604
+ /** Allows for the attachment of a user defined GUID value. */
1605
+ ExternalGUID?: string;
1606
+ /** A list of deposit lines, each representing a deposit into the account referred to by `DepositToAccountRef`. Each deposit line is added as either a received payment (in an `IPaymentLine` object) or as a transfer from one account into another (in an `IDepositInfo` object). */
1607
+ DepositLineAdd?: DepositLineAdd | DepositLineAdd[];
1608
+ }
1609
+ export interface DepositAddRq {
1610
+ DepositAdd: DepositAdd;
1611
+ /** 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. */
1612
+ IncludeRetElement?: string[] | string;
1613
+ }
1614
+ export interface DepositAddRs {
1615
+ DepositRet?: DepositRet;
1616
+ ErrorRecovery?: ErrorRecovery;
1617
+ }
1618
+ export interface DepositLineAdd {
1619
+ /** For the `PaymentTxnID`, use either of these two values:A `TxnID` value exactly as it is returned by the `ReceivePaymentToDepositQuery` request, or A `TxnID` value exactly as it is returned in a `ReceivePaymentAdd` response. If you do not include a `PaymentTxnLineID` and include a `PaymentTxnID` for a transaction that includes payment lines, only the first payment line from that transaction will be deposited. */
1620
+ PaymentTxnID: string;
1621
+ /** For the `PaymentTxnLineID`, use a `TxnLineID` value exactly as it has been returned by the `ReceivePaymentToDepositQuery` request. If you do not include a `PaymentTxnLineID` and include a `PaymentTxnID` for a transaction that includes payment lines, only the first payment line from that transaction will be deposited. */
1622
+ PaymentTxnLineID?: string;
1623
+ /** Depost line memo additional information. */
1624
+ OverrideMemo?: string;
1625
+ /** Deposit line check number. */
1626
+ OverrideCheckNumber?: string;
1627
+ /** Deposit line class reference. */
1628
+ OverrideClassRef?: OverrideClassRef;
1629
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
1630
+ EntityRef?: EntityRef;
1631
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
1632
+ AccountRef: AccountRef;
1633
+ /** Additional information about this deposit line. */
1634
+ Memo?: string;
1635
+ /** The check number of a check that a QuickBooks user writes or receives from someone else. */
1636
+ CheckNumber?: string;
1637
+ /** A customer’s payment method, for example, cash, check, or Master Card. A `PaymentMethodRef` aggregate refers to an item on the `PaymentMethod` list. In a request, if a `PaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a `SalesReceiptAdd`, `ReceivePaymentAdd`, or `ARRefundCreditCard` request that contains credit card transaction data supplied from QBMS transaction responses, you must specify the payment method, and the payment method must be a credit card type. */
1638
+ PaymentMethodRef?: PaymentMethodRef;
1639
+ /** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
1640
+ ClassRef?: ClassRef;
1641
+ /** A monetary amount. */
1642
+ Amount?: string;
1643
+ }
1644
+ export interface DepositLineMod {
1645
+ /** 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. */
1646
+ TxnLineID: string;
1647
+ /** For the `PaymentTxnID`, use either of these two values:A `TxnID` value exactly as it is returned by the `ReceivePaymentToDepositQuery` request, or A `TxnID` value exactly as it is returned in a `ReceivePaymentAdd` response. If you do not include a `PaymentTxnLineID` and include a `PaymentTxnID` for a transaction that includes payment lines, only the first payment line from that transaction will be deposited. */
1648
+ PaymentTxnID: string;
1649
+ /** For the `PaymentTxnLineID`, use a `TxnLineID` value exactly as it has been returned by the `ReceivePaymentToDepositQuery` request. If you do not include a `PaymentTxnLineID` and include a `PaymentTxnID` for a transaction that includes payment lines, only the first payment line from that transaction will be deposited. */
1650
+ PaymentTxnLineID?: string;
1651
+ /** Depost line memo additional information. */
1652
+ OverrideMemo?: string;
1653
+ /** Deposit line check number. */
1654
+ OverrideCheckNumber?: string;
1655
+ /** Deposit line class reference. */
1656
+ OverrideClassRef?: OverrideClassRef;
1657
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
1658
+ EntityRef?: EntityRef;
1659
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
1660
+ AccountRef?: AccountRef;
1661
+ /** Additional information about this deposit line. */
1662
+ Memo?: string;
1663
+ /** The check number of a check that a QuickBooks user writes or receives from someone else. */
1664
+ CheckNumber?: string;
1665
+ /** A customer’s payment method, for example, cash, check, or Master Card. A `PaymentMethodRef` aggregate refers to an item on the `PaymentMethod` list. In a request, if a `PaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a `SalesReceiptAdd`, `ReceivePaymentAdd`, or `ARRefundCreditCard` request that contains credit card transaction data supplied from QBMS transaction responses, you must specify the payment method, and the payment method must be a credit card type. */
1666
+ PaymentMethodRef?: PaymentMethodRef;
1667
+ /** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
1668
+ ClassRef?: ClassRef;
1669
+ /** A monetary amount. */
1670
+ Amount?: string;
1671
+ }
1672
+ export interface DepositLineRet {
1673
+ /** The type of transaction. */
1674
+ TxnType?: TxnType;
1675
+ /** 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. */
1676
+ TxnID?: string;
1677
+ /** 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. */
1678
+ TxnLineID: string;
1679
+ /** For the `PaymentTxnLineID`, use a `TxnLineID` value exactly as it has been returned by the `ReceivePaymentToDepositQuery` request. If you do not include a `PaymentTxnLineID` and include a `PaymentTxnID` for a transaction that includes payment lines, only the first payment line from that transaction will be deposited. */
1680
+ PaymentTxnLineID?: string;
1681
+ /** A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a `BillToPayQuery` message, `EntityRef` refers to the vendor name.In `JournalCreditLine` and `JournalDebitLine` messages for A/R accounts, `EntityRef` must refer to a customer, or else the transaction will not be recorded. For A/P accounts the `EntityRef` must refer to a vendor, or else the transaction will not be recorded.In a `TimeTracking` message, `EntityRef` cannot refer to a customer, only to an employee, vendor, or person on the “other names” list whose time is being tracked. */
1682
+ EntityRef?: EntityRef;
1683
+ /** The Account list is the company file’s list of accounts. An `AccountRef` aggregate refers to one of these accounts. (If an `AccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.) Special cases to note:In a Check message, `AccountRef` refers to the account from which the funds are being drawn for this check, for example, Checking or Savings.In an `ExpenseLineAdd` message, you must include `AccountRef` if the “Require accounts” check box is selected in the QuickBooks Accounting preferences. (It is selected by default.) In a `CreditCardCredit` message, `AccountRef` refers to the bank account or credit card account to which the credit is applied.In a `CreditCardCharge` message, `AccountRef` refers to the bank or credit card company to whom money is owed. How do you increase and decrease amounts in bank accounts? The following requests increase the balance in a bank account: Deposit Add `ReceivePaymentAdd` Journal Entry Add Sales `ReceiptAdd` The following requests decrease the balance in a bank account: `CheckAdd` Bill `PaymentCheckAdd` `JournalEntryAdd` */
1684
+ AccountRef?: AccountRef;
1685
+ /** Additional information about this deposit line. */
1686
+ Memo?: string;
1687
+ /** The check number of a check that a QuickBooks user writes or receives from someone else. */
1688
+ CheckNumber?: string;
1689
+ /** A customer’s payment method, for example, cash, check, or Master Card. A `PaymentMethodRef` aggregate refers to an item on the `PaymentMethod` list. In a request, if a `PaymentMethodRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In a `SalesReceiptAdd`, `ReceivePaymentAdd`, or `ARRefundCreditCard` request that contains credit card transaction data supplied from QBMS transaction responses, you must specify the payment method, and the payment method must be a credit card type. */
1690
+ PaymentMethodRef?: PaymentMethodRef;
1691
+ /** Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A `ClassRef` aggregate refers to one of these named classes. For example, in a `TimeTracking` message, `ClassRef` refers to the QuickBooks class into which the timed activity falls. If a `ClassRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. In an `InvoiceAdd` request, if you specify a `ClassRef` for the whole invoice, that same `ClassRef` is automatically used in the line items. If you want to clear that (that is, have NO `ClassRef` for the line item, you can clear it in the line item by simply not specifying it in the line item. */
1692
+ ClassRef?: ClassRef;
1693
+ /** A monetary amount. */
1694
+ Amount?: string;
1695
+ }
1696
+ export interface DepositMod {
1697
+ /** 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. */
1698
+ TxnID: string;
1699
+ /** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
1700
+ EditSequence: string;
1701
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
1702
+ TxnDate?: string;
1703
+ /** Refers to the account where these funds will be (or have been) deposited. In a `ReceivePaymentAdd` request, the default is Undeposited Funds if this is not included in the request. In a request, if a `DepositToAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1704
+ DepositToAccountRef?: DepositToAccountRef;
1705
+ /** Additional information. */
1706
+ Memo?: string;
1707
+ /** This aggregate is included if there is cash back from this deposit. `AccountRef` indicates where the cash back `Amount` is going (for example, into a petty cash account). */
1708
+ CashBackInfoMod?: CashBackInfoMod;
1709
+ /** 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. */
1710
+ CurrencyRef?: CurrencyRef;
1711
+ /** 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.) */
1712
+ ExchangeRate?: number;
1713
+ /** A list of deposit lines, each representing a deposit into the account referred to by `DepositToAccountRef`. Each deposit line is added as either a received payment (in an `IPaymentLine` object) or as a transfer from one account into another (in an `IDepositInfo` object). */
1714
+ DepositLineMod?: DepositLineMod | DepositLineMod[];
1715
+ }
1716
+ export interface DepositModRq {
1717
+ DepositMod: DepositMod;
1718
+ /** 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. */
1719
+ IncludeRetElement?: string[] | string;
1720
+ }
1721
+ export interface DepositModRs {
1722
+ DepositRet?: DepositRet;
1723
+ ErrorRecovery?: ErrorRecovery;
1724
+ }
1725
+ export interface DepositQueryRq {
1726
+ /** 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. */
1727
+ TxnID?: string[] | string;
1728
+ /** 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. */
1729
+ MaxReturned?: number;
1730
+ /** 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.) */
1731
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
1732
+ /** Filters according to the original transaction dates. */
1733
+ TxnDateRangeFilter?: TxnDateRangeFilter;
1734
+ /** An entity refers to a person on the QuickBooks Customer list, Vendor list, Employee list, or Other Names list. You can use an `EntityQuery` request to get information about all the entities that are set up in the QuickBooks file. In an `ARRefundCreditCard` query, this must be a customer/customer job. */
1735
+ EntityFilter?: EntityFilter;
1736
+ /** Filters according to the account name or `ListID`. If the “Use account numbers” preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for `FullName` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050. This problem will not happen if the “Use account numbers” preference is turned off in the QuickBooks file, orthe account name exactly matches the account number. (In this case, query would return the correct account either way.) To avoid this problem: Do not name an account using a number unless the number exactly matches the account’s account number. If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example `to` 2050a. */
1737
+ AccountFilter?: AccountFilter;
1738
+ /** Filters by the specified currency. */
1739
+ CurrencyFilter?: CurrencyFilter;
1740
+ /** 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. */
1741
+ IncludeLineItems?: boolean;
1742
+ /** 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. */
1743
+ IncludeRetElement?: string[] | string;
1744
+ /** 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. */
1745
+ OwnerID?: string[] | string;
1746
+ }
1747
+ export interface DepositQueryRs {
1748
+ DepositRet: [DepositRet, ...DepositRet[]];
1749
+ }
1750
+ export interface DepositRet {
1751
+ /** 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. */
1752
+ TxnID: string;
1753
+ /** Time the object was created. */
1754
+ TimeCreated: string;
1755
+ /** Time the object was last modified. */
1756
+ TimeModified: string;
1757
+ /** A number that the server generates and assigns to this object. Every time the object is changed, the server will change its `EditSequence` value. When you try to modify a list object, you must provide its `EditSequence`. The server compares the `EditSequence` you provide with the `EditSequence` in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because `EditSequence` is only used to check whether two objects match, there is no reason to interpret its value. */
1758
+ EditSequence: string;
1759
+ /** An identifying number for this transaction. */
1760
+ TxnNumber?: number;
1761
+ /** The date of the transaction. In some cases, if you leave `TxnDate` out of an -Add message, QuickBooks will prefill `TxnDate` with the date of the last-saved transaction of the same type. */
1762
+ TxnDate: string;
1763
+ /** Refers to the account where these funds will be (or have been) deposited. In a `ReceivePaymentAdd` request, the default is Undeposited Funds if this is not included in the request. In a request, if a `DepositToAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1764
+ DepositToAccountRef: DepositToAccountRef;
1765
+ /** Additional information. */
1766
+ Memo?: string;
1767
+ /** The sum of all the deposited amounts. */
1768
+ DepositTotal?: string;
1769
+ /** 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. */
1770
+ CurrencyRef?: CurrencyRef;
1771
+ /** 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.) */
1772
+ ExchangeRate?: number;
1773
+ /** Amount of the deposit in units of the home currency. */
1774
+ DepositTotalInHomeCurrency?: string;
1775
+ /** This aggregate is included if there is cash back from this deposit. `AccountRef` indicates where the cash back `Amount` is going (for example, into a petty cash account). */
1776
+ CashBackInfoRet?: CashBackInfoRet;
1777
+ /** Allows for the attachment of a user defined GUID value. */
1778
+ ExternalGUID?: string;
1779
+ /** A list of deposit lines, each representing a deposit into the account referred to by `DepositToAccountRef`. Each deposit line is added as either a received payment (in an `IPaymentLine` object) or as a transfer from one account into another (in an `IDepositInfo` object). */
1780
+ DepositLineRet?: DepositLineRet | DepositLineRet[];
1781
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1782
+ DataExtRet?: DataExtRet | DataExtRet[];
1783
+ }
1784
+ export interface DepositToAccountRef {
1785
+ /** 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. */
1786
+ ListID?: string;
1787
+ /** `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. */
1788
+ FullName?: string;
1789
+ }
1565
1790
  export declare type Disabled = "No" | "Yes";
1566
1791
  export interface DiscountAccountRef {
1567
1792
  /** 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 +1856,7 @@ export interface EmployeeAdd {
1631
1856
  /** E-mail address. */
1632
1857
  Email?: string;
1633
1858
  /** List of additional contacts. */
1634
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1859
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1635
1860
  /** Emergency `Contact` information for the employee. */
1636
1861
  EmergencyContacts?: EmergencyContacts;
1637
1862
  /** `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 +1900,7 @@ export interface EmployeeAdd {
1675
1900
  /** Additional information. */
1676
1901
  Notes?: string;
1677
1902
  /** List of notes. */
1678
- AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
1903
+ AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
1679
1904
  /** 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
1905
  BillingRateRef?: BillingRateRef;
1681
1906
  /** Pay information for this employee. */
@@ -1698,7 +1923,7 @@ export interface EmployeeAddress {
1698
1923
  export interface EmployeeAddRq {
1699
1924
  EmployeeAdd: EmployeeAdd;
1700
1925
  /** 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, ...string[]];
1926
+ IncludeRetElement?: string[] | string;
1702
1927
  }
1703
1928
  export interface EmployeeAddRs {
1704
1929
  EmployeeRet?: EmployeeRet;
@@ -1748,7 +1973,7 @@ export interface EmployeeMod {
1748
1973
  /** E-mail address. */
1749
1974
  Email?: string;
1750
1975
  /** List of additional contacts. */
1751
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
1976
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1752
1977
  /** Emergency `Contact` information for the employee. */
1753
1978
  EmergencyContacts?: EmergencyContacts;
1754
1979
  /** `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 +2015,7 @@ export interface EmployeeMod {
1790
2015
  /** Additional information. */
1791
2016
  Notes?: string;
1792
2017
  /** List of notes. */
1793
- AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
2018
+ AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
1794
2019
  /** 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
2020
  BillingRateRef?: BillingRateRef;
1796
2021
  /** Pay information for this employee. */
@@ -1799,7 +2024,7 @@ export interface EmployeeMod {
1799
2024
  export interface EmployeeModRq {
1800
2025
  EmployeeMod: EmployeeMod;
1801
2026
  /** 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, ...string[]];
2027
+ IncludeRetElement?: string[] | string;
1803
2028
  }
1804
2029
  export interface EmployeeModRs {
1805
2030
  EmployeeRet?: EmployeeRet;
@@ -1813,7 +2038,7 @@ export interface EmployeePayrollInfo {
1813
2038
  /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
1814
2039
  ClearEarnings?: boolean;
1815
2040
  /** 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, ...Earnings[]];
2041
+ Earnings?: Earnings | Earnings[];
1817
2042
  /** 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
2043
  IsUsingTimeDataToCreatePaychecks?: boolean;
1819
2044
  /** Indicates whether time data is used to create paychecks for this employee. */
@@ -1831,7 +2056,7 @@ export interface EmployeePayrollInfoMod {
1831
2056
  /** If `ClearEarnings` is set to true, the earnings will be deleted for this employee. */
1832
2057
  ClearEarnings?: boolean;
1833
2058
  /** 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, ...Earnings[]];
2059
+ Earnings?: Earnings | Earnings[];
1835
2060
  /** 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
2061
  IsUsingTimeDataToCreatePaychecks?: boolean;
1837
2062
  /** Indicates whether time data is used to create paychecks for this employee. */
@@ -1843,9 +2068,9 @@ export interface EmployeePayrollInfoMod {
1843
2068
  }
1844
2069
  export interface EmployeeQueryRq {
1845
2070
  /** 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, ...string[]];
2071
+ ListID?: string[] | string;
1847
2072
  /** 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, ...string[]];
2073
+ FullName?: string[] | string;
1849
2074
  /** 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
2075
  MaxReturned?: number;
1851
2076
  /** 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,9 +2084,9 @@ export interface EmployeeQueryRq {
1859
2084
  /** Filters according to the object’s `Name`. */
1860
2085
  NameRangeFilter?: NameRangeFilter;
1861
2086
  /** 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, ...string[]];
2087
+ IncludeRetElement?: string[] | string;
1863
2088
  /** 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, ...string[]];
2089
+ OwnerID?: string[] | string;
1865
2090
  }
1866
2091
  export interface EmployeeQueryRs {
1867
2092
  EmployeeRet: [EmployeeRet, ...EmployeeRet[]];
@@ -1918,7 +2143,7 @@ export interface EmployeeRet {
1918
2143
  /** E-mail address. */
1919
2144
  Email?: string;
1920
2145
  /** List of additional contacts. */
1921
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
2146
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
1922
2147
  /** Emergency `Contact` information for the employee. */
1923
2148
  EmergencyContacts?: EmergencyContacts;
1924
2149
  /** `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 +2187,7 @@ export interface EmployeeRet {
1962
2187
  /** Additional information. */
1963
2188
  Notes?: string;
1964
2189
  /** List of notes. */
1965
- AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
2190
+ AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
1966
2191
  /** 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
2192
  BillingRateRef?: BillingRateRef;
1968
2193
  /** Pay information for this employee. */
@@ -1970,7 +2195,7 @@ export interface EmployeeRet {
1970
2195
  /** Allows for the attachment of a user defined GUID value. */
1971
2196
  ExternalGUID?: string;
1972
2197
  /** 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, ...DataExtRet[]];
2198
+ DataExtRet?: DataExtRet | DataExtRet[];
1974
2199
  }
1975
2200
  /** @default: Regular */
1976
2201
  export declare type EmployeeType = "Officer" | "Owner" | "Regular" | "Statutory";
@@ -1978,9 +2203,9 @@ export interface EntityFilter {
1978
2203
  /** 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
2204
 
1980
2205
  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, ...string[]];
2206
+ ListID?: string[] | string;
1982
2207
  /** 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, ...string[]];
2208
+ FullName?: string[] | string;
1984
2209
  /** Allows you to filter for data that relates to the specified object and its descendants. */
1985
2210
  ListIDWithChildren?: string;
1986
2211
  /** 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 +2291,7 @@ export interface ExpenseLineAdd {
2066
2291
  /** 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
2292
  SalesRepRef?: SalesRepRef;
2068
2293
  /** 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, ...DataExt[]];
2294
+ DataExt?: DataExt | DataExt[];
2070
2295
  }
2071
2296
  export interface ExpenseLineMod {
2072
2297
  /** 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 +2397,7 @@ export interface ExpenseLineRet {
2172
2397
  /** 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
2398
  SalesRepRef?: SalesRepRef;
2174
2399
  /** 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, ...DataExtRet[]];
2400
+ DataExtRet?: DataExtRet | DataExtRet[];
2176
2401
  }
2177
2402
  export declare type Gender = "Female" | "Male";
2178
2403
  export interface IncomeAccountRef {
@@ -2205,7 +2430,7 @@ export interface ItemGroupLineAdd {
2205
2430
  /** Location within the Inventory Site. */
2206
2431
  InventorySiteLocationRef?: InventorySiteLocationRef;
2207
2432
  /** 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, ...DataExt[]];
2433
+ DataExt?: DataExt | DataExt[];
2209
2434
  }
2210
2435
  export interface ItemGroupLineMod {
2211
2436
  /** 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 +2446,7 @@ export interface ItemGroupLineMod {
2221
2446
  /** 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
2447
  OverrideUOMSetRef?: OverrideUOMSetRef;
2223
2448
  /** 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, ...ItemLineMod[]];
2449
+ ItemLineMod?: ItemLineMod | ItemLineMod[];
2225
2450
  }
2226
2451
  export interface ItemGroupLineRet {
2227
2452
  /** 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 +2466,9 @@ export interface ItemGroupLineRet {
2241
2466
  /** 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
2467
  TotalAmount: string;
2243
2468
  /** 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, ...ItemLineRet[]];
2469
+ ItemLineRet?: ItemLineRet | ItemLineRet[];
2245
2470
  /** 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, ...DataExt[]];
2471
+ DataExt?: DataExt | DataExt[];
2247
2472
  }
2248
2473
  export interface ItemGroupRef {
2249
2474
  /** 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 +2524,7 @@ export interface ItemLineAdd {
2299
2524
  /** A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A `SalesRepRef` refers to a person on the `SalesRep` list. In a request, if a `SalesRepRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
2300
2525
  SalesRepRef?: SalesRepRef;
2301
2526
  /** 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, ...DataExt[]];
2527
+ DataExt?: DataExt | DataExt[];
2303
2528
  }
2304
2529
  export interface ItemLineMod {
2305
2530
  /** 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 +2632,7 @@ export interface ItemLineRet {
2407
2632
  /** 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
2633
  SalesRepRef?: SalesRepRef;
2409
2634
  /** 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, ...DataExtRet[]];
2635
+ DataExtRet?: DataExtRet | DataExtRet[];
2411
2636
  }
2412
2637
  export interface ItemRef {
2413
2638
  /** 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 +2673,7 @@ export interface ItemServiceAdd {
2448
2673
  export interface ItemServiceAddRq {
2449
2674
  ItemServiceAdd: ItemServiceAdd;
2450
2675
  /** 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, ...string[]];
2676
+ IncludeRetElement?: string[] | string;
2452
2677
  }
2453
2678
  export interface ItemServiceAddRs {
2454
2679
  ItemServiceRet?: ItemServiceRet;
@@ -2485,7 +2710,7 @@ export interface ItemServiceMod {
2485
2710
  export interface ItemServiceModRq {
2486
2711
  ItemServiceMod: ItemServiceMod;
2487
2712
  /** 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, ...string[]];
2713
+ IncludeRetElement?: string[] | string;
2489
2714
  }
2490
2715
  export interface ItemServiceModRs {
2491
2716
  ItemServiceRet?: ItemServiceRet;
@@ -2493,9 +2718,9 @@ export interface ItemServiceModRs {
2493
2718
  }
2494
2719
  export interface ItemServiceQueryRq {
2495
2720
  /** 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, ...string[]];
2721
+ ListID?: string[] | string;
2497
2722
  /** 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, ...string[]];
2723
+ FullName?: string[] | string;
2499
2724
  /** 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
2725
  MaxReturned?: number;
2501
2726
  /** 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,9 +2736,9 @@ export interface ItemServiceQueryRq {
2511
2736
  /** Filters according to the object’s class. */
2512
2737
  ClassFilter?: ClassFilter;
2513
2738
  /** 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, ...string[]];
2739
+ IncludeRetElement?: string[] | string;
2515
2740
  /** 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, ...string[]];
2741
+ OwnerID?: string[] | string;
2517
2742
  }
2518
2743
  export interface ItemServiceQueryRs {
2519
2744
  ItemServiceRet: [ItemServiceRet, ...ItemServiceRet[]];
@@ -2560,7 +2785,7 @@ export interface ItemServiceRet {
2560
2785
  /** Allows for the attachment of a user defined GUID value. */
2561
2786
  ExternalGUID?: string;
2562
2787
  /** 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, ...DataExtRet[]];
2788
+ DataExtRet?: DataExtRet | DataExtRet[];
2564
2789
  }
2565
2790
  /** @default: None */
2566
2791
  export declare type JobStatus = "Awarded" | "Closed" | "InProgress" | "None" | "NotAwarded" | "Pending";
@@ -2631,7 +2856,7 @@ export interface JournalEntryAdd {
2631
2856
  export interface JournalEntryAddRq {
2632
2857
  JournalEntryAdd: JournalEntryAdd;
2633
2858
  /** 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, ...string[]];
2859
+ IncludeRetElement?: string[] | string;
2635
2860
  }
2636
2861
  export interface JournalEntryAddRs {
2637
2862
  JournalEntryRet?: JournalEntryRet;
@@ -2655,12 +2880,12 @@ export interface JournalEntryMod {
2655
2880
  /** 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
2881
  ExchangeRate?: number;
2657
2882
  /** `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, ...JournalLineMod[]];
2883
+ JournalLineMod?: JournalLineMod | JournalLineMod[];
2659
2884
  }
2660
2885
  export interface JournalEntryModRq {
2661
2886
  JournalEntryMod: JournalEntryMod;
2662
2887
  /** You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a `City` within an `Address`: you must specify `Address` and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the `DataExtRet` element and you must supply the `OwnerID` set to either a value of 0 (custom data) or the GUID for the private data. */
2663
- IncludeRetElement?: string | [string, ...string[]];
2888
+ IncludeRetElement?: string[] | string;
2664
2889
  }
2665
2890
  export interface JournalEntryModRs {
2666
2891
  JournalEntryRet?: JournalEntryRet;
@@ -2668,11 +2893,11 @@ export interface JournalEntryModRs {
2668
2893
  }
2669
2894
  export interface JournalEntryQueryRq {
2670
2895
  /** 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, ...string[]];
2896
+ TxnID?: string[] | string;
2672
2897
  /** 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, ...string[]];
2898
+ RefNumber?: string[] | string;
2674
2899
  /** 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, ...string[]];
2900
+ RefNumberCaseSensitive?: string[] | string;
2676
2901
  /** 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
2902
  MaxReturned?: number;
2678
2903
  /** 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,9 +2917,9 @@ export interface JournalEntryQueryRq {
2692
2917
  /** 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
2918
  IncludeLineItems?: boolean;
2694
2919
  /** 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, ...string[]];
2920
+ IncludeRetElement?: string[] | string;
2696
2921
  /** 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, ...string[]];
2922
+ OwnerID?: string[] | string;
2698
2923
  }
2699
2924
  export interface JournalEntryQueryRs {
2700
2925
  JournalEntryRet: [JournalEntryRet, ...JournalEntryRet[]];
@@ -2731,7 +2956,7 @@ export interface JournalEntryRet {
2731
2956
  /** 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
2957
  JournalCreditLine?: JournalCreditLine;
2733
2958
  /** 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, ...DataExtRet[]];
2959
+ DataExtRet?: DataExtRet | DataExtRet[];
2735
2960
  }
2736
2961
  export interface JournalLineMod {
2737
2962
  /** 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. */
@@ -2820,6 +3045,12 @@ export interface NameRangeFilter {
2820
3045
  }
2821
3046
  export declare type OnFile = "No" | "Yes";
2822
3047
  export declare type Operator = "Equal" | "GreaterThan" | "GreaterThanEqual" | "LessThan" | "LessThanEqual";
3048
+ export interface OverrideClassRef {
3049
+ /** 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. */
3050
+ ListID?: string;
3051
+ /** `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. */
3052
+ FullName?: string;
3053
+ }
2823
3054
  export interface OverrideItemAccountRef {
2824
3055
  /** 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. */
2825
3056
  ListID?: string;
@@ -2847,6 +3078,12 @@ export interface PayeeEntityRef {
2847
3078
  /** `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. */
2848
3079
  FullName?: string;
2849
3080
  }
3081
+ export interface PaymentMethodRef {
3082
+ /** 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. */
3083
+ ListID?: string;
3084
+ /** `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. */
3085
+ FullName?: string;
3086
+ }
2850
3087
  export declare type PayPeriod = "Biweekly" | "Daily" | "Monthly" | "Quarterly" | "Semimonthly" | "Weekly" | "Yearly";
2851
3088
  export interface PayrollItemWageRef {
2852
3089
  /** 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. */
@@ -3145,7 +3382,7 @@ export interface TimeTrackingAdd {
3145
3382
  export interface TimeTrackingAddRq {
3146
3383
  TimeTrackingAdd: TimeTrackingAdd;
3147
3384
  /** 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, ...string[]];
3385
+ IncludeRetElement?: string[] | string;
3149
3386
  }
3150
3387
  export interface TimeTrackingAddRs {
3151
3388
  TimeTrackingRet?: TimeTrackingRet;
@@ -3153,9 +3390,9 @@ export interface TimeTrackingAddRs {
3153
3390
  }
3154
3391
  export interface TimeTrackingEntityFilter {
3155
3392
  /** 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, ...string[]];
3393
+ ListID?: string[] | string;
3157
3394
  /** 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, ...string[]];
3395
+ FullName?: string[] | string;
3159
3396
  }
3160
3397
  export interface TimeTrackingMod {
3161
3398
  /** 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 +3421,7 @@ export interface TimeTrackingMod {
3184
3421
  export interface TimeTrackingModRq {
3185
3422
  TimeTrackingMod: TimeTrackingMod;
3186
3423
  /** 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, ...string[]];
3424
+ IncludeRetElement?: string[] | string;
3188
3425
  }
3189
3426
  export interface TimeTrackingModRs {
3190
3427
  TimeTrackingRet?: TimeTrackingRet;
@@ -3192,7 +3429,7 @@ export interface TimeTrackingModRs {
3192
3429
  }
3193
3430
  export interface TimeTrackingQueryRq {
3194
3431
  /** 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, ...string[]];
3432
+ TxnID?: string[] | string;
3196
3433
  /** 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
3434
  MaxReturned?: number;
3198
3435
  /** 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,7 +3439,7 @@ export interface TimeTrackingQueryRq {
3202
3439
  /** Allows you to query for one or more names on the QuickBooks Vendor list, Employee list, or Other Names list. */
3203
3440
  TimeTrackingEntityFilter?: TimeTrackingEntityFilter;
3204
3441
  /** 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, ...string[]];
3442
+ IncludeRetElement?: string[] | string;
3206
3443
  }
3207
3444
  export interface TimeTrackingQueryRs {
3208
3445
  TimeTrackingRet: [TimeTrackingRet, ...TimeTrackingRet[]];
@@ -3329,9 +3566,9 @@ export interface VendorAdd {
3329
3566
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3330
3567
  AltContact?: string;
3331
3568
  /** List of additional contacts. */
3332
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3569
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3333
3570
  /** A list of contact records. */
3334
- Contacts?: Contacts | [Contacts, ...Contacts[]];
3571
+ Contacts?: Contacts | Contacts[];
3335
3572
  /** 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
3573
  NameOnCheck?: string;
3337
3574
  /** 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 +3576,7 @@ export interface VendorAdd {
3339
3576
  /** Additional information about this vendor. */
3340
3577
  Notes?: string;
3341
3578
  /** List of notes. */
3342
- AdditionalNotes?: AdditionalNotes | [AdditionalNotes, ...AdditionalNotes[]];
3579
+ AdditionalNotes?: AdditionalNotes | AdditionalNotes[];
3343
3580
  /** 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
3581
  VendorTypeRef?: VendorTypeRef;
3345
3582
  /** 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 +3618,7 @@ export interface VendorAdd {
3381
3618
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3382
3619
  IsTaxOnTax?: boolean;
3383
3620
  /** Expense account to prefill when you enter bills for this vendor. */
3384
- PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3621
+ PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3385
3622
  /** 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
3623
  CurrencyRef?: CurrencyRef;
3387
3624
  }
@@ -3422,7 +3659,7 @@ export interface VendorAddressBlock {
3422
3659
  export interface VendorAddRq {
3423
3660
  VendorAdd: VendorAdd;
3424
3661
  /** 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, ...string[]];
3662
+ IncludeRetElement?: string[] | string;
3426
3663
  }
3427
3664
  export interface VendorAddRs {
3428
3665
  VendorRet?: VendorRet;
@@ -3470,9 +3707,9 @@ export interface VendorMod {
3470
3707
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3471
3708
  AltContact?: string;
3472
3709
  /** List of additional contacts. */
3473
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3710
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3474
3711
  /** A list of contact records. */
3475
- ContactsMod?: ContactsMod | [ContactsMod, ...ContactsMod[]];
3712
+ ContactsMod?: ContactsMod | ContactsMod[];
3476
3713
  /** 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
3714
  NameOnCheck?: string;
3478
3715
  /** 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 +3717,7 @@ export interface VendorMod {
3480
3717
  /** Additional information about this vendor. */
3481
3718
  Notes?: string;
3482
3719
  /** List of notes. */
3483
- AdditionalNotesMod?: AdditionalNotesMod | [AdditionalNotesMod, ...AdditionalNotesMod[]];
3720
+ AdditionalNotesMod?: AdditionalNotesMod | AdditionalNotesMod[];
3484
3721
  /** 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
3722
  VendorTypeRef?: VendorTypeRef;
3486
3723
  /** 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 +3753,14 @@ export interface VendorMod {
3516
3753
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3517
3754
  IsTaxOnTax?: boolean;
3518
3755
  /** Expense account to prefill when you enter bills for this vendor. */
3519
- PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3756
+ PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3520
3757
  /** 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
3758
  CurrencyRef?: CurrencyRef;
3522
3759
  }
3523
3760
  export interface VendorModRq {
3524
3761
  VendorMod: VendorMod;
3525
3762
  /** 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, ...string[]];
3763
+ IncludeRetElement?: string[] | string;
3527
3764
  }
3528
3765
  export interface VendorModRs {
3529
3766
  VendorRet?: VendorRet;
@@ -3531,9 +3768,9 @@ export interface VendorModRs {
3531
3768
  }
3532
3769
  export interface VendorQueryRq {
3533
3770
  /** 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, ...string[]];
3771
+ ListID?: string[] | string;
3535
3772
  /** 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, ...string[]];
3773
+ FullName?: string[] | string;
3537
3774
  /** 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
3775
  MaxReturned?: number;
3539
3776
  /** 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,9 +3790,9 @@ export interface VendorQueryRq {
3553
3790
  /** Filter according to class. */
3554
3791
  ClassFilter?: ClassFilter;
3555
3792
  /** 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, ...string[]];
3793
+ IncludeRetElement?: string[] | string;
3557
3794
  /** 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, ...string[]];
3795
+ OwnerID?: string[] | string;
3559
3796
  }
3560
3797
  export interface VendorQueryRs {
3561
3798
  VendorRet: [VendorRet, ...VendorRet[]];
@@ -3616,9 +3853,9 @@ export interface VendorRet {
3616
3853
  /** The name of an alternate contact person for a vendor, customer, or “other name” entry. */
3617
3854
  AltContact?: string;
3618
3855
  /** List of additional contacts. */
3619
- AdditionalContactRef?: AdditionalContactRef | [AdditionalContactRef, ...AdditionalContactRef[]];
3856
+ AdditionalContactRef?: AdditionalContactRef | AdditionalContactRef[];
3620
3857
  /** A list of contact records. */
3621
- ContactsRet?: ContactsRet | [ContactsRet, ...ContactsRet[]];
3858
+ ContactsRet?: ContactsRet | ContactsRet[];
3622
3859
  /** 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
3860
  NameOnCheck?: string;
3624
3861
  /** 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 +3863,7 @@ export interface VendorRet {
3626
3863
  /** Additional information about this vendor. */
3627
3864
  Notes?: string;
3628
3865
  /** List of notes. */
3629
- AdditionalNotesRet?: AdditionalNotesRet | [AdditionalNotesRet, ...AdditionalNotesRet[]];
3866
+ AdditionalNotesRet?: AdditionalNotesRet | AdditionalNotesRet[];
3630
3867
  /** 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
3868
  VendorTypeRef?: VendorTypeRef;
3632
3869
  /** 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 +3903,11 @@ export interface VendorRet {
3666
3903
  /** For vendor in CA or UK, is there tax charged on top of tax. */
3667
3904
  IsTaxOnTax?: boolean;
3668
3905
  /** Expense account to prefill when you enter bills for this vendor. */
3669
- PrefillAccountRef?: PrefillAccountRef | [PrefillAccountRef, ...PrefillAccountRef[]];
3906
+ PrefillAccountRef?: PrefillAccountRef | PrefillAccountRef[];
3670
3907
  /** 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
3908
  CurrencyRef?: CurrencyRef;
3672
3909
  /** 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, ...DataExtRet[]];
3910
+ DataExtRet?: DataExtRet | DataExtRet[];
3674
3911
  }
3675
3912
  export interface VendorTypeRef {
3676
3913
  /** 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. */