qubesync 0.1.0 → 0.2.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.
Files changed (258) hide show
  1. package/CHANGELOG.md +38 -2
  2. package/README.md +188 -5
  3. package/client.js +660 -0
  4. package/index.d.ts +211 -1
  5. package/index.js +5 -1
  6. package/index.mjs +2 -0
  7. package/operations/account.d.ts +263 -0
  8. package/operations/account.js +50 -0
  9. package/operations/account_tax_line_info.d.ts +31 -0
  10. package/operations/account_tax_line_info.js +26 -0
  11. package/operations/aging_report.d.ts +100 -0
  12. package/operations/aging_report.js +26 -0
  13. package/operations/alert.d.ts +118 -0
  14. package/operations/alert.js +50 -0
  15. package/operations/ar_refund_credit_card.d.ts +201 -0
  16. package/operations/ar_refund_credit_card.js +38 -0
  17. package/operations/bar_code.d.ts +40 -0
  18. package/operations/bar_code.js +26 -0
  19. package/operations/bill.d.ts +612 -0
  20. package/operations/bill.js +50 -0
  21. package/operations/bill_payment_check.d.ts +276 -0
  22. package/operations/bill_payment_check.js +50 -0
  23. package/operations/bill_payment_credit_card.d.ts +178 -0
  24. package/operations/bill_payment_credit_card.js +38 -0
  25. package/operations/bill_to_pay.d.ts +54 -0
  26. package/operations/bill_to_pay.js +26 -0
  27. package/operations/billing_rate.d.ts +159 -0
  28. package/operations/billing_rate.js +38 -0
  29. package/operations/budget_summary_report.d.ts +71 -0
  30. package/operations/budget_summary_report.js +26 -0
  31. package/operations/build_assembly.d.ts +264 -0
  32. package/operations/build_assembly.js +50 -0
  33. package/operations/charge.d.ts +330 -0
  34. package/operations/charge.js +50 -0
  35. package/operations/check.d.ts +394 -0
  36. package/operations/check.js +50 -0
  37. package/operations/class.d.ts +170 -0
  38. package/operations/class.js +50 -0
  39. package/operations/cleared_status.d.ts +43 -0
  40. package/operations/cleared_status.js +26 -0
  41. package/operations/client.d.ts +254 -0
  42. package/operations/company.d.ts +36 -0
  43. package/operations/company.js +26 -0
  44. package/operations/company_activity.d.ts +32 -0
  45. package/operations/company_activity.js +26 -0
  46. package/operations/credit_card_charge.d.ts +280 -0
  47. package/operations/credit_card_charge.js +50 -0
  48. package/operations/credit_card_credit.d.ts +280 -0
  49. package/operations/credit_card_credit.js +50 -0
  50. package/operations/credit_memo.d.ts +642 -0
  51. package/operations/credit_memo.js +50 -0
  52. package/operations/currency.d.ts +195 -0
  53. package/operations/currency.js +50 -0
  54. package/operations/custom_detail_report.d.ts +108 -0
  55. package/operations/custom_detail_report.js +26 -0
  56. package/operations/custom_summary_report.d.ts +119 -0
  57. package/operations/custom_summary_report.js +26 -0
  58. package/operations/customer.d.ts +639 -0
  59. package/operations/customer.js +50 -0
  60. package/operations/customer_msg.d.ts +121 -0
  61. package/operations/customer_msg.js +38 -0
  62. package/operations/customer_type.d.ts +127 -0
  63. package/operations/customer_type.js +38 -0
  64. package/operations/data_event_recovery_info.d.ts +61 -0
  65. package/operations/data_event_recovery_info.js +38 -0
  66. package/operations/data_ext.d.ts +197 -0
  67. package/operations/data_ext.js +50 -0
  68. package/operations/data_ext_def.d.ts +173 -0
  69. package/operations/data_ext_def.js +62 -0
  70. package/operations/date_driven_terms.d.ts +141 -0
  71. package/operations/date_driven_terms.js +38 -0
  72. package/operations/deposit.d.ts +402 -0
  73. package/operations/deposit.js +50 -0
  74. package/operations/employee.d.ts +683 -0
  75. package/operations/employee.js +50 -0
  76. package/operations/employee_default.d.ts +133 -0
  77. package/operations/employee_default.js +38 -0
  78. package/operations/entity.d.ts +96 -0
  79. package/operations/entity.js +26 -0
  80. package/operations/estimate.d.ts +590 -0
  81. package/operations/estimate.js +50 -0
  82. package/operations/form1099_category_account_mapping.d.ts +89 -0
  83. package/operations/form1099_category_account_mapping.js +38 -0
  84. package/operations/general_detail_report.d.ts +108 -0
  85. package/operations/general_detail_report.js +26 -0
  86. package/operations/general_summary_report.d.ts +115 -0
  87. package/operations/general_summary_report.js +26 -0
  88. package/operations/host.d.ts +43 -0
  89. package/operations/host.js +26 -0
  90. package/operations/index.js +397 -0
  91. package/operations/inventory_adjustment.d.ts +389 -0
  92. package/operations/inventory_adjustment.js +50 -0
  93. package/operations/inventory_site.d.ts +247 -0
  94. package/operations/inventory_site.js +50 -0
  95. package/operations/invoice.d.ts +682 -0
  96. package/operations/invoice.js +50 -0
  97. package/operations/item.d.ts +100 -0
  98. package/operations/item.js +26 -0
  99. package/operations/item_assemblies_can_build.d.ts +41 -0
  100. package/operations/item_assemblies_can_build.js +26 -0
  101. package/operations/item_discount.d.ts +256 -0
  102. package/operations/item_discount.js +50 -0
  103. package/operations/item_fixed_asset.d.ts +382 -0
  104. package/operations/item_fixed_asset.js +50 -0
  105. package/operations/item_group.d.ts +236 -0
  106. package/operations/item_group.js +50 -0
  107. package/operations/item_inventory.d.ts +350 -0
  108. package/operations/item_inventory.js +50 -0
  109. package/operations/item_inventory_assembly.d.ts +368 -0
  110. package/operations/item_inventory_assembly.js +50 -0
  111. package/operations/item_non_inventory.d.ts +264 -0
  112. package/operations/item_non_inventory.js +50 -0
  113. package/operations/item_other_charge.d.ts +244 -0
  114. package/operations/item_other_charge.js +50 -0
  115. package/operations/item_payment.d.ts +220 -0
  116. package/operations/item_payment.js +50 -0
  117. package/operations/item_receipt.d.ts +362 -0
  118. package/operations/item_receipt.js +50 -0
  119. package/operations/item_sales_tax.d.ts +228 -0
  120. package/operations/item_sales_tax.js +50 -0
  121. package/operations/item_sales_tax_group.d.ts +192 -0
  122. package/operations/item_sales_tax_group.js +50 -0
  123. package/operations/item_service.d.ts +256 -0
  124. package/operations/item_service.js +50 -0
  125. package/operations/item_sites.d.ts +81 -0
  126. package/operations/item_sites.js +26 -0
  127. package/operations/item_subtotal.d.ts +188 -0
  128. package/operations/item_subtotal.js +50 -0
  129. package/operations/job_report.d.ts +99 -0
  130. package/operations/job_report.js +26 -0
  131. package/operations/job_type.d.ts +127 -0
  132. package/operations/job_type.js +38 -0
  133. package/operations/journal_entry.d.ts +339 -0
  134. package/operations/journal_entry.js +50 -0
  135. package/operations/lead.d.ts +291 -0
  136. package/operations/lead.js +50 -0
  137. package/operations/list.d.ts +39 -0
  138. package/operations/list.js +26 -0
  139. package/operations/list_deleted.d.ts +44 -0
  140. package/operations/list_deleted.js +26 -0
  141. package/operations/list_display.d.ts +65 -0
  142. package/operations/list_display.js +38 -0
  143. package/operations/list_merge.d.ts +58 -0
  144. package/operations/list_merge.js +26 -0
  145. package/operations/other_name.d.ts +280 -0
  146. package/operations/other_name.js +50 -0
  147. package/operations/paycheck.d.ts +82 -0
  148. package/operations/paycheck.js +26 -0
  149. package/operations/payment_method.d.ts +131 -0
  150. package/operations/payment_method.js +38 -0
  151. package/operations/payroll_detail_report.d.ts +97 -0
  152. package/operations/payroll_detail_report.js +26 -0
  153. package/operations/payroll_item.d.ts +83 -0
  154. package/operations/payroll_item.js +26 -0
  155. package/operations/payroll_item_addition.d.ts +95 -0
  156. package/operations/payroll_item_addition.js +38 -0
  157. package/operations/payroll_item_company_contribution.d.ts +105 -0
  158. package/operations/payroll_item_company_contribution.js +38 -0
  159. package/operations/payroll_item_deduction.d.ts +101 -0
  160. package/operations/payroll_item_deduction.js +38 -0
  161. package/operations/payroll_item_direct_deposit.d.ts +65 -0
  162. package/operations/payroll_item_direct_deposit.js +38 -0
  163. package/operations/payroll_item_non_wage.d.ts +92 -0
  164. package/operations/payroll_item_non_wage.js +26 -0
  165. package/operations/payroll_item_tax.d.ts +108 -0
  166. package/operations/payroll_item_tax.js +38 -0
  167. package/operations/payroll_item_wage.d.ts +169 -0
  168. package/operations/payroll_item_wage.js +50 -0
  169. package/operations/payroll_item_workers_compensation.d.ts +77 -0
  170. package/operations/payroll_item_workers_compensation.js +38 -0
  171. package/operations/payroll_last_period.d.ts +31 -0
  172. package/operations/payroll_last_period.js +26 -0
  173. package/operations/payroll_liability_adjustment.d.ts +137 -0
  174. package/operations/payroll_liability_adjustment.js +38 -0
  175. package/operations/payroll_liability_check.d.ts +82 -0
  176. package/operations/payroll_liability_check.js +26 -0
  177. package/operations/payroll_prior_payment.d.ts +126 -0
  178. package/operations/payroll_prior_payment.js +38 -0
  179. package/operations/payroll_summary_report.d.ts +107 -0
  180. package/operations/payroll_summary_report.js +26 -0
  181. package/operations/payroll_year_to_date_adjustment.d.ts +156 -0
  182. package/operations/payroll_year_to_date_adjustment.js +38 -0
  183. package/operations/preferences.d.ts +64 -0
  184. package/operations/preferences.js +38 -0
  185. package/operations/price_level.d.ts +234 -0
  186. package/operations/price_level.js +50 -0
  187. package/operations/purchase_order.d.ts +620 -0
  188. package/operations/purchase_order.js +50 -0
  189. package/operations/qb_command_exec.d.ts +49 -0
  190. package/operations/qb_command_exec.js +26 -0
  191. package/operations/receive_payment.d.ts +450 -0
  192. package/operations/receive_payment.js +50 -0
  193. package/operations/receive_payment_to_deposit.d.ts +36 -0
  194. package/operations/receive_payment_to_deposit.js +26 -0
  195. package/operations/sales_order.d.ts +612 -0
  196. package/operations/sales_order.js +50 -0
  197. package/operations/sales_receipt.d.ts +650 -0
  198. package/operations/sales_receipt.js +50 -0
  199. package/operations/sales_rep.d.ts +170 -0
  200. package/operations/sales_rep.js +50 -0
  201. package/operations/sales_tax_code.d.ts +194 -0
  202. package/operations/sales_tax_code.js +50 -0
  203. package/operations/sales_tax_payable.d.ts +42 -0
  204. package/operations/sales_tax_payable.js +26 -0
  205. package/operations/sales_tax_payment_check.d.ts +254 -0
  206. package/operations/sales_tax_payment_check.js +50 -0
  207. package/operations/sales_tax_return.d.ts +35 -0
  208. package/operations/sales_tax_return.js +26 -0
  209. package/operations/sales_tax_return_line.d.ts +36 -0
  210. package/operations/sales_tax_return_line.js +26 -0
  211. package/operations/ship_method.d.ts +121 -0
  212. package/operations/ship_method.js +38 -0
  213. package/operations/special_account.d.ts +40 -0
  214. package/operations/special_account.js +26 -0
  215. package/operations/special_item.d.ts +44 -0
  216. package/operations/special_item.js +26 -0
  217. package/operations/standard_terms.d.ts +133 -0
  218. package/operations/standard_terms.js +38 -0
  219. package/operations/template.d.ts +36 -0
  220. package/operations/template.js +26 -0
  221. package/operations/terms.d.ts +90 -0
  222. package/operations/terms.js +26 -0
  223. package/operations/time_report.d.ts +84 -0
  224. package/operations/time_report.js +26 -0
  225. package/operations/time_tracking.d.ts +214 -0
  226. package/operations/time_tracking.js +50 -0
  227. package/operations/to_do.d.ts +254 -0
  228. package/operations/to_do.js +50 -0
  229. package/operations/transaction.d.ts +244 -0
  230. package/operations/transaction.js +26 -0
  231. package/operations/transfer.d.ts +178 -0
  232. package/operations/transfer.js +50 -0
  233. package/operations/transfer_inventory.d.ts +290 -0
  234. package/operations/transfer_inventory.js +50 -0
  235. package/operations/txn.d.ts +39 -0
  236. package/operations/txn.js +26 -0
  237. package/operations/txn_deleted.d.ts +44 -0
  238. package/operations/txn_deleted.js +26 -0
  239. package/operations/txn_display.d.ts +69 -0
  240. package/operations/txn_display.js +38 -0
  241. package/operations/txn_void.d.ts +39 -0
  242. package/operations/txn_void.js +26 -0
  243. package/operations/types.d.ts +1259 -0
  244. package/operations/unit_of_measure_set.d.ts +168 -0
  245. package/operations/unit_of_measure_set.js +38 -0
  246. package/operations/vehicle.d.ts +168 -0
  247. package/operations/vehicle.js +50 -0
  248. package/operations/vehicle_mileage.d.ts +147 -0
  249. package/operations/vehicle_mileage.js +38 -0
  250. package/operations/vendor.d.ts +541 -0
  251. package/operations/vendor.js +50 -0
  252. package/operations/vendor_credit.d.ts +365 -0
  253. package/operations/vendor_credit.js +50 -0
  254. package/operations/vendor_type.d.ts +127 -0
  255. package/operations/vendor_type.js +38 -0
  256. package/operations/workers_comp_code.d.ts +199 -0
  257. package/operations/workers_comp_code.js +50 -0
  258. package/package.json +14 -4
