conductor-node 9.5.0 → 9.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -314,31 +314,43 @@ export interface AppliedToTxnAdd {
314
314
  DiscountAmount?: string;
315
315
  /** 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. */
316
316
  DiscountAccountRef?: DiscountAccountRef;
317
- /** Class reference used in the Discount object */
317
+ /** Class reference used in the Discount object. */
318
318
  DiscountClassRef?: DiscountClassRef;
319
319
  }
320
320
  export interface AppliedToTxnMod {
321
- /** 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. */
321
+ /** 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.
322
+
323
+ 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. */
322
324
  TxnID: string;
323
325
  /** 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`. */
324
326
  PaymentAmount?: string;
325
- /** 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`. */
327
+ /** 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.)
328
+
329
+ 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.
330
+
331
+ If you need to retrieve which transactions were linked in the `SetCredit`, for Bill Payment, you must do a `BillQuery` and specify `IncludeLinkedTxns`. */
326
332
  SetCredit?: SetCredit | SetCredit[];
327
333
  /** Reduces the receivable amount. */
328
334
  DiscountAmount?: string;
329
335
  /** 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. */
330
336
  DiscountAccountRef?: DiscountAccountRef;
331
- /** Class reference used in the Discount object */
337
+ /** Class reference used in the Discount object. */
332
338
  DiscountClassRef?: DiscountClassRef;
333
339
  }
334
340
  export interface AppliedToTxnRet {
335
- /** 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. */
341
+ /** 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.
342
+
343
+ 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. */
336
344
  TxnID: string;
337
345
  /** The type of transaction. */
338
346
  TxnType: TxnType;
339
347
  /** 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. */
340
348
  TxnDate?: string;
341
- /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
349
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
350
+
351
+ In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
352
+
353
+ Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
342
354
  RefNumber?: string;
343
355
  /** The outstanding balance on this invoice. `BalanceRemaining` = (`Subtotal` + `SalesTaxTotal`) – `AppliedAmount`. */
344
356
  BalanceRemaining?: string;
@@ -348,9 +360,11 @@ export interface AppliedToTxnRet {
348
360
  DiscountAmount?: string;
349
361
  /** 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. */
350
362
  DiscountAccountRef?: DiscountAccountRef;
351
- /** Class reference used in the Discount object */
363
+ /** Class reference used in the Discount object. */
352
364
  DiscountClassRef?: DiscountClassRef;
353
- /** 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. */
365
+ /** 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.
366
+
367
+ 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. */
354
368
  LinkedTxn?: LinkedTxn | LinkedTxn[];
355
369
  }
356
370
  export interface ApplyCheckToTxnAdd {
@@ -911,6 +925,180 @@ export interface BillRet {
911
925
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
912
926
  DataExtRet?: DataExtRet | DataExtRet[];
913
927
  }
928
+ export type BudgetCriterion = "Accounts" | "AccountsAndClasses" | "AccountsAndCustomers";
929
+ export interface BudgetSummaryReportQueryRq {
930
+ /** The type of budget report being queried. */
931
+ BudgetSummaryReportType: BudgetSummaryReportType;
932
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
933
+ DisplayReport?: boolean;
934
+ /** Specify the fiscal year of the budget to be queried. There can only be one balance sheet budget for each fiscal year, one profit and loss (P&L) by account budget per fiscal year, and one profit and loss (P&L) by account and customer budget per fiscal year. When Fiscal year is not the current year, the report returns the data for the full fiscal year. When Fiscal year is the current year, the report only returns year to date data. */
935
+ FiscalYear: number;
936
+ /** What this budget covers. */
937
+ BudgetCriterion?: BudgetCriterion;
938
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
939
+ ReportPeriod?: ReportPeriod;
940
+ /** The time period covered by this report. */
941
+ ReportDateMacro?: ReportDateMacro;
942
+ /** Allows you to query for a specified class. 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. */
943
+ ReportClassFilter?: ReportClassFilter;
944
+ /** `SummarizeBudgetColumnsBy` determines which data the report calculates and how the columns will be labeled across the top of the report. */
945
+ SummarizeBudgetColumnsBy?: SummarizeBudgetColumnsBy;
946
+ /** How you want rows to be labeled in the report. For example, if you set the value to `sbrbAccount`, the report’s row labels might be “Checking,” “Savings,” and so on. */
947
+ SummarizeBudgetRowsBy?: SummarizeBudgetRowsBy;
948
+ }
949
+ export interface BudgetSummaryReportQueryRs {
950
+ ReportRet: ReportRet[];
951
+ }
952
+ export type BudgetSummaryReportType = "BalanceSheetBudgetOverview" | "BalanceSheetBudgetVsActual" | "ProfitAndLossBudgetOverview" | "ProfitAndLossBudgetPerformance" | "ProfitAndLossBudgetVsActual";
953
+ export interface BuildAssemblyAdd {
954
+ /** An inventory assembly item is one that is assembled or manufactured from inventory items. The items and/or assemblies that make up the assembly are called components. For Premier, an assembly can have a maximum of 100 components. For Enterprise, the maximum is 500 components. */
955
+ ItemInventoryAssemblyRef: ItemInventoryAssemblyRef;
956
+ /** Site where inventory is located. */
957
+ InventorySiteRef?: InventorySiteRef;
958
+ /** Location within the Inventory Site */
959
+ InventorySiteLocationRef?: InventorySiteLocationRef;
960
+ /** The serial number of the asset. */
961
+ SerialNumber?: string;
962
+ /** The lot number of the asset. */
963
+ LotNumber?: string;
964
+ /** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
965
+ ExpirationDateForSerialLotNumber?: string;
966
+ /** 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. */
967
+ TxnDate?: string;
968
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
969
+ RefNumber?: string;
970
+ /** Additional information. */
971
+ Memo?: string;
972
+ /** Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. */
973
+ QuantityToBuild: number;
974
+ /** Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. */
975
+ MarkPendingIfRequired?: boolean;
976
+ /** Allows for the attachment of a user defined GUID value. */
977
+ ExternalGUID?: string;
978
+ }
979
+ export interface BuildAssemblyAddRq {
980
+ BuildAssemblyAdd: BuildAssemblyAdd;
981
+ /** 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. */
982
+ IncludeRetElement?: string[] | string;
983
+ }
984
+ export interface BuildAssemblyAddRs {
985
+ BuildAssemblyRet?: BuildAssemblyRet;
986
+ ErrorRecovery?: ErrorRecovery;
987
+ }
988
+ export interface BuildAssemblyMod {
989
+ /** 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. */
990
+ TxnID: string;
991
+ /** 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. */
992
+ EditSequence: string;
993
+ /** Site where inventory is located. */
994
+ InventorySiteRef?: InventorySiteRef;
995
+ /** Location within the Inventory Site */
996
+ InventorySiteLocationRef?: InventorySiteLocationRef;
997
+ /** The serial number of the asset. */
998
+ SerialNumber?: string;
999
+ /** The lot number of the asset. */
1000
+ LotNumber?: string;
1001
+ /** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
1002
+ ExpirationDateForSerialLotNumber?: string;
1003
+ /** 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. */
1004
+ TxnDate?: string;
1005
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
1006
+ RefNumber?: string;
1007
+ /** Additional information. */
1008
+ Memo?: string;
1009
+ /** Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. */
1010
+ QuantityToBuild?: number;
1011
+ /** Allows the build assembly to be marked pending if there are insufficient quantities to complete the build assembly. */
1012
+ MarkPendingIfRequired?: boolean;
1013
+ /** Changes the transaction’s pending status from Pending to non pending. In `BuildAssembly` transactions, this effectively does the build transaction. Hence, removing the Pending status will fail if there aren’t enough components on hand for the build. */
1014
+ RemovePending?: boolean;
1015
+ }
1016
+ export interface BuildAssemblyModRq {
1017
+ BuildAssemblyMod: BuildAssemblyMod;
1018
+ /** 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. */
1019
+ IncludeRetElement?: string[] | string;
1020
+ }
1021
+ export interface BuildAssemblyModRs {
1022
+ BuildAssemblyRet?: BuildAssemblyRet;
1023
+ ErrorRecovery?: ErrorRecovery;
1024
+ }
1025
+ export interface BuildAssemblyQueryRq {
1026
+ /** 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. */
1027
+ TxnID?: string[] | string;
1028
+ /** 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. */
1029
+ RefNumber?: string[] | string;
1030
+ /** 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. */
1031
+ RefNumberCaseSensitive?: string[] | string;
1032
+ /** 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. */
1033
+ MaxReturned?: number;
1034
+ /** 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.) */
1035
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
1036
+ /** Filters according to the original transaction dates. */
1037
+ TxnDateRangeFilter?: TxnDateRangeFilter;
1038
+ /** Filters according to the item name or ID. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. */
1039
+ ItemFilter?: ItemFilter;
1040
+ /** Filters according to `RefNumber`. */
1041
+ RefNumberFilter?: RefNumberFilter;
1042
+ /** Filters according to `RefNumber`. The filtering code will do a numerical comparison (if `FromRefNumber` and `ToRefNumber` only contain digits) or a lexicographical comparison (if either `FromRefNumber` or `ToRefNumber` contain any nondigit characters). In the first situation, if you need to query for a `RefNumber` that is larger than the maximum long integer value of 2147483647, one workaround is to specify a `FromRefNumber` that is less than or equal to 2147483647 without specifying a `ToRefNumber`. */
1043
+ RefNumberRangeFilter?: RefNumberRangeFilter;
1044
+ /** Specifies whether the transaction is pending (posted) or not. */
1045
+ PendingStatus?: PendingStatus;
1046
+ /** Specify “true” if component line items for each returned transaction are to be included in the returned data. Specify “false” if the line items are not be returned. */
1047
+ IncludeComponentLineItems?: boolean;
1048
+ /** 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. */
1049
+ IncludeRetElement?: string[] | string;
1050
+ /** 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. */
1051
+ OwnerID?: string[] | string;
1052
+ }
1053
+ export interface BuildAssemblyQueryRs {
1054
+ BuildAssemblyRet: BuildAssemblyRet[];
1055
+ }
1056
+ export interface BuildAssemblyRet {
1057
+ /** 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. */
1058
+ TxnID: string;
1059
+ /** Time the object was created. */
1060
+ TimeCreated: string;
1061
+ /** Time the object was last modified. */
1062
+ TimeModified: string;
1063
+ /** 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. */
1064
+ EditSequence: string;
1065
+ /** An identifying number for this transaction. */
1066
+ TxnNumber?: number;
1067
+ /** An inventory assembly item is one that is assembled or manufactured from inventory items. The items and/or assemblies that make up the assembly are called components. For Premier, an assembly can have a maximum of 100 components. For Enterprise, the maximum is 500 components. */
1068
+ ItemInventoryAssemblyRef: ItemInventoryAssemblyRef;
1069
+ /** Site where inventory is located. */
1070
+ InventorySiteRef?: InventorySiteRef;
1071
+ /** Location within the Inventory Site */
1072
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1073
+ /** The serial number of the asset. */
1074
+ SerialNumber?: string;
1075
+ /** The lot number of the asset. */
1076
+ LotNumber?: string;
1077
+ /** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
1078
+ ExpirationDateForSerialLotNumber?: string;
1079
+ /** 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. */
1080
+ TxnDate: string;
1081
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
1082
+ RefNumber?: string;
1083
+ /** Additional information. */
1084
+ Memo?: string;
1085
+ /** If `IsPending` is set to true, the transaction in question has not been completed. Pending sales might include unpaid orders, estimates, tracked hours that have not yet been billed, or sales of back-ordered items. Within QuickBooks, you can change the `IsPending` status for a credit memo, for example, by choosing “Mark Credit `Memo` As Pending” or “Mark Credit `Memo` As Final” from the Edit menu. */
1086
+ IsPending?: boolean;
1087
+ /** Specifies the number of assemblies to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. */
1088
+ QuantityToBuild: number;
1089
+ /** Indicates the number of this assembly that can be built from the parts on hand. */
1090
+ QuantityCanBuild: number;
1091
+ /** The number of these items in inventory. `QuantityOnHand` times `AverageCost` is `TotalValue` in an inventory item list. To change the `QuantityOnHand` for an item, you would have to use `InventoryAdjustmentAdd` not an `ItemInventoryMod`. */
1092
+ QuantityOnHand: number;
1093
+ /** The number of these items that have been sold (as recorded in sales orders) but not delivered to customers. */
1094
+ QuantityOnSalesOrder: number;
1095
+ /** Allows for the attachment of a user defined GUID value. */
1096
+ ExternalGUID?: string;
1097
+ /** List of components in the assembly. */
1098
+ ComponentItemLineRet?: ComponentItemLineRet | ComponentItemLineRet[];
1099
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1100
+ DataExtRet?: DataExtRet | DataExtRet[];
1101
+ }
914
1102
  export type CardSecurityCodeMatch = "Fail" | "NotAvailable" | "Pass";
915
1103
  export interface CashBackInfoAdd {
916
1104
  /** 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` */
@@ -1516,6 +1704,26 @@ export interface CompanyRet {
1516
1704
  /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
1517
1705
  DataExtRet?: DataExtRet | DataExtRet[];
1518
1706
  }
1707
+ export interface ComponentItemLineRet {
1708
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
1709
+ ItemRef: ItemRef;
1710
+ /** Site where inventory is located. */
1711
+ InventorySiteRef?: InventorySiteRef;
1712
+ /** Location within the Inventory Site */
1713
+ InventorySiteLocationRef?: InventorySiteLocationRef;
1714
+ /** The serial number of the asset. */
1715
+ SerialNumber?: string;
1716
+ /** The lot number of the asset. */
1717
+ LotNumber?: string;
1718
+ /** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
1719
+ ExpirationDateForSerialLotNumber?: string;
1720
+ /** A descriptive text field. */
1721
+ Desc?: string;
1722
+ /** The number of these items in inventory. `QuantityOnHand` times `AverageCost` is `TotalValue` in an inventory item list. To change the `QuantityOnHand` for an item, you would have to use `InventoryAdjustmentAdd` not an `ItemInventoryMod`. */
1723
+ QuantityOnHand?: number;
1724
+ /** Indicates the number of the component part that is required in the assembly. For example, if the `ItemRef` in this component is a bolt, the quantity needed field indicates how many of these bolts are used in the assembly. */
1725
+ QuantityNeeded?: number;
1726
+ }
1519
1727
  export interface Contacts {
1520
1728
  /** A formal reference, such as Mr. or Dr., that precedes a name. */
1521
1729
  Salutation?: string;
@@ -1960,6 +2168,12 @@ export interface CreditCardTxnInfo {
1960
2168
  /** This contains data returned in the QBMS transaction response. This information block should not be used in `CreditMemo` requests for QuickBooks 2007 and new versions. Instead, use the `ARRefundCreditCard` request. */
1961
2169
  CreditCardTxnResultInfo: CreditCardTxnResultInfo;
1962
2170
  }
2171
+ export interface CreditCardTxnInfoMod {
2172
+ /** This contains data originally supplied in the QBMS transaction request. This information block should not be used in `CreditMemo` requests for QuickBooks 2007 and new versions. Instead, use the `ARRefundCreditCard` request. */
2173
+ CreditCardTxnInputInfoMod?: CreditCardTxnInputInfoMod;
2174
+ /** This contains data returned in the QBMS transaction response. This information block should not be used in `CreditMemo` requests for QuickBooks 2007 and new versions. Instead, use the `ARRefundCreditCard` request. */
2175
+ CreditCardTxnResultInfoMod?: CreditCardTxnResultInfoMod;
2176
+ }
1963
2177
  export interface CreditCardTxnInputInfo {
1964
2178
  /** 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. */
1965
2179
  CreditCardNumber: string;
@@ -1973,7 +2187,31 @@ export interface CreditCardTxnInputInfo {
1973
2187
  CreditCardAddress?: string;
1974
2188
  /** The postal code associated with the address for this credit card. */
1975
2189
  CreditCardPostalCode?: string;
1976
- /** This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business. Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies. */
2190
+ /** This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business.
2191
+
2192
+ Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies. */
2193
+ CommercialCardCode?: string;
2194
+ /** Indicates whether this transaction came from a card swipe (`tmCardPresent`) or not (`tmCardNotPresent`). */
2195
+ TransactionMode?: TransactionMode;
2196
+ /** Indicates the QBMS transaction from which the current transaction data originated, for example, Charge, Authorization, Capture, Refund, `VoiceAuthorization`, or Void. */
2197
+ CreditCardTxnType?: CreditCardTxnType;
2198
+ }
2199
+ export interface CreditCardTxnInputInfoMod {
2200
+ /** 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. */
2201
+ CreditCardNumber?: string;
2202
+ /** The month when the credit card expires. */
2203
+ ExpirationMonth?: number;
2204
+ /** The year when the credit card expires. */
2205
+ ExpirationYear?: number;
2206
+ /** The name on the customer’s credit card. */
2207
+ NameOnCard?: string;
2208
+ /** The address associated with this credit card. */
2209
+ CreditCardAddress?: string;
2210
+ /** The postal code associated with the address for this credit card. */
2211
+ CreditCardPostalCode?: string;
2212
+ /** This optional field is used only for Visa and Master Card commercial cards. There are three types of these cards: purchase, corporate, and business.
2213
+
2214
+ Normally, special lower transaction fee rates apply when these cards are used and this field is filled out. If this field is left blank, then the usual (and higher) discount rate applies. */
1977
2215
  CommercialCardCode?: string;
1978
2216
  /** Indicates whether this transaction came from a card swipe (`tmCardPresent`) or not (`tmCardNotPresent`). */
1979
2217
  TransactionMode?: TransactionMode;
@@ -1985,15 +2223,23 @@ export interface CreditCardTxnResultInfo {
1985
2223
  ResultCode: number;
1986
2224
  /** This contains the status message returned in the original QBMS transaction response. */
1987
2225
  ResultMessage: string;
1988
- /** This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, `CustomerCreditCardTxnVoidRq`, or `CustomerCreditCardCaptureRq`. You should also save this transaction ID and include it in the QB SDK `SalesReceiptAdd` or `ReceivePaymentAdd` requests if you are intending to save the transaction data in QuickBooks. */
2226
+ /** This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, `CustomerCreditCardTxnVoidRq`, or `CustomerCreditCardCaptureRq`.
2227
+
2228
+ You should also save this transaction ID and include it in the QB SDK `SalesReceiptAdd` or `ReceivePaymentAdd` requests if you are intending to save the transaction data in QuickBooks. */
1989
2229
  CreditCardTransID: string;
1990
2230
  /** This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK `SalesReceiptAdd`, `ReceivePaymentAdd`, `ARRefundCreditCard` requests to save the transaction data in QuickBooks. */
1991
2231
  MerchantAccountNumber: string;
1992
- /** The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer. In a voice authorization request (`CustomerCreditCardVoiceAuthRq`), the authorization code is supplied by the card issuer over the telephone. */
2232
+ /** The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer.
2233
+
2234
+ In a voice authorization request (`CustomerCreditCardVoiceAuthRq`), the authorization code is supplied by the card issuer over the telephone. */
1993
2235
  AuthorizationCode?: string;
1994
- /** This field contains the value `avssPass` if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value `avssFail` if there is not a match, or `avssNotAvailable` if the card issuer does not support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
2236
+ /** This field contains the value `avssPass` if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value `avssFail` if there is not a match, or `avssNotAvailable` if the card issuer does not support AVS.
2237
+
2238
+ Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
1995
2239
  AVSStreet?: AVSStreet;
1996
- /** This field contains the value `avszPass` if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value `avszFail` if there is not a match, or `avszNotAvailable` if the card issuer does not support AVS. Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
2240
+ /** This field contains the value `avszPass` if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value `avszFail` if there is not a match, or `avszNotAvailable` if the card issuer does not support AVS.
2241
+
2242
+ Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
1997
2243
  AVSZip?: AVSZip;
1998
2244
  /** This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there is not a match. */
1999
2245
  CardSecurityCodeMatch?: CardSecurityCodeMatch;
@@ -2010,6 +2256,44 @@ export interface CreditCardTxnResultInfo {
2010
2256
  /** This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. */
2011
2257
  ClientTransID?: string;
2012
2258
  }
2259
+ export interface CreditCardTxnResultInfoMod {
2260
+ /** This contains the status code returned in the original QBMS transaction response. */
2261
+ ResultCode?: number;
2262
+ /** This contains the status message returned in the original QBMS transaction response. */
2263
+ ResultMessage?: string;
2264
+ /** This transaction ID is returned from the credit card processor. You should save this value for any possible QBMS SDK transaction requests that need it, for example, `CustomerCreditCardTxnVoidRq`, or `CustomerCreditCardCaptureRq`.
2265
+
2266
+ You should also save this transaction ID and include it in the QB SDK `SalesReceiptAdd` or `ReceivePaymentAdd` requests if you are intending to save the transaction data in QuickBooks. */
2267
+ CreditCardTransID?: string;
2268
+ /** This is the QBMS account number of the merchant who is running the transaction using the customer’s credit card. It is returned from the transaction request and should be stored for subsequent transactions, such as using it in the QB SDK `SalesReceiptAdd`, `ReceivePaymentAdd`, `ARRefundCreditCard` requests to save the transaction data in QuickBooks. */
2269
+ MerchantAccountNumber?: string;
2270
+ /** The authorization code is returned from the credit card processor to indicate that the charge will be paid by the card issuer.
2271
+
2272
+ In a voice authorization request (`CustomerCreditCardVoiceAuthRq`), the authorization code is supplied by the card issuer over the telephone. */
2273
+ AuthorizationCode?: string;
2274
+ /** This field contains the value `avssPass` if the street address supplied in the transaction request matches the customer’s address on file at the card issuer. It contains the value `avssFail` if there is not a match, or `avssNotAvailable` if the card issuer does not support AVS.
2275
+
2276
+ Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
2277
+ AVSStreet?: AVSStreet;
2278
+ /** This field contains the value `avszPass` if the customer postal ZIP code supplied in the transaction request matches the customer’s postal code recognized at the card issuer. It contains the value `avszFail` if there is not a match, or `avszNotAvailable` if the card issuer does not support AVS.
2279
+
2280
+ Note: This field was required in qbXML 4.1, but is optional in qbXML 5.0 and later. */
2281
+ AVSZip?: AVSZip;
2282
+ /** This field contains the value Pass if the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. It contains the value Fail if there is not a match. */
2283
+ CardSecurityCodeMatch?: CardSecurityCodeMatch;
2284
+ /** This value is returned by QBMS from the transaction request, and is used internally by the QuickBooks/QBMS Recon (reconcile) feature. You should save this value without modification and include it in the QB SDK `SalesReceiptAdd` or `ReceivePaymentAdd` requests if you want to save the transaction data in QuickBooks. */
2285
+ ReconBatchID?: string;
2286
+ /** Internal code needed for the QuickBooks reconciliation feature, if integrating with QuickBooks. This value is returned in the QBMS response to a QBMS transaction request, and must be subsequently supplied by your application in the QB SDK `ReceivePaymentAdd` or `SalesReceiptAdd` request. */
2287
+ PaymentGroupingCode?: number;
2288
+ /** Indicates whether the transaction is known to have been successfully processed by the card issuer, with the value “`psCompleted`” indicating success. That is, there was a response sent to QBMS and from QBMS to the application indicating success. The value “`psUnknown`” indicates that such a response was not received. If “Unknown” is returned, the transaction may have been successfully or unsuccessfully processed at the card issuer: there simply was no response (possibly due to network errors). */
2289
+ PaymentStatus?: PaymentStatus;
2290
+ /** Timestamp indicating the time in which the card processor authorized the transaction. */
2291
+ TxnAuthorizationTime?: string;
2292
+ /** This value is used to support the credit card transaction Reconcile feature within QuickBooks. */
2293
+ TxnAuthorizationStamp?: number;
2294
+ /** This value is returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. */
2295
+ ClientTransID?: string;
2296
+ }
2013
2297
  export type CreditCardTxnType = "Authorization" | "Capture" | "Charge" | "Refund" | "VoiceAuthorization";
2014
2298
  export interface CurrencyFilter {
2015
2299
  /** 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`.
@@ -2025,6 +2309,48 @@ export interface CurrencyRef {
2025
2309
  /** `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. */
2026
2310
  FullName?: string;
2027
2311
  }
2312
+ export interface CustomDetailReportQueryRq {
2313
+ /** The type of report being queried. */
2314
+ CustomDetailReportType: CustomDetailReportType;
2315
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
2316
+ DisplayReport?: boolean;
2317
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
2318
+ ReportPeriod?: ReportPeriod;
2319
+ /** The time period covered by this report. */
2320
+ ReportDateMacro?: ReportDateMacro;
2321
+ /** Allows you to query for a specified account type or for specific list elements. */
2322
+ ReportAccountFilter?: ReportAccountFilter;
2323
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
2324
+ ReportEntityFilter?: ReportEntityFilter;
2325
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
2326
+ ReportItemFilter?: ReportItemFilter;
2327
+ /** Allows you to query for a specified class. 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. */
2328
+ ReportClassFilter?: ReportClassFilter;
2329
+ /** Allows you to report on specific transaction types (for example, charge, check, deposit, or estimate). */
2330
+ ReportTxnTypeFilter?: ReportTxnTypeFilter;
2331
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
2332
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
2333
+ /** The time period covered by this report. */
2334
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
2335
+ /** The level of detail to include in the report. */
2336
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
2337
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
2338
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
2339
+ /** `SummarizeRowsBy` (along with `IncludeColumnList`, in most cases) determines what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to `srbAccount`, the report’s row labels might be “Checking,” “Savings,” and so on. */
2340
+ SummarizeRowsBy: SummarizeRowsBy;
2341
+ /** A list of enum values showing which columns you want the report to return. (The report won’t return columns other than the ones you specify here.) */
2342
+ IncludeColumn: IncludeColumn | IncludeColumn[];
2343
+ /** Indicates whether this report should include all accounts or just those that are currently in use. */
2344
+ IncludeAccounts?: IncludeAccounts;
2345
+ /** The report will return open balance information up to the `ReportOpenBalanceAsOf` date. */
2346
+ ReportOpenBalanceAsOf?: ReportOpenBalanceAsOf;
2347
+ /** If `ReportBasis` is `rbCash`, the report bases income and expenses on the dates when money changed hands.`rbAccrual`, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered.`rbNone`, the report uses the default `ReportBasis`, which is either the QuickBooks Preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns `rbNone` for reports that do not support `ReportBasis`. (The 1099 report, for example, has its own basis for generation.) */
2348
+ ReportBasis?: ReportBasis;
2349
+ }
2350
+ export interface CustomDetailReportQueryRs {
2351
+ ReportRet: ReportRet[];
2352
+ }
2353
+ export type CustomDetailReportType = "CustomTxnDetail";
2028
2354
  export interface CustomerAdd {
2029
2355
  /** The case-insensitive name of a list object, not including the names of its ancestors. `Name` must be unique, unless it is the `Name` of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their `FullNames` will still be unique. For example, two objects could both have the `Name` kitchen, but they could have unique `FullNames`, such as Job12:kitchen and Baker:kitchen. For built-in currencies, `Name` is the internationally accepted currency name and is not editable. */
2030
2356
  Name: string;
@@ -2468,26 +2794,72 @@ export interface CustomerTypeRet {
2468
2794
  /** The number of ancestors. For example, The customer job with `Name` = carpets and `FullName` = Jones:Building2:carpets would have a sublevel of 2. */
2469
2795
  Sublevel: number;
2470
2796
  }
2471
- export interface DataExt {
2472
- /** `OwnerID` refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an `OwnerID` of 0. )
2473
-
2474
- Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.)
2475
-
2476
- When you share a data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
2477
- OwnerID: string;
2478
- /** The name of the data extension. If this is a custom field, `DataExtName` will be visible as a label in the QuickBooks user interface. Also because `OwnerID` and `DataExtName` together make the data extension unique, and because custom fields all have the same `OwnerID` of zero, the `DataExtName` must be a unique value among existing custom fields. In contrast, the `DataExtName` for private data extensions must be unique only for the specified `OwnerID` GUID. */
2479
- DataExtName: string;
2480
- /** The data in this field. The maximum length of `DataExtValue` will depend on the `DataExtType` of this data extension. For example, if `DataExtType` is `STR255TYPE`, the maximum length of `DataExtValue` is 255 characters. If `DataExtType` is `STR1024TYPE`, the maximum size of `DataExtValue` is `1KB`. */
2481
- DataExtValue: string;
2482
- }
2483
- export interface DataExtRet {
2484
- /** `OwnerID` refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an `OwnerID` of 0. )
2485
-
2486
- Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.)
2487
-
2488
- When you share a data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
2489
- OwnerID?: string;
2490
- /** The name of the data extension. If this is a custom field, `DataExtName` will be visible as a label in the QuickBooks user interface. Also because `OwnerID` and `DataExtName` together make the data extension unique, and because custom fields all have the same `OwnerID` of zero, the `DataExtName` must be a unique value among existing custom fields. In contrast, the `DataExtName` for private data extensions must be unique only for the specified `OwnerID` GUID. */
2797
+ export interface CustomSummaryReportQueryRq {
2798
+ /** The type of report being queried. */
2799
+ CustomSummaryReportType: CustomSummaryReportType;
2800
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
2801
+ DisplayReport?: boolean;
2802
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
2803
+ ReportPeriod?: ReportPeriod;
2804
+ /** The time period covered by this report. */
2805
+ ReportDateMacro?: ReportDateMacro;
2806
+ /** Allows you to query for a specified account type or for specific list elements. */
2807
+ ReportAccountFilter?: ReportAccountFilter;
2808
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
2809
+ ReportEntityFilter?: ReportEntityFilter;
2810
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
2811
+ ReportItemFilter?: ReportItemFilter;
2812
+ /** Allows you to query for a specified class. 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. */
2813
+ ReportClassFilter?: ReportClassFilter;
2814
+ /** Allows you to report on specific transaction types (for example, charge, check, deposit, or estimate). */
2815
+ ReportTxnTypeFilter?: ReportTxnTypeFilter;
2816
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
2817
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
2818
+ /** The time period covered by this report. */
2819
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
2820
+ /** The level of detail to include in the report. */
2821
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
2822
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
2823
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
2824
+ /** `SummarizeColumnsBy` determines which data the report calculates and how the columns will be labeled across the top of the report. For example, if you set the value to `scbTwoWeek`, the report’s column labels might be “Feb 10-23, 02,” “Feb 24-Mar9, 02,” and so on. */
2825
+ SummarizeColumnsBy: SummarizeColumnsBy;
2826
+ /** `SummarizeRowsBy` (along with `IncludeColumnList`, in most cases) determines what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to `srbAccount`, the report’s row labels might be “Checking,” “Savings,” and so on. */
2827
+ SummarizeRowsBy: SummarizeRowsBy;
2828
+ /** The default value is false, which means that the report will not include any subcolumn information. To include all available types of subcolumns for this report, set `IncludeSubcolumns` to true. The SDK will not return subcolumn information for data that can be easily computed. (For example, the SDK does not return the “percent of row” column.) */
2829
+ IncludeSubcolumns?: boolean;
2830
+ /** Specifies the type of year that will be used for this report. */
2831
+ ReportCalendar?: ReportCalendar;
2832
+ /** Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status. */
2833
+ ReturnRows?: ReturnRows;
2834
+ /** Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status. */
2835
+ ReturnColumns?: ReturnColumns;
2836
+ /** If `ReportBasis` is `rbCash`, the report bases income and expenses on the dates when money changed hands.`rbAccrual`, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered.`rbNone`, the report uses the default `ReportBasis`, which is either the QuickBooks Preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns `rbNone` for reports that do not support `ReportBasis`. (The 1099 report, for example, has its own basis for generation.) */
2837
+ ReportBasis?: ReportBasis;
2838
+ }
2839
+ export interface CustomSummaryReportQueryRs {
2840
+ ReportRet: ReportRet[];
2841
+ }
2842
+ export type CustomSummaryReportType = "CustomSummary";
2843
+ export interface DataExt {
2844
+ /** `OwnerID` refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an `OwnerID` of 0. )
2845
+
2846
+ Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.)
2847
+
2848
+ When you share a data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
2849
+ OwnerID: string;
2850
+ /** The name of the data extension. If this is a custom field, `DataExtName` will be visible as a label in the QuickBooks user interface. Also because `OwnerID` and `DataExtName` together make the data extension unique, and because custom fields all have the same `OwnerID` of zero, the `DataExtName` must be a unique value among existing custom fields. In contrast, the `DataExtName` for private data extensions must be unique only for the specified `OwnerID` GUID. */
2851
+ DataExtName: string;
2852
+ /** The data in this field. The maximum length of `DataExtValue` will depend on the `DataExtType` of this data extension. For example, if `DataExtType` is `STR255TYPE`, the maximum length of `DataExtValue` is 255 characters. If `DataExtType` is `STR1024TYPE`, the maximum size of `DataExtValue` is `1KB`. */
2853
+ DataExtValue: string;
2854
+ }
2855
+ export interface DataExtRet {
2856
+ /** `OwnerID` refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an `OwnerID` of 0. )
2857
+
2858
+ Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.)
2859
+
2860
+ When you share a data extension with another application, the other application must know both the `OwnerID` and the `DataExtName`, as these together form a data extension’s unique name. */
2861
+ OwnerID?: string;
2862
+ /** The name of the data extension. If this is a custom field, `DataExtName` will be visible as a label in the QuickBooks user interface. Also because `OwnerID` and `DataExtName` together make the data extension unique, and because custom fields all have the same `OwnerID` of zero, the `DataExtName` must be a unique value among existing custom fields. In contrast, the `DataExtName` for private data extensions must be unique only for the specified `OwnerID` GUID. */
2491
2863
  DataExtName: string;
2492
2864
  /** The field’s data type, which corresponds to a qbXML data type. In an `IDataExtDefAdd` request object, if this is a custom field, `DataExtType` must be `detSTR255TYPE`. */
2493
2865
  DataExtType: DataExtType;
@@ -3922,7 +4294,107 @@ export interface FixedAssetSalesInfoMod {
3922
4294
  /** Any expenses that were incurred during the sale of a fixed asset. */
3923
4295
  SalesExpense?: string;
3924
4296
  }
4297
+ export interface FromInventorySiteLocationRef {
4298
+ /** 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. */
4299
+ ListID?: string;
4300
+ /** `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. */
4301
+ FullName?: string;
4302
+ }
4303
+ export interface FromInventorySiteRef {
4304
+ /** 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. */
4305
+ ListID?: string;
4306
+ /** `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. */
4307
+ FullName?: string;
4308
+ }
3925
4309
  export type Gender = "Female" | "Male";
4310
+ export interface GeneralDetailReportQueryRq {
4311
+ /** The type of general detail report to return. (If you specify `gdrtMissingChecks`, you must also specify an account type in the account filter.) */
4312
+ GeneralDetailReportType: GeneralDetailReportType;
4313
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
4314
+ DisplayReport?: boolean;
4315
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
4316
+ ReportPeriod?: ReportPeriod;
4317
+ /** The time period covered by this report. */
4318
+ ReportDateMacro?: ReportDateMacro;
4319
+ /** Allows you to query for a specified account type or for specific list elements. */
4320
+ ReportAccountFilter?: ReportAccountFilter;
4321
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
4322
+ ReportEntityFilter?: ReportEntityFilter;
4323
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
4324
+ ReportItemFilter?: ReportItemFilter;
4325
+ /** Allows you to query for a specified class. 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. */
4326
+ ReportClassFilter?: ReportClassFilter;
4327
+ /** Allows you to report on specific transaction types (for example, charge, check, deposit, or estimate). */
4328
+ ReportTxnTypeFilter?: ReportTxnTypeFilter;
4329
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
4330
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
4331
+ /** The time period covered by this report. */
4332
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
4333
+ /** The level of detail to include in the report. */
4334
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
4335
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
4336
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
4337
+ /** `SummarizeRowsBy` (along with `IncludeColumnList`, in most cases) determines what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to `srbAccount`, the report’s row labels might be “Checking,” “Savings,” and so on. */
4338
+ SummarizeRowsBy?: SummarizeRowsBy;
4339
+ /** A list of enum values showing which columns you want the report to return. (The report won’t return columns other than the ones you specify here.) */
4340
+ IncludeColumn?: IncludeColumn | IncludeColumn[];
4341
+ /** Indicates whether this report should include all accounts or just those that are currently in use. */
4342
+ IncludeAccounts?: IncludeAccounts;
4343
+ /** The report will return open balance information up to the `ReportOpenBalanceAsOf` date. */
4344
+ ReportOpenBalanceAsOf?: ReportOpenBalanceAsOf;
4345
+ /** If `ReportBasis` is `rbCash`, the report bases income and expenses on the dates when money changed hands.`rbAccrual`, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered.`rbNone`, the report uses the default `ReportBasis`, which is either the QuickBooks Preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns `rbNone` for reports that do not support `ReportBasis`. (The 1099 report, for example, has its own basis for generation.) */
4346
+ ReportBasis?: ReportBasis;
4347
+ }
4348
+ export interface GeneralDetailReportQueryRs {
4349
+ ReportRet: ReportRet[];
4350
+ }
4351
+ export type GeneralDetailReportType = "1099Detail" | "AuditTrail" | "BalanceSheetDetail" | "CheckDetail" | "CustomerBalanceDetail" | "DepositDetail" | "EstimatesByJob" | "ExpenseByVendorDetail" | "GeneralLedger" | "IncomeByCustomerDetail" | "IncomeTaxDetail" | "InventoryValuationDetail" | "JobProgressInvoicesVsEstimates" | "Journal" | "MissingChecks" | "OpenInvoices" | "OpenPOs" | "OpenPOsByJob" | "OpenSalesOrderByCustomer" | "OpenSalesOrderByItem" | "PendingSales" | "ProfitAndLossDetail" | "PurchaseByItemDetail" | "PurchaseByVendorDetail" | "SalesByCustomerDetail" | "SalesByItemDetail" | "SalesByRepDetail" | "TxnDetailByAccount" | "TxnListByCustomer" | "TxnListByDate" | "TxnListByVendor" | "UnbilledCostsByJob" | "UnpaidBillsDetail" | "VendorBalanceDetail";
4352
+ export interface GeneralSummaryReportQueryRq {
4353
+ /** The type of general summary report being queried. The report types listed below map almost directly to named reports in QuickBooks. */
4354
+ GeneralSummaryReportType: GeneralSummaryReportType;
4355
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
4356
+ DisplayReport?: boolean;
4357
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
4358
+ ReportPeriod?: ReportPeriod;
4359
+ /** The time period covered by this report. */
4360
+ ReportDateMacro?: ReportDateMacro;
4361
+ /** Allows you to query for a specified account type or for specific list elements. */
4362
+ ReportAccountFilter?: ReportAccountFilter;
4363
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
4364
+ ReportEntityFilter?: ReportEntityFilter;
4365
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
4366
+ ReportItemFilter?: ReportItemFilter;
4367
+ /** Allows you to query for a specified class. 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. */
4368
+ ReportClassFilter?: ReportClassFilter;
4369
+ /** Allows you to report on specific transaction types (for example, charge, check, deposit, or estimate). */
4370
+ ReportTxnTypeFilter?: ReportTxnTypeFilter;
4371
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
4372
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
4373
+ /** The time period covered by this report. */
4374
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
4375
+ /** The level of detail to include in the report. */
4376
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
4377
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
4378
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
4379
+ /** `SummarizeColumnsBy` determines which data the report calculates and how the columns will be labeled across the top of the report. For example, if you set the value to `scbTwoWeek`, the report’s column labels might be “Feb 10-23, 02,” “Feb 24-Mar9, 02,” and so on. */
4380
+ SummarizeColumnsBy?: SummarizeColumnsBy;
4381
+ /** The default value is false, which means that the report will not include any subcolumn information. To include all available types of subcolumns for this report, set `IncludeSubcolumns` to true. The SDK will not return subcolumn information for data that can be easily computed. (For example, the SDK does not return the “percent of row” column.) */
4382
+ IncludeSubcolumns?: boolean;
4383
+ /** Specifies the type of year that will be used for this report. */
4384
+ ReportCalendar?: ReportCalendar;
4385
+ /** Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status. */
4386
+ ReturnRows?: ReturnRows;
4387
+ /** Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status. */
4388
+ ReturnColumns?: ReturnColumns;
4389
+ /** If `ReportBasis` is `rbCash`, the report bases income and expenses on the dates when money changed hands.`rbAccrual`, the report bases income on the dates when customers were invoiced and bases expenses on the dates when bills were entered.`rbNone`, the report uses the default `ReportBasis`, which is either the QuickBooks Preference setting or the QuickBooks default for a given type of report. In a report response, the SDK returns `rbNone` for reports that do not support `ReportBasis`. (The 1099 report, for example, has its own basis for generation.) */
4390
+ ReportBasis?: ReportBasis;
4391
+ }
4392
+ export interface GeneralSummaryReportQueryRs {
4393
+ ReportRet: ReportRet[];
4394
+ }
4395
+ export type GeneralSummaryReportType = "BalanceSheetByClass" | "BalanceSheetPrevYearComp" | "BalanceSheetStandard" | "BalanceSheetSummary" | "CustomerBalanceSummary" | "ExpenseByVendorSummary" | "IncomeByCustomerSummary" | "IncomeTaxSummary" | "InventoryStockStatusByItem" | "InventoryStockStatusByVendor" | "InventoryValuationSummary" | "InventoryValuationSummaryBySite" | "LotNumberInStockBySite" | "PhysicalInventoryWorksheet" | "ProfitAndLossByClass" | "ProfitAndLossByJob" | "ProfitAndLossPrevYearComp" | "ProfitAndLossStandard" | "ProfitAndLossYTDComp" | "PurchaseByItemSummary" | "PurchaseByVendorSummary" | "SalesByCustomerSummary" | "SalesByItemSummary" | "SalesByRepSummary" | "SalesTaxLiability" | "SalesTaxRevenueSummary" | "SerialNumberInStockBySite" | "TrialBalance" | "VendorBalanceSummary";
4396
+ export type IncludeAccounts = "All" | "InUse";
4397
+ export type IncludeColumn = "Account" | "Aging" | "Amount" | "AmountDifference" | "AverageCost" | "BilledDate" | "BillingStatus" | "CalculatedAmount" | "Class" | "ClearedStatus" | "CostPrice" | "Credit" | "Currency" | "Date" | "Debit" | "DeliveryDate" | "DueDate" | "EstimateActive" | "ExchangeRate" | "FOB" | "IncomeSubjectToTax" | "Invoiced" | "Item" | "ItemDesc" | "LastModifiedBy" | "LatestOrPriorState" | "Memo" | "ModifiedTime" | "Name" | "NameAccountNumber" | "NameAddress" | "NameCity" | "NameContact" | "NameEmail" | "NameFax" | "NamePhone" | "NameState" | "NameZip" | "OpenBalance" | "OriginalAmount" | "PaidAmount" | "PaidStatus" | "PaidThroughDate" | "PaymentMethod" | "PayrollItem" | "PONumber" | "PrintStatus" | "ProgressAmount" | "ProgressPercent" | "Quantity" | "QuantityAvailable" | "QuantityOnHand" | "QuantityOnSalesOrder" | "ReceivedQuantity" | "RefNumber" | "RunningBalance" | "SalesRep" | "SalesTaxCode" | "SerialOrLotNumber" | "ShipDate" | "ShipMethod" | "SourceName" | "SplitAccount" | "SSNOrTaxID" | "TaxLine" | "TaxTableVersion" | "Terms" | "TxnID" | "TxnNumber" | "TxnType" | "UnitPrice" | "UserEdit" | "ValueOnHand" | "WageBase" | "WageBaseTips";
3926
4398
  export interface IncomeAccountRef {
3927
4399
  /** 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. */
3928
4400
  ListID?: string;
@@ -5601,6 +6073,12 @@ export interface ItemInventoryAssemblyQueryRq {
5601
6073
  export interface ItemInventoryAssemblyQueryRs {
5602
6074
  ItemInventoryAssemblyRet: ItemInventoryAssemblyRet[];
5603
6075
  }
6076
+ export interface ItemInventoryAssemblyRef {
6077
+ /** 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. */
6078
+ ListID?: string;
6079
+ /** `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. */
6080
+ FullName?: string;
6081
+ }
5604
6082
  export interface ItemInventoryAssemblyRet {
5605
6083
  /** 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. */
5606
6084
  ListID: string;
@@ -7444,12 +7922,92 @@ export interface PaymentMethodRef {
7444
7922
  }
7445
7923
  export type PaymentStatus = "Completed" | "Unknown";
7446
7924
  export type PayPeriod = "Biweekly" | "Daily" | "Monthly" | "Quarterly" | "Semimonthly" | "Weekly" | "Yearly";
7925
+ export interface PayrollDetailReportQueryRq {
7926
+ /** The type of report: `pdrtEmployeeStateTaxesDetail` lists state taxes withheld for `employeespdrtPayrollItemDetail` lists the payroll transactions on which each payroll item `appearspdrtPayrollReviewDetail` gives detailed information about how QuickBooks calculates tax amounts on employee paychecks and in year-to-date `transactionspdrtPayrollTransactionDetail` shows the line-item detail that appears on each payroll `transactionpdrtPayrollTransactionsByPayee` lists payroll transactions, grouping them by payee */
7927
+ PayrollDetailReportType: PayrollDetailReportType;
7928
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
7929
+ DisplayReport?: boolean;
7930
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
7931
+ ReportPeriod?: ReportPeriod;
7932
+ /** The time period covered by this report. */
7933
+ ReportDateMacro?: ReportDateMacro;
7934
+ /** Allows you to query for a specified account type or for specific list elements. */
7935
+ ReportAccountFilter?: ReportAccountFilter;
7936
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
7937
+ ReportEntityFilter?: ReportEntityFilter;
7938
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
7939
+ ReportItemFilter?: ReportItemFilter;
7940
+ /** Allows you to query for a specified class. 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. */
7941
+ ReportClassFilter?: ReportClassFilter;
7942
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
7943
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
7944
+ /** The time period covered by this report. */
7945
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
7946
+ /** The level of detail to include in the report. */
7947
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
7948
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
7949
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
7950
+ /** `SummarizeRowsBy` (along with `IncludeColumnList`, in most cases) determines what data is calculated for this report and controls how the rows are organized and labeled. For example, if you set the value to `srbAccount`, the report’s row labels might be “Checking,” “Savings,” and so on. */
7951
+ SummarizeRowsBy?: SummarizeRowsBy;
7952
+ /** A list of enum values showing which columns you want the report to return. (The report won’t return columns other than the ones you specify here.) */
7953
+ IncludeColumn?: IncludeColumn | IncludeColumn[];
7954
+ /** Indicates whether this report should include all accounts or just those that are currently in use. */
7955
+ IncludeAccounts?: IncludeAccounts;
7956
+ /** The report will return open balance information up to the `ReportOpenBalanceAsOf` date. */
7957
+ ReportOpenBalanceAsOf?: ReportOpenBalanceAsOf;
7958
+ }
7959
+ export interface PayrollDetailReportQueryRs {
7960
+ ReportRet: ReportRet[];
7961
+ }
7962
+ export type PayrollDetailReportType = "EmployeeStateTaxesDetail" | "PayrollItemDetail" | "PayrollReviewDetail" | "PayrollTransactionDetail" | "PayrollTransactionsByPayee";
7447
7963
  export interface PayrollItemWageRef {
7448
7964
  /** 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. */
7449
7965
  ListID?: string;
7450
7966
  /** `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. */
7451
7967
  FullName?: string;
7452
7968
  }
7969
+ export interface PayrollSummaryReportQueryRq {
7970
+ /** The type of payroll report: `psrtEmployeeEarningsSummary` This report shows information similar to the payroll summary report, but in a different layout. The report has a row for each employee and a column for each payroll item. `psrtPayrollLiabilityBalances` This report lists the payroll liabilities the QuickBooks company owes to various agencies, such as the federal government, your state government, insurance plan administrators, labor unions, etc. The report covers unpaid liabilities incurred during the period of time shown in the From and To fields. If the company paid a liability incurred within the date range of the report, the report omits that liability, even if the payment occurred after the ending date of the report. `psrtPayrollSummary` This report shows the total wages, taxes withheld, deductions from net pay, additions to net pay, and employer-paid taxes and contributions for each employee on the payroll. */
7971
+ PayrollSummaryReportType: PayrollSummaryReportType;
7972
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
7973
+ DisplayReport?: boolean;
7974
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
7975
+ ReportPeriod?: ReportPeriod;
7976
+ /** The time period covered by this report. */
7977
+ ReportDateMacro?: ReportDateMacro;
7978
+ /** Allows you to query for a specified account type or for specific list elements. */
7979
+ ReportAccountFilter?: ReportAccountFilter;
7980
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
7981
+ ReportEntityFilter?: ReportEntityFilter;
7982
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
7983
+ ReportItemFilter?: ReportItemFilter;
7984
+ /** Allows you to query for a specified class. 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. */
7985
+ ReportClassFilter?: ReportClassFilter;
7986
+ /** Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `FromReportModifiedDate` and `ToReportModifiedDate` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). */
7987
+ ReportModifiedDateRangeFilter?: ReportModifiedDateRangeFilter;
7988
+ /** The time period covered by this report. */
7989
+ ReportModifiedDateRangeMacro?: ReportModifiedDateRangeMacro;
7990
+ /** The level of detail to include in the report. */
7991
+ ReportDetailLevelFilter?: ReportDetailLevelFilter;
7992
+ /** Allows you to query for posting reports, non-posting reports, or reports that are either one. */
7993
+ ReportPostingStatusFilter?: ReportPostingStatusFilter;
7994
+ /** `SummarizeColumnsBy` determines which data the report calculates and how the columns will be labeled across the top of the report. For example, if you set the value to `scbTwoWeek`, the report’s column labels might be “Feb 10-23, 02,” “Feb 24-Mar9, 02,” and so on. */
7995
+ SummarizeColumnsBy?: SummarizeColumnsBy;
7996
+ /** The default value is false, which means that the report will not include any subcolumn information. To include all available types of subcolumns for this report, set `IncludeSubcolumns` to true. The SDK will not return subcolumn information for data that can be easily computed. (For example, the SDK does not return the “percent of row” column.) */
7997
+ IncludeSubcolumns?: boolean;
7998
+ /** Specifies the type of year that will be used for this report. */
7999
+ ReportCalendar?: ReportCalendar;
8000
+ /** Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status. */
8001
+ ReturnRows?: ReturnRows;
8002
+ /** Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status. */
8003
+ ReturnColumns?: ReturnColumns;
8004
+ }
8005
+ export interface PayrollSummaryReportQueryRs {
8006
+ ReportRet: ReportRet[];
8007
+ }
8008
+ export type PayrollSummaryReportType = "EmployeeEarningsSummary" | "PayrollLiabilityBalances" | "PayrollSummary";
8009
+ /** @default: All */
8010
+ export type PendingStatus = "All" | "NotPendingOnly" | "PendingOnly";
7453
8011
  /** @default: None */
7454
8012
  export type PreferredDeliveryMethod = "Email" | "Fax" | "None";
7455
8013
  export interface PreferredPaymentMethodRef {
@@ -8043,26 +8601,213 @@ export interface RateHistory {
8043
8601
  /** Specifies the date at which the workers’ comp code and it’s related premium goes into effect. */
8044
8602
  EffectiveDate: string;
8045
8603
  }
8046
- export interface RefNumberFilter {
8047
- /** The criterion to match. */
8048
- MatchCriterion: MatchCriterion;
8604
+ export interface ReceivePaymentAdd {
8605
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note:In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited.In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
8606
+ CustomerRef: CustomerRef;
8607
+ /** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
8608
+ ARAccountRef?: ARAccountRef;
8609
+ /** 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. */
8610
+ TxnDate?: string;
8611
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
8612
+ RefNumber?: string;
8613
+ /** Total amount of money received. For `ReceivePaymentAdd`, the sum of the `PaymentAmount` amounts (in the `AppliedToTxnAdd` aggregates that are included) cannot be greater than the `TotalAmount`, or you will receive an error. */
8614
+ TotalAmount?: string;
8615
+ /** 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.) */
8616
+ ExchangeRate?: number;
8617
+ /** 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. */
8618
+ PaymentMethodRef?: PaymentMethodRef;
8619
+ /** The beginning of this memo will appear in reports that show details of this receive payment. */
8620
+ Memo?: string;
8621
+ /** 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. */
8622
+ DepositToAccountRef?: DepositToAccountRef;
8623
+ /** Contains data from the credit card transaction used in the payment. This data originates from a previous `qbmsXML` credit card transaction. The data following the element `CreditCardTxnInputInfo`” data is the data from the original `qbmsXML` request. The “`CreditCardTxnResultInfo`” is the data from the original `qbmsXML` response. */
8624
+ CreditCardTxnInfo?: CreditCardTxnInfo;
8625
+ /** Allows for the attachment of a user defined GUID value. */
8626
+ ExternalGUID?: string;
8627
+ /** If `IsAutoApply` is true, QuickBooks applies `TotalAmount` to any outstanding transaction that exactly matches `TotalAmount`. If no exact match is found, the payment is applied to the customer job’s outstanding transactions, beginning with the oldest one.If `IsAutoApply` is false, QuickBooks receives the payment but does not apply it to any outstanding transaction. Instead, the amount will appear as a credit on the customer job’s next transaction. */
8628
+ IsAutoApply?: boolean;
8629
+ /** `AppliedToTxn` List A list of `AppliedToTxn` aggregates. */
8630
+ AppliedToTxnAdd?: AppliedToTxnAdd | AppliedToTxnAdd[];
8631
+ }
8632
+ export interface ReceivePaymentAddRq {
8633
+ ReceivePaymentAdd: ReceivePaymentAdd;
8634
+ /** 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. */
8635
+ IncludeRetElement?: string[] | string;
8636
+ }
8637
+ export interface ReceivePaymentAddRs {
8638
+ ReceivePaymentRet?: ReceivePaymentRet;
8639
+ ErrorRecovery?: ErrorRecovery;
8640
+ }
8641
+ export interface ReceivePaymentMod {
8642
+ /** 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.
8643
+
8644
+ 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. */
8645
+ TxnID: string;
8646
+ /** 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. */
8647
+ EditSequence: string;
8648
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
8649
+ CustomerRef?: CustomerRef;
8650
+ /** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
8651
+
8652
+ If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
8653
+ ARAccountRef?: ARAccountRef;
8654
+ /** 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. */
8655
+ TxnDate?: string;
8049
8656
  /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
8050
8657
 
8051
8658
  In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
8052
8659
 
8053
8660
  Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
8054
- RefNumber: string;
8661
+ RefNumber?: string;
8662
+ /** Total amount of money received. For `ReceivePaymentAdd`, the sum of the `PaymentAmount` amounts (in the `AppliedToTxnAdd` aggregates that are included) cannot be greater than the `TotalAmount`, or you will receive an error. */
8663
+ TotalAmount?: string;
8664
+ /** 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`.
8665
+
8666
+ 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.) */
8667
+ ExchangeRate?: number;
8668
+ /** 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.
8669
+
8670
+ 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. */
8671
+ PaymentMethodRef?: PaymentMethodRef;
8672
+ /** The beginning of this memo will appear in reports that show details of this receive payment. */
8673
+ Memo?: string;
8674
+ /** 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. */
8675
+ DepositToAccountRef?: DepositToAccountRef;
8676
+ /** Contains data from the credit card transaction used in the payment. This data originates from a previous `qbmsXML` credit card transaction. The data following the element `CreditCardTxnInputInfo`” data is the data from the original `qbmsXML` request. The “`CreditCardTxnResultInfo`” is the data from the original `qbmsXML` response. */
8677
+ CreditCardTxnInfoMod?: CreditCardTxnInfoMod;
8678
+ /** `AppliedToTxn` List
8679
+
8680
+ A list of `AppliedToTxn` aggregates. */
8681
+ AppliedToTxnMod?: AppliedToTxnMod | AppliedToTxnMod[];
8055
8682
  }
8056
- export interface RefNumberRangeFilter {
8057
- /** The first `RefNumber` in the search range. If `FromRefNumber` is omitted, the range will begin with first number on the list. */
8058
- FromRefNumber?: string;
8059
- /** The final `RefNumber` in the search range. If `ToRefNumber` is omitted, the range will end with last number on the list. */
8060
- ToRefNumber?: string;
8683
+ export interface ReceivePaymentModRq {
8684
+ ReceivePaymentMod: ReceivePaymentMod;
8685
+ /** 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.
8686
+
8687
+ 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.
8688
+
8689
+ 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. */
8690
+ IncludeRetElement?: string[] | string;
8061
8691
  }
8062
- export type Relation = "Brother" | "Daughter" | "Father" | "Friend" | "Mother" | "Other" | "Partner" | "Sister" | "Son" | "Spouse";
8063
- export interface ReportAccountFilter {
8064
- /** Allows you to report on a specific account type. */
8065
- AccountTypeFilter?: AccountTypeFilter;
8692
+ export interface ReceivePaymentModRs {
8693
+ ReceivePaymentRet?: ReceivePaymentRet;
8694
+ ErrorRecovery?: ErrorRecovery;
8695
+ }
8696
+ export interface ReceivePaymentQueryRq {
8697
+ /** 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. */
8698
+ TxnID?: string[] | string;
8699
+ /** 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. */
8700
+ RefNumber?: string[] | string;
8701
+ /** 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. */
8702
+ RefNumberCaseSensitive?: string[] | string;
8703
+ /** 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. */
8704
+ MaxReturned?: number;
8705
+ /** 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.) */
8706
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
8707
+ /** Filters according to the original transaction dates. */
8708
+ TxnDateRangeFilter?: TxnDateRangeFilter;
8709
+ /** 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. */
8710
+ EntityFilter?: EntityFilter;
8711
+ /** 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. */
8712
+ AccountFilter?: AccountFilter;
8713
+ /** Filters according to `RefNumber`. */
8714
+ RefNumberFilter?: RefNumberFilter;
8715
+ /** Filters according to `RefNumber`. The filtering code will do a numerical comparison (if `FromRefNumber` and `ToRefNumber` only contain digits) or a lexicographical comparison (if either `FromRefNumber` or `ToRefNumber` contain any nondigit characters). In the first situation, if you need to query for a `RefNumber` that is larger than the maximum long integer value of 2147483647, one workaround is to specify a `FromRefNumber` that is less than or equal to 2147483647 without specifying a `ToRefNumber`. */
8716
+ RefNumberRangeFilter?: RefNumberRangeFilter;
8717
+ /** Filters by the specified currency. */
8718
+ CurrencyFilter?: CurrencyFilter;
8719
+ /** 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. */
8720
+ IncludeLineItems?: boolean;
8721
+ /** 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. */
8722
+ IncludeRetElement?: string[] | string;
8723
+ /** 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. */
8724
+ OwnerID?: string[] | string;
8725
+ }
8726
+ export interface ReceivePaymentQueryRs {
8727
+ ReceivePaymentRet: ReceivePaymentRet[];
8728
+ }
8729
+ export interface ReceivePaymentRet {
8730
+ /** 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.
8731
+
8732
+ 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. */
8733
+ TxnID?: string;
8734
+ /** Time the object was created. */
8735
+ TimeCreated?: string;
8736
+ /** Time the object was last modified. */
8737
+ TimeModified?: string;
8738
+ /** 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. */
8739
+ EditSequence?: string;
8740
+ /** An identifying number for this transaction. */
8741
+ TxnNumber?: number;
8742
+ /** The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A `CustomerRef` aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a `CustomerRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. Special cases to note: In `SalesReceipt` and `ReceivePayment` requests, `CustomerRef` refers to the customer or customer job to which the payment is credited. In a `TimeTracking` request, `CustomerRef` refers to the customer or customer job to which this time could be billed. If `IsBillable` is set to true, `CustomerRef` is required in `TimeTrackingAdd`. In an `ExpenseLineAdd` request, if `AccountRef` refers to an A/P account, `CustomerRef` must refer to a vendor (not to a customer). If `AccountRef` refers to any other type of account, the `CustomerRef` must refer to a customer. */
8743
+ CustomerRef?: CustomerRef;
8744
+ /** Refers to an accounts receivable account in the QuickBooks file. (The `AccountType` of this account will be `AccountsReceivable`.) If an `ARAccountRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored.
8745
+
8746
+ If this field is in a transaction that links to other transactions, make sure this `ARAccountRef` matches the `ARAccountRef` used in the other transactions. For example, in an `ARRefundCreditCard` transaction, the `ARAccountRef` of the credit card refund transaction must match the `ARAccountRef` used in each of the linked credit transactions. */
8747
+ ARAccountRef?: ARAccountRef;
8748
+ /** 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. */
8749
+ TxnDate?: string;
8750
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
8751
+
8752
+ In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
8753
+
8754
+ Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
8755
+ RefNumber?: string;
8756
+ /** Total amount of money received. For `ReceivePaymentAdd`, the sum of the `PaymentAmount` amounts (in the `AppliedToTxnAdd` aggregates that are included) cannot be greater than the `TotalAmount`, or you will receive an error. */
8757
+ TotalAmount?: string;
8758
+ /** 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.
8759
+
8760
+ When used with `PriceLevels`, the `CurrencyRef` should only be used with “per item” price levels. */
8761
+ CurrencyRef?: CurrencyRef;
8762
+ /** 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`.
8763
+
8764
+ 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.) */
8765
+ ExchangeRate?: number;
8766
+ /** Total amount of money paid or received in the home currency. */
8767
+ TotalAmountInHomeCurrency?: string;
8768
+ /** 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.
8769
+
8770
+ 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. */
8771
+ PaymentMethodRef?: PaymentMethodRef;
8772
+ /** The beginning of this memo will appear in reports that show details of this receive payment. */
8773
+ Memo?: string;
8774
+ /** 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. */
8775
+ DepositToAccountRef?: DepositToAccountRef;
8776
+ /** Contains data from the credit card transaction used in the payment. This data originates from a previous `qbmsXML` credit card transaction. The data following the element `CreditCardTxnInputInfo`” data is the data from the original `qbmsXML` request. The “`CreditCardTxnResultInfo`” is the data from the original `qbmsXML` response. */
8777
+ CreditCardTxnInfo?: CreditCardTxnInfo;
8778
+ /** `ReceivePaymentRet` will include an unused payment in cases such as these: The sum of the `PaymentAmount` amounts is less than `TotalAmount`. A payment is received for the exact amount of an invoice, but a credit or a discount (or both) are set. */
8779
+ UnusedPayment?: string;
8780
+ /** `ReceivePaymentRet` will include an unused credit if the `AppliedAmount` of a `SetCredit` aggregate is less than the amount of credit available for the specified `CreditTxnID`. */
8781
+ UnusedCredits?: string;
8782
+ /** Allows for the attachment of a user defined GUID value. */
8783
+ ExternalGUID?: string;
8784
+ /** `AppliedToTxn` List
8785
+
8786
+ A list of `AppliedToTxn` aggregates. */
8787
+ AppliedToTxnRet?: AppliedToTxnRet | AppliedToTxnRet[];
8788
+ /** A list of `IDataExtRet` objects, each of which represents a field that has been added to QuickBooks as a data extension. */
8789
+ DataExtRet?: DataExtRet | DataExtRet[];
8790
+ }
8791
+ export interface RefNumberFilter {
8792
+ /** The criterion to match. */
8793
+ MatchCriterion: MatchCriterion;
8794
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user.
8795
+
8796
+ In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.
8797
+
8798
+ Note (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
8799
+ RefNumber: string;
8800
+ }
8801
+ export interface RefNumberRangeFilter {
8802
+ /** The first `RefNumber` in the search range. If `FromRefNumber` is omitted, the range will begin with first number on the list. */
8803
+ FromRefNumber?: string;
8804
+ /** The final `RefNumber` in the search range. If `ToRefNumber` is omitted, the range will end with last number on the list. */
8805
+ ToRefNumber?: string;
8806
+ }
8807
+ export type Relation = "Brother" | "Daughter" | "Father" | "Friend" | "Mother" | "Other" | "Partner" | "Sister" | "Son" | "Spouse";
8808
+ export interface ReportAccountFilter {
8809
+ /** Allows you to report on a specific account type. */
8810
+ AccountTypeFilter?: AccountTypeFilter;
8066
8811
  /** 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. */
8067
8812
  ListID?: string[] | string;
8068
8813
  /** 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. */
@@ -8074,6 +8819,7 @@ export interface ReportAccountFilter {
8074
8819
  }
8075
8820
  /** @default: None */
8076
8821
  export type ReportBasis = "Accrual" | "Cash" | "None";
8822
+ export type ReportCalendar = "CalendarYear" | "FiscalYear" | "TaxYear";
8077
8823
  export interface ReportClassFilter {
8078
8824
  /** 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. */
8079
8825
  ListID?: string[] | string;
@@ -8130,6 +8876,8 @@ export interface ReportModifiedDateRangeFilter {
8130
8876
  ToReportModifiedDate?: string;
8131
8877
  }
8132
8878
  export type ReportModifiedDateRangeMacro = "All" | "LastMonth" | "LastMonthToDate" | "LastQuarter" | "LastQuarterToDate" | "LastWeek" | "LastWeekToDate" | "LastYear" | "LastYearToDate" | "NextFourWeeks" | "NextMonth" | "NextQuarter" | "NextWeek" | "NextYear" | "ThisMonth" | "ThisMonthToDate" | "ThisQuarter" | "ThisQuarterToDate" | "ThisWeek" | "ThisWeekToDate" | "ThisYear" | "ThisYearToDate" | "Today" | "Yesterday";
8879
+ /** @default: Today */
8880
+ export type ReportOpenBalanceAsOf = "ReportEndDate" | "Today";
8133
8881
  export interface ReportPeriod {
8134
8882
  /** Selects information from this date and later. The range of acceptable `FromReportDate` and `ToReportDate` values depends on how the report dates are determined. If the report dates are based on the dates of transactions, the range is 01/01/1901 to 12/31/9999. If the report dates are based on modification dates, the range will be 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST). If you omit `FromReportDate`, it will be set to 1970-01-01T00:00:00 (1969-12-31T16:00:00-08:00 PST). */
8135
8883
  FromReportDate?: string;
@@ -8159,6 +8907,8 @@ export interface ReportTxnTypeFilter {
8159
8907
  /** A list of the transaction types you want the report to cover. */
8160
8908
  TxnTypeFilter: TxnTypeFilter | TxnTypeFilter[];
8161
8909
  }
8910
+ export type ReturnColumns = "ActiveOnly" | "All" | "NonZero";
8911
+ export type ReturnRows = "ActiveOnly" | "All" | "NonZero";
8162
8912
  export interface RowData {
8163
8913
  /** An enumerated value that shows the type of data that this row contains. Values: account class customer `customerMessage` `customerType` employee item `jobType` label `memorizedTxn` `memorizedReport` name `otherName` `paymentMethod` `payrollItem` `salesRep` `salesTaxCode` `shipMethod` state style terms `toDo` vendor `vendorType` */
8164
8914
  RowType: RowType;
@@ -8934,6 +9684,12 @@ export interface SiteAddressBlock {
8934
9684
  /** The fifth line of an address (if a fifth line is needed). */
8935
9685
  Addr5?: string;
8936
9686
  }
9687
+ export interface SiteFilter {
9688
+ /** 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. */
9689
+ ListID?: string[] | string;
9690
+ /** 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. */
9691
+ FullName?: string[] | string;
9692
+ }
8937
9693
  export type SpecialAccountType = "AccountsPayable" | "AccountsReceivable" | "CondenseItemAdjustmentExpenses" | "CostOfGoodsSold" | "DirectDepositLiabilities" | "Estimates" | "ExchangeGainLoss" | "InventoryAssets" | "ItemReceiptAccount" | "OpeningBalanceEquity" | "PayrollExpenses" | "PayrollLiabilities" | "PettyCash" | "PurchaseOrders" | "ReconciliationDifferences" | "RetainedEarnings" | "SalesOrders" | "SalesTaxPayable" | "UncategorizedExpenses" | "UncategorizedIncome" | "UndepositedFunds";
8938
9694
  export type SpecialItemType = "FinanceCharge" | "ReimbursableExpenseGroup" | "ReimbursableExpenseSubtotal";
8939
9695
  export interface SubscribedServices {
@@ -8946,7 +9702,10 @@ export interface SubtotalRow {
8946
9702
  /** A list of `IColData` objects, each of which describes the data in one cell of the report. */
8947
9703
  ColData?: ColData | ColData[];
8948
9704
  }
9705
+ export type SummarizeBudgetColumnsBy = "Class" | "Customer" | "Date";
9706
+ export type SummarizeBudgetRowsBy = "Account" | "Class" | "Customer";
8949
9707
  export type SummarizeColumnsBy = "Account" | "BalanceSheet" | "Class" | "Customer" | "CustomerType" | "Day" | "Employee" | "FourWeek" | "HalfMonth" | "IncomeStatement" | "ItemDetail" | "ItemType" | "Month" | "Payee" | "PaymentMethod" | "PayrollItemDetail" | "PayrollYtdDetail" | "Quarter" | "SalesRep" | "SalesTaxCode" | "ShipMethod" | "Terms" | "TotalOnly" | "TwoWeek" | "Vendor" | "VendorType" | "Week" | "Year";
9708
+ export type SummarizeRowsBy = "Account" | "BalanceSheet" | "Class" | "Customer" | "CustomerType" | "Day" | "Employee" | "FourWeek" | "HalfMonth" | "IncomeStatement" | "ItemDetail" | "ItemType" | "Month" | "Payee" | "PaymentMethod" | "PayrollItemDetail" | "PayrollYtdDetail" | "Quarter" | "SalesRep" | "SalesTaxCode" | "ShipMethod" | "TaxLine" | "Terms" | "TotalOnly" | "TwoWeek" | "Vendor" | "VendorType" | "Week" | "Year";
8950
9709
  export interface SupervisorRef {
8951
9710
  /** 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. */
8952
9711
  ListID?: string;
@@ -8996,6 +9755,38 @@ export interface TextRow {
8996
9755
  /** The data in this cell of the report. */
8997
9756
  Value: string;
8998
9757
  }
9758
+ export interface TimeReportQueryRq {
9759
+ /** Allows you to report on time that has been recorded in a particular category. */
9760
+ TimeReportType: TimeReportType;
9761
+ /** Set `DisplayReport` to true to display this report within the QuickBooks UI. (Default is false.) If you want the request to display the report without returning any data to your application, set the `responseData` attribute to `includeNone`. */
9762
+ DisplayReport?: boolean;
9763
+ /** If you omit both `ToReportDate` and `FromReportDate`, the report will cover the current fiscal year to date. */
9764
+ ReportPeriod?: ReportPeriod;
9765
+ /** The time period covered by this report. */
9766
+ ReportDateMacro?: ReportDateMacro;
9767
+ /** Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements. */
9768
+ ReportEntityFilter?: ReportEntityFilter;
9769
+ /** Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements. */
9770
+ ReportItemFilter?: ReportItemFilter;
9771
+ /** Allows you to query for a specified class. 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. */
9772
+ ReportClassFilter?: ReportClassFilter;
9773
+ /** `SummarizeColumnsBy` determines which data the report calculates and how the columns will be labeled across the top of the report. For example, if you set the value to `scbTwoWeek`, the report’s column labels might be “Feb 10-23, 02,” “Feb 24-Mar9, 02,” and so on. */
9774
+ SummarizeColumnsBy?: SummarizeColumnsBy;
9775
+ /** A list of enum values showing which columns you want the report to return. (The report won’t return columns other than the ones you specify here.) */
9776
+ IncludeColumn?: IncludeColumn | IncludeColumn[];
9777
+ /** The default value is false, which means that the report will not include any subcolumn information. To include all available types of subcolumns for this report, set `IncludeSubcolumns` to true. The SDK will not return subcolumn information for data that can be easily computed. (For example, the SDK does not return the “percent of row” column.) */
9778
+ IncludeSubcolumns?: boolean;
9779
+ /** Specifies the type of year that will be used for this report. */
9780
+ ReportCalendar?: ReportCalendar;
9781
+ /** Specifies whether you want the report to include only rows with active information, only rows with nonzero values, or all rows regardless of their content or active status. */
9782
+ ReturnRows?: ReturnRows;
9783
+ /** Specifies whether you want the report to include only columns with active information, only columns with nonzero values, or all columns regardless of their content or active status. */
9784
+ ReturnColumns?: ReturnColumns;
9785
+ }
9786
+ export interface TimeReportQueryRs {
9787
+ ReportRet: ReportRet[];
9788
+ }
9789
+ export type TimeReportType = "TimeByItem" | "TimeByJobDetail" | "TimeByJobSummary" | "TimeByName";
8999
9790
  export interface TimeTrackingAdd {
9000
9791
  /** 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. */
9001
9792
  TxnDate?: string;
@@ -9121,6 +9912,18 @@ export interface TimeTrackingRet {
9121
9912
  /** If `IsBilled` is true, the tracked time has already been billed. */
9122
9913
  IsBilled?: boolean;
9123
9914
  }
9915
+ export interface ToInventorySiteLocationRef {
9916
+ /** 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. */
9917
+ ListID?: string;
9918
+ /** `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. */
9919
+ FullName?: string;
9920
+ }
9921
+ export interface ToInventorySiteRef {
9922
+ /** 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. */
9923
+ ListID?: string;
9924
+ /** `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. */
9925
+ FullName?: string;
9926
+ }
9124
9927
  export interface TotalBalanceFilter {
9125
9928
  /** Indicates whether to filter for amounts that are less than, equal to or less than, exactly equal to, greater than, or equal to or greater than the given `Amount`. */
9126
9929
  Operator: Operator;
@@ -9135,6 +9938,266 @@ export interface TotalRow {
9135
9938
  }
9136
9939
  /** @default: CardNotPresent */
9137
9940
  export type TransactionMode = "CardNotPresent" | "CardPresent";
9941
+ export interface TransferAdd {
9942
+ /** 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. */
9943
+ TxnDate?: string;
9944
+ /** Account that money will be transferred from. */
9945
+ TransferFromAccountRef?: TransferFromAccountRef;
9946
+ /** Account that money will be transferred to. */
9947
+ TransferToAccountRef?: TransferToAccountRef;
9948
+ /** 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. */
9949
+ ClassRef?: ClassRef;
9950
+ /** A monetary amount. */
9951
+ Amount?: string;
9952
+ /** Additional information. */
9953
+ Memo?: string;
9954
+ }
9955
+ export interface TransferAddRq {
9956
+ TransferAdd: TransferAdd;
9957
+ /** 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. */
9958
+ IncludeRetElement?: string[] | string;
9959
+ }
9960
+ export interface TransferAddRs {
9961
+ TransferRet?: TransferRet;
9962
+ }
9963
+ export interface TransferFromAccountRef {
9964
+ /** 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. */
9965
+ ListID?: string;
9966
+ /** `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. */
9967
+ FullName?: string;
9968
+ }
9969
+ export interface TransferInventoryAdd {
9970
+ /** 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. */
9971
+ TxnDate?: string;
9972
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
9973
+ RefNumber?: string;
9974
+ /** Inventory site that transfer will be taken from. */
9975
+ FromInventorySiteRef: FromInventorySiteRef;
9976
+ /** Inventory site that transfer will be sent to. */
9977
+ ToInventorySiteRef: ToInventorySiteRef;
9978
+ /** Additional information. */
9979
+ Memo?: string;
9980
+ /** Allows for the attachment of a user defined GUID value. */
9981
+ ExternalGUID?: string;
9982
+ /** List of lines for inventory transfers. */
9983
+ TransferInventoryLineAdd?: TransferInventoryLineAdd | TransferInventoryLineAdd[];
9984
+ }
9985
+ export interface TransferInventoryAddRq {
9986
+ TransferInventoryAdd: TransferInventoryAdd;
9987
+ /** 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. */
9988
+ IncludeRetElement?: string[] | string;
9989
+ }
9990
+ export interface TransferInventoryAddRs {
9991
+ TransferInventoryRet?: TransferInventoryRet;
9992
+ ErrorRecovery?: ErrorRecovery;
9993
+ }
9994
+ export interface TransferInventoryLineAdd {
9995
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
9996
+ ItemRef?: ItemRef;
9997
+ /** Location within the inventory site that transfer will be taken from. */
9998
+ FromInventorySiteLocationRef?: FromInventorySiteLocationRef;
9999
+ /** Location within the inventory site that transfer will be sent to. */
10000
+ ToInventorySiteLocationRef?: ToInventorySiteLocationRef;
10001
+ /** Quantity of items transferred. */
10002
+ QuantityToTransfer?: number;
10003
+ /** The serial number of the asset. */
10004
+ SerialNumber?: string;
10005
+ /** The lot number of the asset. */
10006
+ LotNumber?: string;
10007
+ }
10008
+ export interface TransferInventoryLineMod {
10009
+ /** 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. */
10010
+ TxnLineID: string;
10011
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
10012
+ ItemRef?: ItemRef;
10013
+ /** Location within the inventory site that transfer will be taken from. */
10014
+ FromInventorySiteLocationRef?: FromInventorySiteLocationRef;
10015
+ /** Location within the inventory site that transfer will be sent to. */
10016
+ ToInventorySiteLocationRef?: ToInventorySiteLocationRef;
10017
+ /** Quantity of items transferred. */
10018
+ QuantityToTransfer?: number;
10019
+ /** The serial number of the asset. */
10020
+ SerialNumber?: string;
10021
+ /** The lot number of the asset. */
10022
+ LotNumber?: string;
10023
+ }
10024
+ export interface TransferInventoryLineRet {
10025
+ /** 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. */
10026
+ TxnLineID: string;
10027
+ /** Depending on the request containing it, `ItemRef` can refer to an item on any Item list such as `ItemDiscount`, `ItemInventory`, and so forth, or it may accept only a subset of item types. For example, here are some requests that impose limits on what items `ItemRef` can refer to. For `PurchaseOrder` and Bill requests, `ItemRef` cannot refer to discount items or sales-tax `itemsFor` `VehicleMilageAdd` requests, the `ItemRef` must refer to a service item or an other charge item.For `BillingRateAdd` requests, the `ItemRef` must refer to a service item. You can use an `ItemQuery` request to get information about all the items that are set up in the QuickBooks file. “Items” are line items used for fast entry on sales and purchase forms. They include services and goods that a business buys and sells, as well as special items that perform calculations–for example, subtotal, discount, and sales-tax items. Note: In a request, if an `ItemRef` aggregate includes both `FullName` and `ListID`, `FullName` will be ignored. */
10028
+ ItemRef?: ItemRef;
10029
+ /** Location within the inventory site that transfer will be taken from. */
10030
+ FromInventorySiteLocationRef?: FromInventorySiteLocationRef;
10031
+ /** Location within the inventory site that transfer will be sent to. */
10032
+ ToInventorySiteLocationRef?: ToInventorySiteLocationRef;
10033
+ /** Quantity of items transferred. */
10034
+ QuantityTransferred?: number;
10035
+ /** The serial number of the asset. */
10036
+ SerialNumber?: string;
10037
+ /** The lot number of the asset. */
10038
+ LotNumber?: string;
10039
+ /** The expiration date of the inventory serial/lot number. Expiration `Date` is supported from QB Desktop 2023 version 3 (USA & Canada) and SDK 16.0. */
10040
+ ExpirationDateForSerialLotNumber: string;
10041
+ }
10042
+ export interface TransferInventoryMod {
10043
+ /** 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. */
10044
+ TxnID: string;
10045
+ /** 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. */
10046
+ EditSequence: string;
10047
+ /** 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. */
10048
+ TxnDate?: string;
10049
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
10050
+ RefNumber?: string;
10051
+ /** Inventory site that transfer will be taken from. */
10052
+ FromInventorySiteRef?: FromInventorySiteRef;
10053
+ /** Inventory site that transfer will be sent to. */
10054
+ ToInventorySiteRef?: ToInventorySiteRef;
10055
+ /** Additional information. */
10056
+ Memo?: string;
10057
+ /** List of lines for inventory transfers. */
10058
+ TransferInventoryLineMod?: TransferInventoryLineMod | TransferInventoryLineMod[];
10059
+ }
10060
+ export interface TransferInventoryModRq {
10061
+ TransferInventoryMod: TransferInventoryMod;
10062
+ /** 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. */
10063
+ IncludeRetElement?: string[] | string;
10064
+ }
10065
+ export interface TransferInventoryModRs {
10066
+ TransferInventoryRet?: TransferInventoryRet;
10067
+ ErrorRecovery?: ErrorRecovery;
10068
+ }
10069
+ export interface TransferInventoryQueryRq {
10070
+ /** 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. */
10071
+ TxnID?: string[] | string;
10072
+ /** 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. */
10073
+ RefNumber?: string[] | string;
10074
+ /** 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. */
10075
+ RefNumberCaseSensitive?: string[] | string;
10076
+ /** 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. */
10077
+ MaxReturned?: number;
10078
+ /** 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.) */
10079
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
10080
+ /** Filters according to the original transaction dates. */
10081
+ TxnDateRangeFilter?: TxnDateRangeFilter;
10082
+ /** 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. */
10083
+ EntityFilter?: EntityFilter;
10084
+ /** 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. */
10085
+ AccountFilter?: AccountFilter;
10086
+ /** Filters according to `RefNumber`. */
10087
+ RefNumberFilter?: RefNumberFilter;
10088
+ /** Filters according to `RefNumber`. The filtering code will do a numerical comparison (if `FromRefNumber` and `ToRefNumber` only contain digits) or a lexicographical comparison (if either `FromRefNumber` or `ToRefNumber` contain any nondigit characters). In the first situation, if you need to query for a `RefNumber` that is larger than the maximum long integer value of 2147483647, one workaround is to specify a `FromRefNumber` that is less than or equal to 2147483647 without specifying a `ToRefNumber`. */
10089
+ RefNumberRangeFilter?: RefNumberRangeFilter;
10090
+ /** Allows you to report on Sites. */
10091
+ SiteFilter?: SiteFilter;
10092
+ /** 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. */
10093
+ IncludeLineItems?: boolean;
10094
+ /** 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. */
10095
+ IncludeRetElement?: string[] | string;
10096
+ }
10097
+ export interface TransferInventoryQueryRs {
10098
+ TransferInventoryRet: TransferInventoryRet[];
10099
+ }
10100
+ export interface TransferInventoryRet {
10101
+ /** 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. */
10102
+ TxnID: string;
10103
+ /** Time the object was created. */
10104
+ TimeCreated: string;
10105
+ /** Time the object was last modified. */
10106
+ TimeModified: string;
10107
+ /** 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. */
10108
+ EditSequence: string;
10109
+ /** An identifying number for this transaction. */
10110
+ TxnNumber?: number;
10111
+ /** 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. */
10112
+ TxnDate?: string;
10113
+ /** A string of characters that refers to this transaction and that can be arbitrarily changed by the QuickBooks user. In a `BillPaymentCheckAdd` request, if you want to set the check number, use `RefNumber`.`Note` (especially relevant to `CheckAdd` requests): When `RefNumber` is left blank in an SDK transaction add request (that is, or ), the `RefNumber` will be left blank in QuickBooks. This behavior is new as of QBFC3. It used to select the next sequential reference number since the last one used by QuickBooks, as though no `RefNumber` had been provided. This is especially relevant to `CheckAdd` requests because with the current behavior, you will not know the number until the check is printed. */
10114
+ RefNumber?: string;
10115
+ /** Inventory site that transfer will be taken from. */
10116
+ FromInventorySiteRef?: FromInventorySiteRef;
10117
+ /** Inventory site that transfer will be sent to. */
10118
+ ToInventorySiteRef?: ToInventorySiteRef;
10119
+ /** Additional information. */
10120
+ Memo?: string;
10121
+ /** Allows for the attachment of a user defined GUID value. */
10122
+ ExternalGUID?: string;
10123
+ /** List of lines for inventory transfers. */
10124
+ TransferInventoryLineRet?: TransferInventoryLineRet | TransferInventoryLineRet[];
10125
+ }
10126
+ export interface TransferMod {
10127
+ /** 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. */
10128
+ TxnID: string;
10129
+ /** 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. */
10130
+ EditSequence: string;
10131
+ /** 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. */
10132
+ TxnDate?: string;
10133
+ /** Account that money will be transferred from. */
10134
+ TransferFromAccountRef?: TransferFromAccountRef;
10135
+ /** Account that money will be transferred to. */
10136
+ TransferToAccountRef?: TransferToAccountRef;
10137
+ /** 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. */
10138
+ ClassRef?: ClassRef;
10139
+ /** A monetary amount. */
10140
+ Amount?: string;
10141
+ /** Additional information. */
10142
+ Memo?: string;
10143
+ }
10144
+ export interface TransferModRq {
10145
+ TransferMod: TransferMod;
10146
+ /** 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. */
10147
+ IncludeRetElement?: string[] | string;
10148
+ }
10149
+ export interface TransferModRs {
10150
+ TransferRet?: TransferRet;
10151
+ }
10152
+ export interface TransferQueryRq {
10153
+ /** 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. */
10154
+ TxnID?: string[] | string;
10155
+ /** 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. */
10156
+ MaxReturned?: number;
10157
+ /** 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.) */
10158
+ ModifiedDateRangeFilter?: ModifiedDateRangeFilter;
10159
+ /** Filters according to the original transaction dates. */
10160
+ TxnDateRangeFilter?: TxnDateRangeFilter;
10161
+ /** 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. */
10162
+ IncludeRetElement?: string[] | string;
10163
+ }
10164
+ export interface TransferQueryRs {
10165
+ TransferRet: TransferRet[];
10166
+ }
10167
+ export interface TransferRet {
10168
+ /** 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. */
10169
+ TxnID: string;
10170
+ /** Time the object was created. */
10171
+ TimeCreated: string;
10172
+ /** Time the object was last modified. */
10173
+ TimeModified: string;
10174
+ /** 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. */
10175
+ EditSequence: string;
10176
+ /** An identifying number for this transaction. */
10177
+ TxnNumber?: number;
10178
+ /** 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. */
10179
+ TxnDate?: string;
10180
+ /** Account that money will be transferred from. */
10181
+ TransferFromAccountRef?: TransferFromAccountRef;
10182
+ /** Balance for the from account. */
10183
+ FromAccountBalance?: string;
10184
+ /** Account that money will be transferred to. */
10185
+ TransferToAccountRef?: TransferToAccountRef;
10186
+ /** Balance for the to account. */
10187
+ ToAccountBalance?: string;
10188
+ /** 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. */
10189
+ ClassRef?: ClassRef;
10190
+ /** A monetary amount. */
10191
+ Amount?: string;
10192
+ /** Additional information. */
10193
+ Memo?: string;
10194
+ }
10195
+ export interface TransferToAccountRef {
10196
+ /** 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. */
10197
+ ListID?: string;
10198
+ /** `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. */
10199
+ FullName?: string;
10200
+ }
9138
10201
  export interface TxnDateRangeFilter {
9139
10202
  /** Selects transactions created on or after this date. Both `FromTxnDate` and `ToTxnDate` must be between 01/01/1901 and 12/31/9999.
9140
10203