@@ -0,0 +1,99 @@
1
+ // Generated from operations.json by scripts/generate-operations.js: don't edit.
2
+
3
+ import type { Client } from "../index";
4
+ import type { OperationOptions, QueuedRequest, ReportAccountFilter, ReportClassFilter, ReportEntityFilter, ReportItemFilter, ReportModifiedDateRangeFilter, ReportPeriod, ReportTxnTypeFilter } from "./types";
5
+
6
+ /** QuickBooks job report operations: `qube.jobReport.<action>(connectionId, params, { webhookUrl })`. */
7
+ export declare class JobReport {
8
+ constructor(client: Client);
9
+ /**
10
+ * List job reports: `GET /connections/{connection_id}/job-reports`, queued for QuickBooks.
11
+ *
12
+ * The answer comes to `webhookUrl` as one webhook.
13
+ * Params go in the query string.
14
+ *
15
+ * Fields: `display_report`, `include_subcolumns`, `job_report_type` (required), `report_account_filter`, `report_class_filter`, `report_date_macro`, `report_detail_level_filter`, `report_entity_filter`, `report_item_filter`, `report_modified_date_range_filter`, `report_modified_date_range_macro`, `report_period`, `report_posting_status_filter`, `report_txn_type_filter`, `request_id`, `summarize_columns_by`.
16
+ *
17
+ * Resolves to the queued request.
18
+ * @see https://docs.qubesync.com/api-reference/v2/job-reports/list-job-reports
19
+ */
20
+ query(connectionId: string, params: JobReportQueryParams, options: OperationOptions): Promise<QueuedRequest>;
21
+ }
22
+
23
+ /**
24
+ * The params of `job_report.query`: List job reports.
25
+ */
26
+ export interface JobReportQueryParams {
27
+ /**
28
+ * Set `display_report` 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.
29
+ */
30
+ display_report?: boolean;
31
+ /**
32
+ * The default value is false, which means that the report won’t include any subcolumn information. To include all available types of subcolumns for this report, set `include_subcolumns` to true. The SDK won’t return subcolumn information for data that can be easily computed. (For example, the SDK doesn’t return the “percent of row” column.)
33
+ */
34
+ include_subcolumns?: boolean;
35
+ /**
36
+ * The type of job report.
37
+ */
38
+ job_report_type: "ItemEstimatesVsActuals" | "ItemProfitability" | "JobEstimatesVsActualsDetail" | "JobEstimatesVsActualsSummary" | "JobProfitabilityDetail" | "JobProfitabilitySummary";
39
+ /**
40
+ * Allows you to query for a specified account type or for specific list elements.
41
+ */
42
+ report_account_filter?: ReportAccountFilter;
43
+ /**
44
+ * 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.
45
+ */
46
+ report_class_filter?: ReportClassFilter;
47
+ /**
48
+ * The time period covered by this report.
49
+ *
50
+ * Choose at most one of: `report_period`, or `report_date_macro`.
51
+ */
52
+ report_date_macro?: "All" | "LastMonth" | "LastMonthToDate" | "LastQuarter" | "LastQuarterToDate" | "LastWeek" | "LastWeekToDate" | "LastYear" | "LastYearToDate" | "NextFourWeeks" | "NextMonth" | "NextQuarter" | "NextWeek" | "NextYear" | "ThisMonth" | "ThisMonthToDate" | "ThisQuarter" | "ThisQuarterToDate" | "ThisWeek" | "ThisWeekToDate" | "ThisYear" | "ThisYearToDate" | "Today" | "Yesterday";
53
+ /**
54
+ * The level of detail to include in the report.
55
+ */
56
+ report_detail_level_filter?: "All" | "AllExceptSummary" | "SummaryOnly";
57
+ /**
58
+ * Allows you to query for a specified name type (customer, employee, vendor, or other) or query for specific list elements.
59
+ */
60
+ report_entity_filter?: ReportEntityFilter;
61
+ /**
62
+ * Allows you to query for a specified item type (for example, discount, inventory, or non-inventory) or query for specific list elements.
63
+ */
64
+ report_item_filter?: ReportItemFilter;
65
+ /**
66
+ * Returns reports that were modified between these two dates (inclusive). The range of acceptable dates for both `from_report_modified_date` and `to_report_modified_date` is 1970-01-01 to 2038-01-19T03:14:07 (2038-01-18T19:14:07-08:00 PST).
67
+ *
68
+ * Choose at most one of: `report_modified_date_range_filter`, or `report_modified_date_range_macro`.
69
+ */
70
+ report_modified_date_range_filter?: ReportModifiedDateRangeFilter;
71
+ /**
72
+ * The time period covered by this report.
73
+ *
74
+ * Choose at most one of: `report_modified_date_range_filter`, or `report_modified_date_range_macro`.
75
+ */
76
+ report_modified_date_range_macro?: "All" | "LastMonth" | "LastMonthToDate" | "LastQuarter" | "LastQuarterToDate" | "LastWeek" | "LastWeekToDate" | "LastYear" | "LastYearToDate" | "NextFourWeeks" | "NextMonth" | "NextQuarter" | "NextWeek" | "NextYear" | "ThisMonth" | "ThisMonthToDate" | "ThisQuarter" | "ThisQuarterToDate" | "ThisWeek" | "ThisWeekToDate" | "ThisYear" | "ThisYearToDate" | "Today" | "Yesterday";
77
+ /**
78
+ * If you omit both `to_report_date` and `from_report_date`, the report will cover the current fiscal year to date.
79
+ *
80
+ * Choose at most one of: `report_period`, or `report_date_macro`.
81
+ */
82
+ report_period?: ReportPeriod;
83
+ /**
84
+ * Allows you to query for posting reports, non-posting reports, or reports that are either one.
85
+ */
86
+ report_posting_status_filter?: "Either" | "NonPosting" | "Posting";
87
+ /**
88
+ * Allows you to report on specific transaction types (for example, charge, check, deposit, or estimate).
89
+ */
90
+ report_txn_type_filter?: ReportTxnTypeFilter;
91
+ /**
92
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
93
+ */
94
+ request_id?: string;
95
+ /**
96
+ * `summarize_columns_by` 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.
97
+ */
98
+ summarize_columns_by?: "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";
99
+ }
@@ -0,0 +1,26 @@
1
+ // Generated from operations.json by scripts/generate-operations.js: don't edit.
2
+ "use strict";
3
+
4
+ /** QuickBooks job report operations. Types: job_report.d.ts. */
5
+ class JobReport {
6
+ #client;
7
+
8
+ /** @param {import("../index").Client} client */
9
+ constructor(client) {
10
+ this.#client = client;
11
+ }
12
+
13
+ /**
14
+ * List job reports.
15
+ * @param {string} connectionId
16
+ * @param {import("./job_report").JobReportQueryParams} params
17
+ * @param {import("./types").OperationOptions} options
18
+ * @returns {Promise<import("./types").QueuedRequest>}
19
+ * @see https://docs.qubesync.com/api-reference/v2/job-reports/list-job-reports
20
+ */
21
+ query(connectionId, params, options) {
22
+ return this.#client.queue("job_report.query", connectionId, params, options);
23
+ }
24
+ }
25
+
26
+ module.exports = { JobReport };
@@ -0,0 +1,127 @@
1
+ // Generated from operations.json by scripts/generate-operations.js: don't edit.
2
+
3
+ import type { Client } from "../index";
4
+ import type { OperationOptions, QueuedRequest, CurrencyRef, NameFilter, NameRangeFilter } from "./types";
5
+
6
+ /** QuickBooks job type operations: `qube.jobType.<action>(connectionId, params, { webhookUrl })`. */
7
+ export declare class JobType {
8
+ constructor(client: Client);
9
+ /**
10
+ * Create job type: `POST /connections/{connection_id}/job-types`, queued for QuickBooks.
11
+ *
12
+ * The answer comes to `webhookUrl` as one webhook.
13
+ * Params go in the JSON body.
14
+ *
15
+ * Fields: `include_ret_element`, `is_active`, `name` (required), `parent_ref`, `request_id`.
16
+ *
17
+ * Resolves to the queued request.
18
+ * @see https://docs.qubesync.com/api-reference/v2/job-types/create-job-type
19
+ */
20
+ create(connectionId: string, params: JobTypeCreateParams, options: OperationOptions): Promise<QueuedRequest>;
21
+ /**
22
+ * List job types: `GET /connections/{connection_id}/job-types`, queued for QuickBooks.
23
+ *
24
+ * The answer comes to `webhookUrl` as one webhook.
25
+ * Params go in the query string.
26
+ *
27
+ * Fields: `active_status`, `from_modified_date`, `full_name`, `include_ret_element`, `list_id`, `max_returned`, `meta_data`, `name_filter`, `name_range_filter`, `request_id`, `to_modified_date`.
28
+ *
29
+ * Resolves to the queued request.
30
+ * @see https://docs.qubesync.com/api-reference/v2/job-types/list-job-types
31
+ */
32
+ query(connectionId: string, params: JobTypeQueryParams | undefined, options: OperationOptions): Promise<QueuedRequest>;
33
+ }
34
+
35
+ /**
36
+ * The params of `job_type.create`: Create job type.
37
+ */
38
+ export interface JobTypeCreateParams {
39
+ include_ret_element?: Array<"EditSequence" | "ExternalGUID" | "FullName" | "IsActive" | "ListID" | "Name" | "OwnerID" | "ParentRef" | "Sublevel" | "TimeCreated" | "TimeModified" | "TxnID" | "TxnNumber">;
40
+ /**
41
+ * If `is_active` is true, this object is currently enabled for use by QuickBooks. The default value is true.
42
+ */
43
+ is_active?: boolean;
44
+ /**
45
+ * Name is the case-insensitive short name of a list object (without ancestors). It must be unique within its hierarchy scope. Hierarchical lists can reuse the same Name in different branches because `full_name` remains distinct.
46
+ */
47
+ name: string;
48
+ /**
49
+ * A reference to the list object that is one level above this one. For example, an inventory item with the `full_name` of GermanCars:Mercedes-Benz:CL500I99AA might have a parent object with the `full_name` of GermanCars:Mercedes-Benz. In a request, if a `parent_ref` aggregate includes both `full_name` and `list_id`, `full_name` will be ignored.
50
+ */
51
+ parent_ref?: CurrencyRef;
52
+ /**
53
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
54
+ */
55
+ request_id?: string;
56
+ }
57
+
58
+ /**
59
+ * The params of `job_type.query`: List job types.
60
+ */
61
+ export interface JobTypeQueryParams {
62
+ /**
63
+ * Used in filters to select list objects based on whether or not they are currently enabled for use by QuickBooks. The default value is asActiveOnly, which selects only list objects that are active.
64
+ *
65
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
66
+ */
67
+ active_status?: "ActiveOnly" | "All" | "InactiveOnly";
68
+ /**
69
+ * Filters results to objects modified on or after this timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a date is provided, time defaults to 00:00:00.
70
+ *
71
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
72
+ *
73
+ * Format: date-time.
74
+ */
75
+ from_modified_date?: string;
76
+ /**
77
+ * `full_name` (along with `list_id`) is a way to identify a list object. The `full_name` is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
78
+ *
79
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
80
+ */
81
+ full_name?: string[];
82
+ include_ret_element?: Array<"EditSequence" | "FullName" | "IsActive" | "ListID" | "Name" | "ParentRef" | "Sublevel" | "TimeCreated" | "TimeModified">;
83
+ /**
84
+ * `list_id` and `full_name` both identify a list object. QuickBooks assigns `list_id` when the object is created. `list_id` values are unique within a list type, not globally across all lists. If both `full_name` and `list_id` are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
85
+ *
86
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
87
+ */
88
+ list_id?: string[];
89
+ /**
90
+ * Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `meta_data` query attribute.) If you include a `max_returned` value, it must be at least 1.
91
+ *
92
+ * QuickBooks doesn't page this query: at most this many records come back, in one answer, with no sign of whether more matched. Leave it out for every match, in one answer; one over 4 MB as the Web Connector sends it, about 3 MB of qbXML isn't kept (`error_type` `response_too_large`), so narrow a large one with its filters.
93
+ *
94
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
95
+ *
96
+ * Minimum 1.
97
+ */
98
+ max_returned?: number;
99
+ /**
100
+ * Use the `meta_data` attribute to control whether query responses include counts. Options are NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus objects). Counts are approximate and may vary slightly if records are created or deleted during processing.
101
+ */
102
+ meta_data?: "MetaDataAndResponseData" | "MetaDataOnly" | "NoMetaData";
103
+ /**
104
+ * Filters according to the object’s Name.
105
+ *
106
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
107
+ */
108
+ name_filter?: NameFilter;
109
+ /**
110
+ * Filters according to the object’s Name.
111
+ *
112
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
113
+ */
114
+ name_range_filter?: NameRangeFilter;
115
+ /**
116
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
117
+ */
118
+ request_id?: string;
119
+ /**
120
+ * Filters results to objects modified on or before this timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a date is provided, time defaults to end-of-day (23:59:59).
121
+ *
122
+ * Choose at most one of: `list_id`, or `full_name`, or the set (`active_status`, `from_modified_date`, `max_returned`, `name_filter`, `name_range_filter`, `to_modified_date`). Members of a set combine with each other, not with the other choices.
123
+ *
124
+ * Format: date-time.
125
+ */
126
+ to_modified_date?: string;
127
+ }
@@ -0,0 +1,38 @@
1
+ // Generated from operations.json by scripts/generate-operations.js: don't edit.
2
+ "use strict";
3
+
4
+ /** QuickBooks job type operations. Types: job_type.d.ts. */
5
+ class JobType {
6
+ #client;
7
+
8
+ /** @param {import("../index").Client} client */
9
+ constructor(client) {
10
+ this.#client = client;
11
+ }
12
+
13
+ /**
14
+ * Create job type.
15
+ * @param {string} connectionId
16
+ * @param {import("./job_type").JobTypeCreateParams} params
17
+ * @param {import("./types").OperationOptions} options
18
+ * @returns {Promise<import("./types").QueuedRequest>}
19
+ * @see https://docs.qubesync.com/api-reference/v2/job-types/create-job-type
20
+ */
21
+ create(connectionId, params, options) {
22
+ return this.#client.queue("job_type.create", connectionId, params, options);
23
+ }
24
+
25
+ /**
26
+ * List job types.
27
+ * @param {string} connectionId
28
+ * @param {import("./job_type").JobTypeQueryParams} params
29
+ * @param {import("./types").OperationOptions} options
30
+ * @returns {Promise<import("./types").QueuedRequest>}
31
+ * @see https://docs.qubesync.com/api-reference/v2/job-types/list-job-types
32
+ */
33
+ query(connectionId, params, options) {
34
+ return this.#client.queue("job_type.query", connectionId, params, options);
35
+ }
36
+ }
37
+
38
+ module.exports = { JobType };
@@ -0,0 +1,339 @@
1
+ // Generated from operations.json by scripts/generate-operations.js: don't edit.
2
+
3
+ import type { Client } from "../index";
4
+ import type { OperationOptions, QueuedRequest, AccountFilter, CurrencyFilter, CurrencyRef, ModifiedDateRangeFilter, RefNumberFilter, RefNumberRangeFilter, TxnDateRangeFilter } from "./types";
5
+
6
+ /** QuickBooks journal entry operations: `qube.journalEntry.<action>(connectionId, params, { webhookUrl })`. */
7
+ export declare class JournalEntry {
8
+ constructor(client: Client);
9
+ /**
10
+ * Create journal entry: `POST /connections/{connection_id}/journal-entries`, queued for QuickBooks.
11
+ *
12
+ * The answer comes to `webhookUrl` as one webhook.
13
+ * Params go in the JSON body.
14
+ *
15
+ * Fields: `currency_ref`, `def_macro`, `exchange_rate`, `external_guid`, `include_ret_element`, `is_adjustment`, `is_amounts_entered_in_home_currency`, `is_home_currency_adjustment`, `journal_credit_line`, `journal_debit_line`, `memo`, `ref_number`, `request_id`, `txn_date`.
16
+ *
17
+ * Resolves to the queued request.
18
+ * @see https://docs.qubesync.com/api-reference/v2/journal-entries/create-journal-entry
19
+ */
20
+ create(connectionId: string, params: JournalEntryCreateParams | undefined, options: OperationOptions): Promise<QueuedRequest>;
21
+ /**
22
+ * List journal entries: `GET /connections/{connection_id}/journal-entries`, queued for QuickBooks.
23
+ *
24
+ * QuickBooks answers in pages: each page comes to `webhookUrl` as its own webhook.
25
+ * Params go in the query string.
26
+ *
27
+ * Fields: `account_filter`, `currency_filter`, `entity_filter`, `include_line_items`, `include_ret_element`, `iterator`, `max_returned`, `meta_data`, `modified_date_range_filter`, `owner_id`, `ref_number`, `ref_number_case_sensitive`, `ref_number_filter`, `ref_number_range_filter`, `request_id`, `txn_date_range_filter`, `txn_id`.
28
+ *
29
+ * Resolves to the queued request.
30
+ * @see https://docs.qubesync.com/api-reference/v2/journal-entries/list-journal-entries
31
+ */
32
+ query(connectionId: string, params: JournalEntryQueryParams | undefined, options: OperationOptions): Promise<QueuedRequest>;
33
+ /**
34
+ * Update journal entry: `PUT /connections/{connection_id}/journal-entries`, queued for QuickBooks.
35
+ *
36
+ * The answer comes to `webhookUrl` as one webhook.
37
+ * Params go in the JSON body.
38
+ *
39
+ * Fields: `currency_ref`, `edit_sequence` (required), `exchange_rate`, `include_ret_element`, `is_adjustment`, `is_amounts_entered_in_home_currency`, `journal_line_mod`, `ref_number`, `request_id`, `txn_date`, `txn_id` (required).
40
+ *
41
+ * Resolves to the queued request.
42
+ * @see https://docs.qubesync.com/api-reference/v2/journal-entries/update-journal-entry
43
+ */
44
+ update(connectionId: string, params: JournalEntryUpdateParams, options: OperationOptions): Promise<QueuedRequest>;
45
+ }
46
+
47
+ /**
48
+ * The params of `journal_entry.create`: Create journal entry.
49
+ */
50
+ export interface JournalEntryCreateParams {
51
+ /**
52
+ * A currency record defines how QuickBooks stores and displays a currency. Built-in currency name/code values are fixed; formatting and active status can vary by settings and workflow.
53
+ *
54
+ * Choose at most one of: `is_home_currency_adjustment`, or the set (`currency_ref`, `exchange_rate`, `is_amounts_entered_in_home_currency`). Members of a set combine with each other, not with the other choices.
55
+ */
56
+ currency_ref?: CurrencyRef;
57
+ /**
58
+ * `def_macro` lets you assign a reusable name to a returned `txn_id` or `txn_line_id` so later requests can reference it with `useMacro`. This feature requires SDK 2.0+.
59
+ */
60
+ def_macro?: string;
61
+ /**
62
+ * `exchange_rate` is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.
63
+ *
64
+ * Choose at most one of: `is_home_currency_adjustment`, or the set (`currency_ref`, `exchange_rate`, `is_amounts_entered_in_home_currency`). Members of a set combine with each other, not with the other choices.
65
+ */
66
+ exchange_rate?: number;
67
+ /**
68
+ * Allows for the attachment of a user defined GUID value.
69
+ */
70
+ external_guid?: string;
71
+ include_ret_element?: Array<"CurrencyRef" | "DataExtRet" | "EditSequence" | "ExchangeRate" | "ExternalGUID" | "IsAdjustment" | "IsAmountsEnteredInHomeCurrency" | "IsHomeCurrencyAdjustment" | "JournalCreditLine" | "JournalDebitLine" | "ListID" | "Memo" | "OwnerID" | "RefNumber" | "TimeCreated" | "TimeModified" | "TxnDate" | "TxnID" | "TxnNumber">;
72
+ /**
73
+ * When a change is an “adjustment,” the original information is retained, usually so an accountant can see the effects of the adjustment.
74
+ */
75
+ is_adjustment?: boolean;
76
+ /**
77
+ * Flag that indicates the amount being entered is in the home currency.
78
+ *
79
+ * Choose at most one of: `is_home_currency_adjustment`, or the set (`currency_ref`, `exchange_rate`, `is_amounts_entered_in_home_currency`). Members of a set combine with each other, not with the other choices.
80
+ */
81
+ is_amounts_entered_in_home_currency?: boolean;
82
+ /**
83
+ * Indicates whether the transaction is using a home currency or foreign currency.
84
+ *
85
+ * Choose at most one of: `is_home_currency_adjustment`, or the set (`currency_ref`, `exchange_rate`, `is_amounts_entered_in_home_currency`). Members of a set combine with each other, not with the other choices.
86
+ */
87
+ is_home_currency_adjustment?: boolean;
88
+ /**
89
+ * If no amount is included in the first credit line (or debit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that JournalEntry object will fail XML validation.
90
+ *
91
+ * At least one entry is required across `journal_debit_line` and `journal_credit_line`; they combine, any number of each. QuickBooks receives them in that order: every `journal_debit_line`, then every `journal_credit_line`.
92
+ */
93
+ journal_credit_line?: JournalCreditLine[];
94
+ /**
95
+ * If no amount is included in the first debit line (or credit line) of a journal entry in the QuickBooks user interface, then subsequent SDK queries on that JournalEntry object will fail XML validation.
96
+ *
97
+ * At least one entry is required across `journal_debit_line` and `journal_credit_line`; they combine, any number of each. QuickBooks receives them in that order: every `journal_debit_line`, then every `journal_credit_line`.
98
+ */
99
+ journal_debit_line?: JournalCreditLine[];
100
+ /**
101
+ * Additional information.
102
+ */
103
+ memo?: string;
104
+ /**
105
+ * `ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.
106
+ */
107
+ ref_number?: string;
108
+ /**
109
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
110
+ */
111
+ request_id?: string;
112
+ /**
113
+ * The date of the transaction. In some cases, if you leave `txn_date` out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved transaction of the same type.
114
+ *
115
+ * Format: date.
116
+ */
117
+ txn_date?: string;
118
+ }
119
+
120
+ /**
121
+ * The params of `journal_entry.query`: List journal entries.
122
+ */
123
+ export interface JournalEntryQueryParams {
124
+ /**
125
+ * Filters according to the account name or `list_id`. 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 `full_name` and get the account you’re looking for. But if numbers have been used as account names, confusion could arise.
126
+ *
127
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
128
+ */
129
+ account_filter?: AccountFilter;
130
+ /**
131
+ * Filters by the specified currency.
132
+ *
133
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
134
+ */
135
+ currency_filter?: CurrencyFilter;
136
+ /**
137
+ * 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.
138
+ *
139
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
140
+ */
141
+ entity_filter?: AccountFilter;
142
+ /**
143
+ * 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 `include_line_items` to true to include line items in the response if you don’t mind getting a larger result.
144
+ */
145
+ include_line_items?: boolean;
146
+ include_ret_element?: Array<"CurrencyRef" | "DataExtRet" | "EditSequence" | "ExchangeRate" | "ExternalGUID" | "IsAdjustment" | "IsAmountsEnteredInHomeCurrency" | "IsHomeCurrencyAdjustment" | "JournalCreditLine" | "JournalDebitLine" | "Memo" | "RefNumber" | "TimeCreated" | "TimeModified" | "TxnDate" | "TxnID" | "TxnNumber">;
147
+ /**
148
+ * Page through every match: QuBe Sync asks QuickBooks for each page in turn and sends each to your `webhook_url` as it arrives, all with the same `id`. On by default, with pages of 100 records (25 with `include_line_items`); send `iterator=true` with `max_returned` for another size. Off when you send `iterator=false` (every match in one answer) or `max_returned` alone (at most that many, in one answer). It pages a filtered query only: with `ref_number`, `ref_number_case_sensitive` or `txn_id` every match comes back in one answer, so leave `iterator` out.
149
+ */
150
+ iterator?: boolean;
151
+ /**
152
+ * Limits the number of objects that a query returns. (To get a count of how many objects could possibly be returned, use the `meta_data` query attribute.) If you include a `max_returned` value, it must be at least 1.
153
+ *
154
+ * The page size, with `iterator=true`. Sent without `iterator`, or with `iterator=false`, it's a cap instead: at most this many records come back, in one answer, and QuickBooks doesn't say whether more matched.
155
+ *
156
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
157
+ *
158
+ * Minimum 1.
159
+ */
160
+ max_returned?: number;
161
+ /**
162
+ * Use the `meta_data` attribute to control whether query responses include counts. Options are NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus objects). Counts are approximate and may vary slightly if records are created or deleted during processing.
163
+ */
164
+ meta_data?: "MetaDataAndResponseData" | "MetaDataOnly" | "NoMetaData";
165
+ /**
166
+ * Filters according to the dates when transactions were last modified. The `modified_date_range_filter` aggregate isn’t 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 `from_modified_date` and `to_modified_date` fields wasn’t supported in qbXML version 1.0 or 1.1.
167
+ *
168
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
169
+ */
170
+ modified_date_range_filter?: ModifiedDateRangeFilter;
171
+ /**
172
+ * `owner_id` identifies who owns the data extension. Use 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned by an app. Keep private GUIDs confidential unless you intentionally share extensions across apps. If you do share them, both apps must use the same `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.
173
+ */
174
+ owner_id?: string[];
175
+ /**
176
+ * `ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.
177
+ *
178
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
179
+ */
180
+ ref_number?: string[];
181
+ /**
182
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
183
+ */
184
+ ref_number_case_sensitive?: string[];
185
+ /**
186
+ * Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.
187
+ *
188
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
189
+ */
190
+ ref_number_filter?: RefNumberFilter;
191
+ /**
192
+ * Filters by `ref_number` range. Numeric-only bounds are compared numerically; otherwise comparison is lexicographic.
193
+ *
194
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
195
+ */
196
+ ref_number_range_filter?: RefNumberRangeFilter;
197
+ /**
198
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
199
+ */
200
+ request_id?: string;
201
+ /**
202
+ * Filters according to the original transaction dates.
203
+ *
204
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
205
+ */
206
+ txn_date_range_filter?: TxnDateRangeFilter;
207
+ /**
208
+ * `txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.
209
+ *
210
+ * Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each other, not with the other choices.
211
+ */
212
+ txn_id?: string[];
213
+ }
214
+
215
+ /**
216
+ * The params of `journal_entry.update`: Update journal entry.
217
+ */
218
+ export interface JournalEntryUpdateParams {
219
+ /**
220
+ * A currency record defines how QuickBooks stores and displays a currency. Built-in currency name/code values are fixed; formatting and active status can vary by settings and workflow.
221
+ */
222
+ currency_ref?: CurrencyRef;
223
+ /**
224
+ * `edit_sequence` is a server-generated revision token. It changes each time the object is updated. To modify an existing object, you must send the current `edit_sequence`. If your value is stale, the update is rejected to prevent overwriting newer changes.
225
+ */
226
+ edit_sequence: string;
227
+ /**
228
+ * `exchange_rate` is the rate from this currency to the company’s home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks does not provide rates through the SDK. If your home currency is USD and internet access is available, rates can be downloaded in the QuickBooks UI via Lists > Currency > Activities > Download Latest Exchange Rates.
229
+ */
230
+ exchange_rate?: number;
231
+ include_ret_element?: Array<"CurrencyRef" | "DataExtRet" | "EditSequence" | "ExchangeRate" | "ExternalGUID" | "IsAdjustment" | "IsAmountsEnteredInHomeCurrency" | "IsHomeCurrencyAdjustment" | "JournalCreditLine" | "JournalDebitLine" | "ListID" | "Memo" | "OwnerID" | "RefNumber" | "TimeCreated" | "TimeModified" | "TxnDate" | "TxnID" | "TxnNumber">;
232
+ /**
233
+ * When a change is an “adjustment,” the original information is retained, usually so an accountant can see the effects of the adjustment.
234
+ */
235
+ is_adjustment?: boolean;
236
+ /**
237
+ * Flag that indicates the amount being entered is in the home currency.
238
+ */
239
+ is_amounts_entered_in_home_currency?: boolean;
240
+ journal_line_mod?: JournalLineMod[];
241
+ /**
242
+ * `ref_number` is a user-managed transaction reference (for example, a check number). It can be edited and is not guaranteed to be globally unique. Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences and numbering state.
243
+ */
244
+ ref_number?: string;
245
+ /**
246
+ * Your own label for the request, sent to QuickBooks as its qbXML `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's webhook already carries the request's `id`.
247
+ */
248
+ request_id?: string;
249
+ /**
250
+ * The date of the transaction. In some cases, if you leave `txn_date` out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved transaction of the same type.
251
+ *
252
+ * Format: date.
253
+ */
254
+ txn_date?: string;
255
+ /**
256
+ * `txn_id` is the unique QuickBooks identifier for a transaction. Use it to reference that transaction in later requests. `txn_id` values are transaction-specific and should not be reused across unrelated transaction types.
257
+ */
258
+ txn_id: string;
259
+ }
260
+
261
+ export interface JournalCreditLine {
262
+ /**
263
+ * `account_ref` points to an account in the company file. If both `full_name` and `list_id` are provided, `full_name` is ignored. Meaning depends on context: for checks it is the funding account; for ExpenseLineAdd it may be required by accounting preferences; for credit-card transactions it identifies the bank or card account involved.
264
+ */
265
+ account_ref?: CurrencyRef;
266
+ /**
267
+ * A monetary amount.
268
+ */
269
+ amount?: number;
270
+ /**
271
+ * The billing status of this item line or expense line.
272
+ */
273
+ billable_status?: "Billable" | "HasBeenBilled" | "NotBillable";
274
+ /**
275
+ * Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.
276
+ */
277
+ class_ref?: CurrencyRef;
278
+ /**
279
+ * `def_macro` lets you assign a reusable name to a returned `txn_id` or `txn_line_id` so later requests can reference it with `useMacro`. This feature requires SDK 2.0+.
280
+ */
281
+ def_macro?: string;
282
+ /**
283
+ * A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a BillToPayQuery message, `entity_ref` refers to the vendor name. In `journal_credit_line` and `journal_debit_line` messages for A/R accounts, `entity_ref` must refer to a customer, or else the transaction won’t be recorded.
284
+ */
285
+ entity_ref?: CurrencyRef;
286
+ /**
287
+ * An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided for `item_sales_tax_ref`, `list_id` is used.
288
+ */
289
+ item_sales_tax_ref?: CurrencyRef;
290
+ /**
291
+ * Additional information.
292
+ */
293
+ memo?: string;
294
+ tax_amount?: number;
295
+ /**
296
+ * Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` 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 `txn_line_id` to -1.
297
+ */
298
+ txn_line_id?: string;
299
+ }
300
+
301
+ export interface JournalLineMod {
302
+ /**
303
+ * `account_ref` points to an account in the company file. If both `full_name` and `list_id` are provided, `full_name` is ignored. Meaning depends on context: for checks it is the funding account; for ExpenseLineAdd it may be required by accounting preferences; for credit-card transactions it identifies the bank or card account involved.
304
+ */
305
+ account_ref?: CurrencyRef;
306
+ /**
307
+ * A monetary amount.
308
+ */
309
+ amount?: number;
310
+ /**
311
+ * The billing status of this item line or expense line.
312
+ */
313
+ billable_status?: "Billable" | "HasBeenBilled" | "NotBillable";
314
+ /**
315
+ * Use classes to categorize transactions (for example, by department, location, or work type). Class tracking is off by default in QuickBooks. A `class_ref` points to one class; if both `full_name` and `list_id` are provided, `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you override or clear it on individual lines.
316
+ */
317
+ class_ref?: CurrencyRef;
318
+ /**
319
+ * A QuickBooks “entity” is a customer, vendor, employee, or person on the QuickBooks “other names” list. Special cases to note: In a BillToPayQuery message, `entity_ref` refers to the vendor name. In `journal_credit_line` and `journal_debit_line` messages for A/R accounts, `entity_ref` must refer to a customer, or else the transaction won’t be recorded.
320
+ */
321
+ entity_ref?: CurrencyRef;
322
+ /**
323
+ * An ItemSalesTax entry represents one tax rate paid to one tax agency. Use it when a transaction needs a single tax calculation. For multi-rate scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided for `item_sales_tax_ref`, `list_id` is used.
324
+ */
325
+ item_sales_tax_ref?: CurrencyRef;
326
+ /**
327
+ * The type of journal line (debit or credit).
328
+ */
329
+ journal_line_type?: "Credit" | "Debit";
330
+ /**
331
+ * Additional information.
332
+ */
333
+ memo?: string;
334
+ tax_amount?: number;
335
+ /**
336
+ * Identification number of the transaction line. (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, `txn_line_id` 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 `txn_line_id` to -1.
337
+ */
338
+ txn_line_id: string;
339
+ }