qube_sync 0.3.0 → 0.4.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 (260) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -0
  3. data/README.md +235 -75
  4. data/Rakefile +12 -0
  5. data/lib/qube_sync/client.rb +579 -0
  6. data/lib/qube_sync/operations/account.rb +337 -0
  7. data/lib/qube_sync/operations/account_tax_line_info.rb +30 -0
  8. data/lib/qube_sync/operations/aging_report.rb +160 -0
  9. data/lib/qube_sync/operations/alert.rb +91 -0
  10. data/lib/qube_sync/operations/ar_refund_credit_card.rb +399 -0
  11. data/lib/qube_sync/operations/bar_code.rb +37 -0
  12. data/lib/qube_sync/operations/bill.rb +1073 -0
  13. data/lib/qube_sync/operations/bill_payment_check.rb +413 -0
  14. data/lib/qube_sync/operations/bill_payment_credit_card.rb +315 -0
  15. data/lib/qube_sync/operations/bill_to_pay.rb +66 -0
  16. data/lib/qube_sync/operations/billing_rate.rb +172 -0
  17. data/lib/qube_sync/operations/budget_summary_report.rb +80 -0
  18. data/lib/qube_sync/operations/build_assembly.rb +318 -0
  19. data/lib/qube_sync/operations/charge.rb +452 -0
  20. data/lib/qube_sync/operations/check.rb +1055 -0
  21. data/lib/qube_sync/operations/class.rb +176 -0
  22. data/lib/qube_sync/operations/cleared_status.rb +39 -0
  23. data/lib/qube_sync/operations/company.rb +39 -0
  24. data/lib/qube_sync/operations/company_activity.rb +31 -0
  25. data/lib/qube_sync/operations/credit_card_charge.rb +1000 -0
  26. data/lib/qube_sync/operations/credit_card_credit.rb +1000 -0
  27. data/lib/qube_sync/operations/credit_memo.rb +1243 -0
  28. data/lib/qube_sync/operations/currency.rb +195 -0
  29. data/lib/qube_sync/operations/custom_detail_report.rb +176 -0
  30. data/lib/qube_sync/operations/custom_summary_report.rb +180 -0
  31. data/lib/qube_sync/operations/customer.rb +744 -0
  32. data/lib/qube_sync/operations/customer_msg.rb +117 -0
  33. data/lib/qube_sync/operations/customer_type.rb +133 -0
  34. data/lib/qube_sync/operations/data_event_recovery_info.rb +54 -0
  35. data/lib/qube_sync/operations/data_ext.rb +201 -0
  36. data/lib/qube_sync/operations/data_ext_def.rb +179 -0
  37. data/lib/qube_sync/operations/date_driven_terms.rb +131 -0
  38. data/lib/qube_sync/operations/deposit.rb +555 -0
  39. data/lib/qube_sync/operations/employee.rb +577 -0
  40. data/lib/qube_sync/operations/employee_default.rb +100 -0
  41. data/lib/qube_sync/operations/entity.rb +118 -0
  42. data/lib/qube_sync/operations/estimate.rb +1055 -0
  43. data/lib/qube_sync/operations/form1099_category_account_mapping.rb +90 -0
  44. data/lib/qube_sync/operations/general_detail_report.rb +185 -0
  45. data/lib/qube_sync/operations/general_summary_report.rb +180 -0
  46. data/lib/qube_sync/operations/host.rb +36 -0
  47. data/lib/qube_sync/operations/inventory_adjustment.rb +482 -0
  48. data/lib/qube_sync/operations/inventory_site.rb +214 -0
  49. data/lib/qube_sync/operations/invoice.rb +1208 -0
  50. data/lib/qube_sync/operations/item.rb +115 -0
  51. data/lib/qube_sync/operations/item_assemblies_can_build.rb +44 -0
  52. data/lib/qube_sync/operations/item_discount.rb +319 -0
  53. data/lib/qube_sync/operations/item_fixed_asset.rb +317 -0
  54. data/lib/qube_sync/operations/item_group.rb +253 -0
  55. data/lib/qube_sync/operations/item_inventory.rb +446 -0
  56. data/lib/qube_sync/operations/item_inventory_assembly.rb +483 -0
  57. data/lib/qube_sync/operations/item_non_inventory.rb +461 -0
  58. data/lib/qube_sync/operations/item_other_charge.rb +434 -0
  59. data/lib/qube_sync/operations/item_payment.rb +268 -0
  60. data/lib/qube_sync/operations/item_receipt.rb +1011 -0
  61. data/lib/qube_sync/operations/item_sales_tax.rb +270 -0
  62. data/lib/qube_sync/operations/item_sales_tax_group.rb +200 -0
  63. data/lib/qube_sync/operations/item_service.rb +455 -0
  64. data/lib/qube_sync/operations/item_sites.rb +96 -0
  65. data/lib/qube_sync/operations/item_subtotal.rb +182 -0
  66. data/lib/qube_sync/operations/job_report.rb +156 -0
  67. data/lib/qube_sync/operations/job_type.rb +131 -0
  68. data/lib/qube_sync/operations/journal_entry.rb +518 -0
  69. data/lib/qube_sync/operations/lead.rb +216 -0
  70. data/lib/qube_sync/operations/list.rb +42 -0
  71. data/lib/qube_sync/operations/list_deleted.rb +57 -0
  72. data/lib/qube_sync/operations/list_display.rb +59 -0
  73. data/lib/qube_sync/operations/list_merge.rb +55 -0
  74. data/lib/qube_sync/operations/other_name.rb +245 -0
  75. data/lib/qube_sync/operations/paycheck.rb +139 -0
  76. data/lib/qube_sync/operations/payment_method.rb +128 -0
  77. data/lib/qube_sync/operations/payroll_detail_report.rb +161 -0
  78. data/lib/qube_sync/operations/payroll_item.rb +75 -0
  79. data/lib/qube_sync/operations/payroll_item_addition.rb +98 -0
  80. data/lib/qube_sync/operations/payroll_item_company_contribution.rb +134 -0
  81. data/lib/qube_sync/operations/payroll_item_deduction.rb +124 -0
  82. data/lib/qube_sync/operations/payroll_item_direct_deposit.rb +70 -0
  83. data/lib/qube_sync/operations/payroll_item_non_wage.rb +93 -0
  84. data/lib/qube_sync/operations/payroll_item_tax.rb +123 -0
  85. data/lib/qube_sync/operations/payroll_item_wage.rb +168 -0
  86. data/lib/qube_sync/operations/payroll_item_workers_compensation.rb +108 -0
  87. data/lib/qube_sync/operations/payroll_last_period.rb +30 -0
  88. data/lib/qube_sync/operations/payroll_liability_adjustment.rb +204 -0
  89. data/lib/qube_sync/operations/payroll_liability_check.rb +137 -0
  90. data/lib/qube_sync/operations/payroll_prior_payment.rb +178 -0
  91. data/lib/qube_sync/operations/payroll_summary_report.rb +157 -0
  92. data/lib/qube_sync/operations/payroll_year_to_date_adjustment.rb +211 -0
  93. data/lib/qube_sync/operations/preferences.rb +61 -0
  94. data/lib/qube_sync/operations/price_level.rb +305 -0
  95. data/lib/qube_sync/operations/purchase_order.rb +1038 -0
  96. data/lib/qube_sync/operations/qb_command_exec.rb +37 -0
  97. data/lib/qube_sync/operations/receive_payment.rb +627 -0
  98. data/lib/qube_sync/operations/receive_payment_to_deposit.rb +38 -0
  99. data/lib/qube_sync/operations/sales_order.rb +1045 -0
  100. data/lib/qube_sync/operations/sales_receipt.rb +1337 -0
  101. data/lib/qube_sync/operations/sales_rep.rb +172 -0
  102. data/lib/qube_sync/operations/sales_tax_code.rb +205 -0
  103. data/lib/qube_sync/operations/sales_tax_payable.rb +37 -0
  104. data/lib/qube_sync/operations/sales_tax_payment_check.rb +375 -0
  105. data/lib/qube_sync/operations/sales_tax_return.rb +35 -0
  106. data/lib/qube_sync/operations/sales_tax_return_line.rb +43 -0
  107. data/lib/qube_sync/operations/ship_method.rb +116 -0
  108. data/lib/qube_sync/operations/special_account.rb +55 -0
  109. data/lib/qube_sync/operations/special_item.rb +44 -0
  110. data/lib/qube_sync/operations/standard_terms.rb +125 -0
  111. data/lib/qube_sync/operations/template.rb +36 -0
  112. data/lib/qube_sync/operations/terms.rb +91 -0
  113. data/lib/qube_sync/operations/time_report.rb +127 -0
  114. data/lib/qube_sync/operations/time_tracking.rb +303 -0
  115. data/lib/qube_sync/operations/to_do.rb +260 -0
  116. data/lib/qube_sync/operations/transaction.rb +356 -0
  117. data/lib/qube_sync/operations/transfer.rb +213 -0
  118. data/lib/qube_sync/operations/transfer_inventory.rb +384 -0
  119. data/lib/qube_sync/operations/txn.rb +38 -0
  120. data/lib/qube_sync/operations/txn_deleted.rb +54 -0
  121. data/lib/qube_sync/operations/txn_display.rb +76 -0
  122. data/lib/qube_sync/operations/txn_void.rb +36 -0
  123. data/lib/qube_sync/operations/unit_of_measure_set.rb +149 -0
  124. data/lib/qube_sync/operations/vehicle.rb +152 -0
  125. data/lib/qube_sync/operations/vehicle_mileage.rb +191 -0
  126. data/lib/qube_sync/operations/vendor.rb +661 -0
  127. data/lib/qube_sync/operations/vendor_credit.rb +1008 -0
  128. data/lib/qube_sync/operations/vendor_type.rb +131 -0
  129. data/lib/qube_sync/operations/workers_comp_code.rb +184 -0
  130. data/lib/qube_sync/operations.rb +1165 -0
  131. data/lib/qube_sync/version.rb +1 -1
  132. data/lib/qube_sync.rb +1 -0
  133. data/sig/qube_sync/client.rbs +82 -0
  134. data/sig/qube_sync/operations/account.rbs +65 -0
  135. data/sig/qube_sync/operations/account_tax_line_info.rbs +13 -0
  136. data/sig/qube_sync/operations/aging_report.rbs +29 -0
  137. data/sig/qube_sync/operations/alert.rbs +53 -0
  138. data/sig/qube_sync/operations/ar_refund_credit_card.rbs +53 -0
  139. data/sig/qube_sync/operations/bar_code.rbs +16 -0
  140. data/sig/qube_sync/operations/bill.rbs +78 -0
  141. data/sig/qube_sync/operations/bill_payment_check.rbs +62 -0
  142. data/sig/qube_sync/operations/bill_payment_credit_card.rbs +45 -0
  143. data/sig/qube_sync/operations/bill_to_pay.rbs +19 -0
  144. data/sig/qube_sync/operations/billing_rate.rbs +40 -0
  145. data/sig/qube_sync/operations/budget_summary_report.rbs +22 -0
  146. data/sig/qube_sync/operations/build_assembly.rbs +64 -0
  147. data/sig/qube_sync/operations/charge.rbs +80 -0
  148. data/sig/qube_sync/operations/check.rbs +81 -0
  149. data/sig/qube_sync/operations/class.rbs +43 -0
  150. data/sig/qube_sync/operations/cleared_status.rbs +16 -0
  151. data/sig/qube_sync/operations/company.rbs +15 -0
  152. data/sig/qube_sync/operations/company_activity.rbs +14 -0
  153. data/sig/qube_sync/operations/credit_card_charge.rbs +69 -0
  154. data/sig/qube_sync/operations/credit_card_credit.rbs +69 -0
  155. data/sig/qube_sync/operations/credit_memo.rbs +162 -0
  156. data/sig/qube_sync/operations/currency.rbs +52 -0
  157. data/sig/qube_sync/operations/custom_detail_report.rbs +31 -0
  158. data/sig/qube_sync/operations/custom_summary_report.rbs +33 -0
  159. data/sig/qube_sync/operations/customer.rbs +174 -0
  160. data/sig/qube_sync/operations/customer_msg.rbs +31 -0
  161. data/sig/qube_sync/operations/customer_type.rbs +32 -0
  162. data/sig/qube_sync/operations/data_event_recovery_info.rbs +20 -0
  163. data/sig/qube_sync/operations/data_ext.rbs +53 -0
  164. data/sig/qube_sync/operations/data_ext_def.rbs +51 -0
  165. data/sig/qube_sync/operations/date_driven_terms.rbs +35 -0
  166. data/sig/qube_sync/operations/deposit.rbs +100 -0
  167. data/sig/qube_sync/operations/employee.rbs +173 -0
  168. data/sig/qube_sync/operations/employee_default.rbs +68 -0
  169. data/sig/qube_sync/operations/entity.rbs +24 -0
  170. data/sig/qube_sync/operations/estimate.rbs +148 -0
  171. data/sig/qube_sync/operations/form1099_category_account_mapping.rbs +33 -0
  172. data/sig/qube_sync/operations/general_detail_report.rbs +31 -0
  173. data/sig/qube_sync/operations/general_summary_report.rbs +32 -0
  174. data/sig/qube_sync/operations/host.rbs +19 -0
  175. data/sig/qube_sync/operations/inventory_adjustment.rbs +105 -0
  176. data/sig/qube_sync/operations/inventory_site.rbs +66 -0
  177. data/sig/qube_sync/operations/invoice.rbs +144 -0
  178. data/sig/qube_sync/operations/item.rbs +25 -0
  179. data/sig/qube_sync/operations/item_assemblies_can_build.rbs +15 -0
  180. data/sig/qube_sync/operations/item_discount.rbs +62 -0
  181. data/sig/qube_sync/operations/item_fixed_asset.rbs +97 -0
  182. data/sig/qube_sync/operations/item_group.rbs +62 -0
  183. data/sig/qube_sync/operations/item_inventory.rbs +87 -0
  184. data/sig/qube_sync/operations/item_inventory_assembly.rbs +94 -0
  185. data/sig/qube_sync/operations/item_non_inventory.rbs +64 -0
  186. data/sig/qube_sync/operations/item_other_charge.rbs +59 -0
  187. data/sig/qube_sync/operations/item_payment.rbs +55 -0
  188. data/sig/qube_sync/operations/item_receipt.rbs +71 -0
  189. data/sig/qube_sync/operations/item_sales_tax.rbs +57 -0
  190. data/sig/qube_sync/operations/item_sales_tax_group.rbs +50 -0
  191. data/sig/qube_sync/operations/item_service.rbs +62 -0
  192. data/sig/qube_sync/operations/item_sites.rbs +26 -0
  193. data/sig/qube_sync/operations/item_subtotal.rbs +48 -0
  194. data/sig/qube_sync/operations/job_report.rbs +28 -0
  195. data/sig/qube_sync/operations/job_type.rbs +32 -0
  196. data/sig/qube_sync/operations/journal_entry.rbs +88 -0
  197. data/sig/qube_sync/operations/lead.rbs +91 -0
  198. data/sig/qube_sync/operations/list.rbs +15 -0
  199. data/sig/qube_sync/operations/list_deleted.rbs +17 -0
  200. data/sig/qube_sync/operations/list_display.rbs +21 -0
  201. data/sig/qube_sync/operations/list_merge.rbs +22 -0
  202. data/sig/qube_sync/operations/other_name.rbs +71 -0
  203. data/sig/qube_sync/operations/paycheck.rbs +27 -0
  204. data/sig/qube_sync/operations/payment_method.rbs +33 -0
  205. data/sig/qube_sync/operations/payroll_detail_report.rbs +29 -0
  206. data/sig/qube_sync/operations/payroll_item.rbs +23 -0
  207. data/sig/qube_sync/operations/payroll_item_addition.rbs +48 -0
  208. data/sig/qube_sync/operations/payroll_item_company_contribution.rbs +58 -0
  209. data/sig/qube_sync/operations/payroll_item_deduction.rbs +54 -0
  210. data/sig/qube_sync/operations/payroll_item_direct_deposit.rbs +30 -0
  211. data/sig/qube_sync/operations/payroll_item_non_wage.rbs +23 -0
  212. data/sig/qube_sync/operations/payroll_item_tax.rbs +58 -0
  213. data/sig/qube_sync/operations/payroll_item_wage.rbs +48 -0
  214. data/sig/qube_sync/operations/payroll_item_workers_compensation.rbs +42 -0
  215. data/sig/qube_sync/operations/payroll_last_period.rbs +13 -0
  216. data/sig/qube_sync/operations/payroll_liability_adjustment.rbs +59 -0
  217. data/sig/qube_sync/operations/payroll_liability_check.rbs +27 -0
  218. data/sig/qube_sync/operations/payroll_prior_payment.rbs +48 -0
  219. data/sig/qube_sync/operations/payroll_summary_report.rbs +30 -0
  220. data/sig/qube_sync/operations/payroll_year_to_date_adjustment.rbs +66 -0
  221. data/sig/qube_sync/operations/preferences.rbs +26 -0
  222. data/sig/qube_sync/operations/price_level.rbs +57 -0
  223. data/sig/qube_sync/operations/purchase_order.rbs +159 -0
  224. data/sig/qube_sync/operations/qb_command_exec.rbs +22 -0
  225. data/sig/qube_sync/operations/receive_payment.rbs +102 -0
  226. data/sig/qube_sync/operations/receive_payment_to_deposit.rbs +15 -0
  227. data/sig/qube_sync/operations/sales_order.rbs +153 -0
  228. data/sig/qube_sync/operations/sales_receipt.rbs +139 -0
  229. data/sig/qube_sync/operations/sales_rep.rbs +43 -0
  230. data/sig/qube_sync/operations/sales_tax_code.rbs +49 -0
  231. data/sig/qube_sync/operations/sales_tax_payable.rbs +16 -0
  232. data/sig/qube_sync/operations/sales_tax_payment_check.rbs +64 -0
  233. data/sig/qube_sync/operations/sales_tax_return.rbs +14 -0
  234. data/sig/qube_sync/operations/sales_tax_return_line.rbs +15 -0
  235. data/sig/qube_sync/operations/ship_method.rbs +31 -0
  236. data/sig/qube_sync/operations/special_account.rbs +16 -0
  237. data/sig/qube_sync/operations/special_item.rbs +17 -0
  238. data/sig/qube_sync/operations/standard_terms.rbs +34 -0
  239. data/sig/qube_sync/operations/template.rbs +15 -0
  240. data/sig/qube_sync/operations/terms.rbs +23 -0
  241. data/sig/qube_sync/operations/time_report.rbs +26 -0
  242. data/sig/qube_sync/operations/time_tracking.rbs +57 -0
  243. data/sig/qube_sync/operations/to_do.rbs +59 -0
  244. data/sig/qube_sync/operations/transaction.rbs +39 -0
  245. data/sig/qube_sync/operations/transfer.rbs +47 -0
  246. data/sig/qube_sync/operations/transfer_inventory.rbs +76 -0
  247. data/sig/qube_sync/operations/txn.rbs +15 -0
  248. data/sig/qube_sync/operations/txn_deleted.rbs +17 -0
  249. data/sig/qube_sync/operations/txn_display.rbs +22 -0
  250. data/sig/qube_sync/operations/txn_void.rbs +15 -0
  251. data/sig/qube_sync/operations/types.rbs +434 -0
  252. data/sig/qube_sync/operations/unit_of_measure_set.rbs +51 -0
  253. data/sig/qube_sync/operations/vehicle.rbs +43 -0
  254. data/sig/qube_sync/operations/vehicle_mileage.rbs +38 -0
  255. data/sig/qube_sync/operations/vendor.rbs +142 -0
  256. data/sig/qube_sync/operations/vendor_credit.rbs +70 -0
  257. data/sig/qube_sync/operations/vendor_type.rbs +32 -0
  258. data/sig/qube_sync/operations/workers_comp_code.rbs +52 -0
  259. data/sig/qube_sync/operations.rbs +147 -0
  260. metadata +255 -2
@@ -0,0 +1,1055 @@
1
+ # Generated from operations.json by bin/generate-operations: don't edit.
2
+ # frozen_string_literal: true
3
+
4
+ module QubeSync
5
+ module Operations
6
+ # QuickBooks estimate operations, reached as `client.estimate`. Each queues a request and
7
+ # returns it (the response's `data`); the answer comes to `webhook_url`.
8
+ class Estimate < Base
9
+ # Create estimate: POST /connections/{connection_id}/estimates (`estimate.create`).
10
+ #
11
+ # QuickBooks answers in one webhook.
12
+ #
13
+ # Params, sent as the JSON body:
14
+ # - `bill_address` (Hash): This aggregate supports at most five address lines. You can provide
15
+ # a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode
16
+ # (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each
17
+ # Addr line prints as its own line and is returned in `ship_address_block` or
18
+ # `bill_address_block`.
19
+ # - `addr1` (String): The first line of an address.
20
+ # - `addr2` (String): The second line of an address (if a second line is needed).
21
+ # - `addr3` (String): The third line of an address (if a third line is needed).
22
+ # - `addr4` (String): The fourth line of an address (if a fourth line is needed).
23
+ # - `addr5` (String): The fifth line of an address (if a fifth line is needed).
24
+ # - `city` (String): The city name in an address.
25
+ # - `country` (String): The country name in an address, or, in returned Host information
26
+ # (HostRet or HostInfo), the country for which this edition of QuickBooks was designed.
27
+ # (Possible values are US, CA, UK, and AU.)
28
+ # - `note` (String): In a `bill_address` or `ship_address` aggregate, the Note field value
29
+ # is written at the bottom of the address in the form in which it appears, such as the
30
+ # invoice form.
31
+ # - `postal_code` (String): The postal code in an address.
32
+ # - `state` (String): The state name in an address.
33
+ # - `class_ref` (Hash): Use classes to categorize transactions (for example, by department,
34
+ # location, or work type). Class tracking is off by default in QuickBooks. A `class_ref`
35
+ # points to one class; if both `full_name` and `list_id` are provided, `full_name` is
36
+ # ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you
37
+ # override or clear it on individual lines.
38
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
39
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
40
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
41
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
42
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
43
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
44
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
45
+ # - `customer_msg_ref` (Hash): A standard message such as “Thank you for your business,” or
46
+ # “Please sign and return this estimate to indicate your approval.” A customer message can
47
+ # be included at the bottom of a form. A `customer_msg_ref` aggregate refers to one of the
48
+ # messages on the CustomerMsg list. In a request, if a `customer_msg_ref` aggregate includes
49
+ # both `full_name` and `list_id`, `full_name` will be ignored.
50
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
51
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
52
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
53
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
54
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
55
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
56
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
57
+ # - `customer_ref` (Hash, required): `customer_ref` identifies a customer or customer job. If
58
+ # both `full_name` and `list_id` are provided, `full_name` is ignored. In SalesReceipt and
59
+ # ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the
60
+ # time can be billed to and is required in TimeTrackingAdd when IsBillable is true.
61
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
62
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
63
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
64
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
65
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
66
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
67
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
68
+ # - `customer_sales_tax_code_ref` (Hash): Refers to the sales-tax code for sales related to
69
+ # this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax
70
+ # code indicates whether an item is taxable or non-taxable, and why. In a request, if a
71
+ # `customer_sales_tax_code_ref` aggregate includes both `full_name` and `list_id`,
72
+ # `full_name` will be ignored.
73
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
74
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
75
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
76
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
77
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
78
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
79
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
80
+ # - `def_macro` (String): `def_macro` lets you assign a reusable name to a returned `txn_id`
81
+ # or `txn_line_id` so later requests can reference it with `useMacro`. This feature requires
82
+ # SDK 2.0+.
83
+ # - `due_date` (String): The date on which payment is due.
84
+ # - `estimate_line_add` (Array<Hash>): One line of this estimate. Compare with
85
+ # EstimateLineGroup, which represents a previously defined group of lines in the estimate.
86
+ # In a Mod request, you can add a new line by supplying a `txn_line_id` value of -1. At
87
+ # least one entry is required across `estimate_line_add` and `estimate_line_group_add`; they
88
+ # combine, any number of each. QuickBooks receives them in that order: every
89
+ # `estimate_line_add`, then every `estimate_line_group_add`.
90
+ # - `amount` (Numeric): A monetary amount.
91
+ # - `class_ref` (Hash): Use classes to categorize transactions (for example, by department,
92
+ # location, or work type). Class tracking is off by default in QuickBooks. A `class_ref`
93
+ # points to one class; if both `full_name` and `list_id` are provided, `full_name` is
94
+ # ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you
95
+ # override or clear it on individual lines.
96
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
97
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
98
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
99
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
100
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
101
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
102
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
103
+ # - `data_ext` (Array<Hash>)
104
+ # - `data_ext_name` (String, required): The name of the data extension. If this is a
105
+ # custom field, `data_ext_name` will be visible as a label in the QuickBooks user
106
+ # interface. Also because `owner_id` and `data_ext_name` together make the data
107
+ # extension unique, and because custom fields all have the same `owner_id` of zero, the
108
+ # `data_ext_name` must be a unique value among existing custom fields.
109
+ # - `data_ext_value` (String, required): The data in this field. The maximum length of
110
+ # `data_ext_value` will depend on the `data_ext_type` of this data extension. For
111
+ # example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is
112
+ # 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of
113
+ # `data_ext_value` is 1KB.
114
+ # - `owner_id` (String, required): `owner_id` identifies who owns the data extension. Use
115
+ # 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private
116
+ # extensions owned by an app. Keep private GUIDs confidential unless you intentionally
117
+ # share extensions across apps. If you do share them, both apps must use the same
118
+ # `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.
119
+ # - `desc` (String): A descriptive text field.
120
+ # - `inventory_site_location_ref` (Hash): Location within the Inventory Site.
121
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
122
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
123
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
124
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
125
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
126
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
127
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
128
+ # - `inventory_site_ref` (Hash): Site where inventory is located.
129
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
130
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
131
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
132
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
133
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
134
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
135
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
136
+ # - `item_ref` (Hash): `item_ref` may accept all item types or a restricted subset,
137
+ # depending on the request. Examples: PurchaseOrder and Bill do not allow discount or
138
+ # sales-tax items; VehicleMileageAdd requires a service or other-charge item;
139
+ # BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided,
140
+ # `full_name` is ignored.
141
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
142
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
143
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
144
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
145
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
146
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
147
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
148
+ # - `markup_rate` (Numeric): The markup that will be passed on to the customer for this item
149
+ # on this estimate. Amount, quantity, rate, and markup are related in the following way:
150
+ # Amount = (Quantity \* Rate) + amount of markup Choose at most one of: `markup_rate`, or
151
+ # `markup_rate_percent`, or `price_level_ref`.
152
+ # - `markup_rate_percent` (Numeric): The markup (expressed as a percentage) that will be
153
+ # passed on to the customer for this item on this estimate. Amount, quantity, rate, and
154
+ # markup are related in the following way: Amount = (Quantity \* Rate) + amount of markup
155
+ # Choose at most one of: `markup_rate`, or `markup_rate_percent`, or `price_level_ref`.
156
+ # - `option_for_price_rule_conflict` (one of "BasePrice", "Zero"): Flag to override price
157
+ # rule conflict.
158
+ # - `other1` (String): Other, Other1, and Other2 are built-in transaction custom fields.
159
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
160
+ # available through the SDK and do not require DataExtDef setup. Template labels in the UI
161
+ # can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
162
+ # - `other2` (String): Other, Other1, and Other2 are built-in transaction custom fields.
163
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
164
+ # available through the SDK and do not require DataExtDef setup. Template labels in the UI
165
+ # can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
166
+ # - `override_item_account_ref` (Hash): Refers to a QuickBooks account. If an
167
+ # `override_item_account_ref` aggregate includes both `full_name` and `list_id`,
168
+ # `full_name` will be ignored.
169
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
170
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
171
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
172
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
173
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
174
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
175
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
176
+ # - `price_level_ref` (Hash): Price levels let you apply custom pricing rules for selected
177
+ # customers. Once assigned, QuickBooks uses those prices automatically on supported sales
178
+ # forms unless explicitly overridden. Choose at most one of: `markup_rate`, or
179
+ # `markup_rate_percent`, or `price_level_ref`.
180
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
181
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
182
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
183
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
184
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
185
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
186
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
187
+ # - `quantity` (Numeric): On transaction lines, QuickBooks can derive one value from the
188
+ # other two among Quantity, Rate, and Amount. If you supply Quantity and Amount,
189
+ # QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates
190
+ # Amount.
191
+ # - `rate` (Numeric): If you specify both Rate and Amount in a request, the Rate you provide
192
+ # will be ignored, and you will receive a warning. If you specify both Quantity and Amount
193
+ # in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and
194
+ # Quantity can’t be cleared.) Choose at most one of: `rate`, or `rate_percent`.
195
+ # - `rate_percent` (Numeric): Indicates the price of something as a percent. Choose at most
196
+ # one of: `rate`, or `rate_percent`.
197
+ # - `sales_tax_code_ref` (Hash): `sales_tax_code_ref` points to the sales-tax code used for
198
+ # an item or customer context. QuickBooks includes default TAX and NON codes, and a code
199
+ # can be deleted only when nothing references it. If sales tax is disabled, QuickBooks
200
+ # assigns the default non-taxable code. If both `full_name` and `list_id` are provided in
201
+ # `sales_tax_code_ref`, `full_name` is ignored.
202
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
203
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
204
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
205
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
206
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
207
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
208
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
209
+ # - `tax_amount` (Numeric)
210
+ # - `unit_of_measure` (String): In a transaction line item, the name of the unit of measure
211
+ # selected from within the item’s available units. If the company file is enabled only for
212
+ # single unit of measure per item, this must be the base unit!
213
+ # - `estimate_line_group_add` (Array<Hash>): Represents a previously defined group of lines in
214
+ # the estimate. Compare with EstimateLine, which represents just one line in the estimate.
215
+ # At least one entry is required across `estimate_line_add` and `estimate_line_group_add`;
216
+ # they combine, any number of each. QuickBooks receives them in that order: every
217
+ # `estimate_line_add`, then every `estimate_line_group_add`.
218
+ # - `data_ext` (Array<Hash>)
219
+ # - `data_ext_name` (String, required): The name of the data extension. If this is a
220
+ # custom field, `data_ext_name` will be visible as a label in the QuickBooks user
221
+ # interface. Also because `owner_id` and `data_ext_name` together make the data
222
+ # extension unique, and because custom fields all have the same `owner_id` of zero, the
223
+ # `data_ext_name` must be a unique value among existing custom fields.
224
+ # - `data_ext_value` (String, required): The data in this field. The maximum length of
225
+ # `data_ext_value` will depend on the `data_ext_type` of this data extension. For
226
+ # example, if `data_ext_type` is STR255TYPE, the maximum length of `data_ext_value` is
227
+ # 255 characters. If `data_ext_type` is STR1024TYPE, the maximum size of
228
+ # `data_ext_value` is 1KB.
229
+ # - `owner_id` (String, required): `owner_id` identifies who owns the data extension. Use
230
+ # 0 for QuickBooks custom fields that appear in the UI, or use a GUID for private
231
+ # extensions owned by an app. Keep private GUIDs confidential unless you intentionally
232
+ # share extensions across apps. If you do share them, both apps must use the same
233
+ # `owner_id` and `data_ext_name`, because that pair uniquely identifies the extension.
234
+ # - `desc` (String): A descriptive text field.
235
+ # - `inventory_site_location_ref` (Hash): Location within the Inventory Site.
236
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
237
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
238
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
239
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
240
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
241
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
242
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
243
+ # - `inventory_site_ref` (Hash): Site where inventory is located.
244
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
245
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
246
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
247
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
248
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
249
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
250
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
251
+ # - `item_group_ref` (Hash, required): ItemGroup objects represent items that are grouped
252
+ # together for fast entry, and an `item_group_ref` aggregate refers to one of these item
253
+ # groups. In a request, if an `item_group_ref` aggregate includes both `full_name` and
254
+ # `list_id`, `full_name` will be ignored. You can use an ItemGroupQuery request to get
255
+ # information about all the item groups that are set up in the QuickBooks file.
256
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
257
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
258
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
259
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
260
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
261
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
262
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
263
+ # - `quantity` (Numeric): On transaction lines, QuickBooks can derive one value from the
264
+ # other two among Quantity, Rate, and Amount. If you supply Quantity and Amount,
265
+ # QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates
266
+ # Amount.
267
+ # - `unit_of_measure` (String): In a transaction line item, the name of the unit of measure
268
+ # selected from within the item’s available units. If the company file is enabled only for
269
+ # single unit of measure per item, this must be the base unit!
270
+ # - `exchange_rate` (Numeric): `exchange_rate` is the rate from this currency to the company’s
271
+ # home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks
272
+ # does not provide rates through the SDK. If your home currency is USD and internet access
273
+ # is available, rates can be downloaded in the QuickBooks UI via Lists > Currency >
274
+ # Activities > Download Latest Exchange Rates.
275
+ # - `external_guid` (String): Allows for the attachment of a user defined GUID value.
276
+ # - `fob` (String): QuickBooks uses the term FOB, “freight on board,” to indicate the place
277
+ # from which the product is shipped. The FOB has no accounting implications.
278
+ # - `include_ret_element` (Array<one of "BillAddress", "BillAddressBlock", "ClassRef",
279
+ # "CurrencyRef", "CustomerMsgRef", "CustomerRef", "CustomerSalesTaxCodeRef", "DataExtRet",
280
+ # "DueDate", "EditSequence", "EstimateLineGroupRet", "EstimateLineRet", "ExchangeRate",
281
+ # "ExternalGUID", "FOB", "IsActive", "IsTaxIncluded", "IsToBeEmailed", "ItemSalesTaxRef",
282
+ # "LinkedTxn", "ListID", "Memo", "Other", "OwnerID", "PONumber", "RefNumber", "SalesRepRef",
283
+ # "SalesTaxPercentage", "SalesTaxTotal", "ShipAddress", "ShipAddressBlock", "Subtotal",
284
+ # "TemplateRef", "TermsRef", "TimeCreated", "TimeModified", "TotalAmount",
285
+ # "TotalAmountInHomeCurrency", "TxnDate", "TxnID", "TxnNumber">)
286
+ # - `is_active` (Boolean): If `is_active` is true, this object is currently enabled for use by
287
+ # QuickBooks. The default value is true.
288
+ # - `is_tax_included` (Boolean): For future use with international versions of QuickBooks.
289
+ # - `is_to_be_emailed` (Boolean): When enabled, QuickBooks validates the customer email at
290
+ # runtime before sending. If no valid email is available, the request fails.
291
+ # - `item_sales_tax_ref` (Hash): An ItemSalesTax entry represents one tax rate paid to one tax
292
+ # agency. Use it when a transaction needs a single tax calculation. For multi-rate
293
+ # scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided
294
+ # for `item_sales_tax_ref`, `list_id` is used.
295
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
296
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
297
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
298
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
299
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
300
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
301
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
302
+ # - `memo` (String): Message that appears in reports, but not on the estimate.
303
+ # - `other` (String): Other, Other1, and Other2 are built-in transaction custom fields. Other
304
+ # is transaction-level; Other1 and Other2 are line-level. These fields are always available
305
+ # through the SDK and do not require DataExtDef setup. Template labels in the UI can be
306
+ # renamed, but SDK names remain fixed as Other, Other1, and Other2.
307
+ # - `po_number` (String): Purchase order number.
308
+ # - `ref_number` (String): `ref_number` is a user-managed transaction reference (for example,
309
+ # a check number). It can be edited and is not guaranteed to be globally unique. Some
310
+ # transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences
311
+ # and numbering state.
312
+ # - `request_id` (String): Your own label for the request, sent to QuickBooks as its qbXML
313
+ # `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's
314
+ # webhook already carries the request's `id`.
315
+ # - `sales_rep_ref` (Hash): A sales representative must be on the Employee, Vendor, or Other
316
+ # Names list within QuickBooks. Sales representative’s names and initials appear on the Rep
317
+ # drop-down list on QuickBooks sales forms. A `sales_rep_ref` refers to a person on the
318
+ # SalesRep list. In a request, if a `sales_rep_ref` aggregate includes both `full_name` and
319
+ # `list_id`, `full_name` will be ignored.
320
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
321
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
322
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
323
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
324
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
325
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
326
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
327
+ # - `ship_address` (Hash): This aggregate supports at most five address lines. You can provide
328
+ # a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode
329
+ # (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each
330
+ # Addr line prints as its own line and is returned in `ship_address_block` or
331
+ # `bill_address_block`.
332
+ # - `addr1` (String): The first line of an address.
333
+ # - `addr2` (String): The second line of an address (if a second line is needed).
334
+ # - `addr3` (String): The third line of an address (if a third line is needed).
335
+ # - `addr4` (String): The fourth line of an address (if a fourth line is needed).
336
+ # - `addr5` (String): The fifth line of an address (if a fifth line is needed).
337
+ # - `city` (String): The city name in an address.
338
+ # - `country` (String): The country name in an address, or, in returned Host information
339
+ # (HostRet or HostInfo), the country for which this edition of QuickBooks was designed.
340
+ # (Possible values are US, CA, UK, and AU.)
341
+ # - `note` (String): In a `bill_address` or `ship_address` aggregate, the Note field value
342
+ # is written at the bottom of the address in the form in which it appears, such as the
343
+ # invoice form.
344
+ # - `postal_code` (String): The postal code in an address.
345
+ # - `state` (String): The state name in an address.
346
+ # - `template_ref` (Hash): QuickBooks templates specify how to print certain transactions. A
347
+ # template query returns the names of all templates that have been defined in QuickBooks. A
348
+ # `template_ref` element refers to one of these templates.
349
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
350
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
351
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
352
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
353
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
354
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
355
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
356
+ # - `terms_ref` (Hash): Refers to the payment terms associated with this entity. (This will be
357
+ # an item on the DateDrivenTerms or StandardTerms list.) If a `terms_ref` aggregate includes
358
+ # both `full_name` and `list_id`, `full_name` will be ignored.
359
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
360
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
361
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
362
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
363
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
364
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
365
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
366
+ # - `txn_date` (String): The date of the transaction. In some cases, if you leave `txn_date`
367
+ # out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved
368
+ # transaction of the same type.
369
+ #
370
+ # @param connection_id [String]
371
+ # @param params [Hash] the fields above
372
+ # @param webhook_url [String] where QuBe Sync sends the answer
373
+ # @param idempotency_key [String, nil] made for the call when nil, and reused on its retries
374
+ # @return [Hash] the queued request
375
+ # @see https://docs.qubesync.com/api-reference/v2/estimates/create-estimate
376
+ def create(connection_id, params = {}, webhook_url:, idempotency_key: nil)
377
+ queue("estimate.create", connection_id, params, webhook_url: webhook_url, idempotency_key: idempotency_key)
378
+ end
379
+
380
+ # List estimates: GET /connections/{connection_id}/estimates (`estimate.query`).
381
+ #
382
+ # QuickBooks answers in pages: one webhook per page, each with its `page`, the last with
383
+ # `iteration_state` `done`.
384
+ #
385
+ # Params, sent as the query string:
386
+ # - `account_filter` (Hash): Filters according to the account name or `list_id`. If the “Use
387
+ # account numbers” preference is enabled in the QuickBooks company file, you can specify an
388
+ # account number (instead of an account name) for `full_name` and get the account you’re
389
+ # looking for. But if numbers have been used as account names, confusion could arise. Choose
390
+ # at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set
391
+ # (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`,
392
+ # `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`,
393
+ # `txn_date_range_filter`). Members of a set combine with each other, not with the other
394
+ # choices.
395
+ # Give at most one of: `list_id`, or `full_name`, or `list_id_with_children`, or
396
+ # `full_name_with_children`.
397
+ # - `full_name` (Array<String>): `full_name` (along with `list_id`) is a way to identify a
398
+ # list object. The `full_name` is the name prefixed by the names of each ancestor, for
399
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
400
+ # - `full_name_with_children` (String): Allows you to filter for data that relates to the
401
+ # specified object and its descendants. For names that don’t have children,
402
+ # `full_name_with_children` is exactly the same as `full_name`.
403
+ # - `list_id` (Array<String>): `list_id` and `full_name` both identify a list object.
404
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
405
+ # within a list type, not globally across all lists. If both `full_name` and `list_id` are
406
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
407
+ # - `list_id_with_children` (String): Allows you to filter for data that relates to the
408
+ # specified object and its descendants.
409
+ # - `currency_filter` (Hash): Filters by the specified currency. Choose at most one of:
410
+ # `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`,
411
+ # `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`,
412
+ # `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set
413
+ # combine with each other, not with the other choices.
414
+ # Give at most one of: `list_id`, or `full_name`.
415
+ # - `full_name` (Array<String>): `full_name` (along with `list_id`) is a way to identify a
416
+ # list object. The `full_name` is the name prefixed by the names of each ancestor, for
417
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
418
+ # - `list_id` (Array<String>): `list_id` and `full_name` both identify a list object.
419
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
420
+ # within a list type, not globally across all lists. If both `full_name` and `list_id` are
421
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
422
+ # - `entity_filter` (Hash): An entity refers to a person on the QuickBooks Customer list,
423
+ # Vendor list, Employee list, or Other Names list. You can use an EntityQuery request to get
424
+ # information about all the entities that are set up in the QuickBooks file. In an
425
+ # ARRefundCreditCard query, this must be a customer/customer job. Choose at most one of:
426
+ # `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`,
427
+ # `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`,
428
+ # `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set
429
+ # combine with each other, not with the other choices.
430
+ # Give at most one of: `list_id`, or `full_name`, or `list_id_with_children`, or
431
+ # `full_name_with_children`.
432
+ # - `full_name` (Array<String>): `full_name` (along with `list_id`) is a way to identify a
433
+ # list object. The `full_name` is the name prefixed by the names of each ancestor, for
434
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
435
+ # - `full_name_with_children` (String): Allows you to filter for data that relates to the
436
+ # specified object and its descendants. For names that don’t have children,
437
+ # `full_name_with_children` is exactly the same as `full_name`.
438
+ # - `list_id` (Array<String>): `list_id` and `full_name` both identify a list object.
439
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
440
+ # within a list type, not globally across all lists. If both `full_name` and `list_id` are
441
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
442
+ # - `list_id_with_children` (String): Allows you to filter for data that relates to the
443
+ # specified object and its descendants.
444
+ # - `include_line_items` (Boolean): This filter allows you to omit line items from a query
445
+ # response to get a smaller result. The default value is false, so line items are omitted by
446
+ # default. Set `include_line_items` to true to include line items in the response if you
447
+ # don’t mind getting a larger result.
448
+ # - `include_linked_txns` (Boolean): If you set `include_linked_txns` to true, then the
449
+ # returned object will include a list of all the transactions linked to the queried object.
450
+ # (This list is similar to the History view of a transaction in the user interface, but not
451
+ # identical, as the SDK list contains only linked transactions, not items.) Each linked
452
+ # transaction will be represented by a `linked_txn` aggregate.
453
+ # - `include_ret_element` (Array<one of "BillAddress", "BillAddressBlock", "ClassRef",
454
+ # "CurrencyRef", "CustomerMsgRef", "CustomerRef", "CustomerSalesTaxCodeRef", "DataExtRet",
455
+ # "DueDate", "EditSequence", "EstimateLineGroupRet", "EstimateLineRet", "ExchangeRate",
456
+ # "ExternalGUID", "FOB", "IsActive", "IsTaxIncluded", "IsToBeEmailed", "ItemSalesTaxRef",
457
+ # "LinkedTxn", "Memo", "Other", "PONumber", "RefNumber", "SalesRepRef",
458
+ # "SalesTaxPercentage", "SalesTaxTotal", "ShipAddress", "ShipAddressBlock", "Subtotal",
459
+ # "TemplateRef", "TermsRef", "TimeCreated", "TimeModified", "TotalAmount",
460
+ # "TotalAmountInHomeCurrency", "TxnDate", "TxnID", "TxnNumber">)
461
+ # - `iterator` (Boolean): Page through every match: QuBe Sync asks QuickBooks for each page in
462
+ # turn and sends each to your `webhook_url` as it arrives, all with the same `id`. On by
463
+ # default, with pages of 100 records (25 with `include_line_items` or
464
+ # `include_linked_txns`); send `iterator=true` with `max_returned` for another size. Off
465
+ # when you send `iterator=false` (every match in one answer) or `max_returned` alone (at
466
+ # most that many, in one answer). It pages a filtered query only: with `ref_number`,
467
+ # `ref_number_case_sensitive` or `txn_id` every match comes back in one answer, so leave
468
+ # `iterator` out.
469
+ # - `max_returned` (Integer): Limits the number of objects that a query returns. (To get a
470
+ # count of how many objects could possibly be returned, use the `meta_data` query
471
+ # attribute.) If you include a `max_returned` value, it must be at least 1. The page size,
472
+ # with `iterator=true`. Sent without `iterator`, or with `iterator=false`, it's a cap
473
+ # instead: at most this many records come back, in one answer, and QuickBooks doesn't say
474
+ # whether more matched. Choose at most one of: `txn_id`, or `ref_number`, or
475
+ # `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`,
476
+ # `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`,
477
+ # `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each
478
+ # other, not with the other choices.
479
+ # - `meta_data` (one of "MetaDataAndResponseData", "MetaDataOnly", "NoMetaData"): Use the
480
+ # `meta_data` attribute to control whether query responses include counts. Options are
481
+ # NoMetaData (default), MetaDataOnly (count only), and MetaDataAndResponseData (count plus
482
+ # objects). Counts are approximate and may vary slightly if records are created or deleted
483
+ # during processing.
484
+ # - `modified_date_range_filter` (Hash): Filters according to the dates when transactions were
485
+ # last modified. The `modified_date_range_filter` aggregate isn’t required to contain any
486
+ # elements, but if it is empty, we recommend that you leave it out altogether. Note that the
487
+ # time portion of the `from_modified_date` and `to_modified_date` fields wasn’t supported in
488
+ # qbXML version 1.0 or 1.1. Choose at most one of: `txn_id`, or `ref_number`, or
489
+ # `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`,
490
+ # `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`,
491
+ # `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each
492
+ # other, not with the other choices.
493
+ # - `from_modified_date` (String): Filters results to objects modified on or after this
494
+ # timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a
495
+ # date is provided, time defaults to 00:00:00.
496
+ # - `to_modified_date` (String): Filters results to objects modified on or before this
497
+ # timestamp. QuickBooks Desktop accepts 1970-01-01 through 2038-01-19T03:14:07. If only a
498
+ # date is provided, time defaults to end-of-day (23:59:59).
499
+ # - `owner_id` (Array<String>): `owner_id` identifies who owns the data extension. Use 0 for
500
+ # QuickBooks custom fields that appear in the UI, or use a GUID for private extensions owned
501
+ # by an app. Keep private GUIDs confidential unless you intentionally share extensions
502
+ # across apps. If you do share them, both apps must use the same `owner_id` and
503
+ # `data_ext_name`, because that pair uniquely identifies the extension.
504
+ # - `ref_number` (Array<String>): `ref_number` is a user-managed transaction reference (for
505
+ # example, a check number). It can be edited and is not guaranteed to be globally unique.
506
+ # Some transaction types auto-populate `ref_number` when omitted, based on QuickBooks
507
+ # preferences and numbering state. Choose at most one of: `txn_id`, or `ref_number`, or
508
+ # `ref_number_case_sensitive`, or the set (`account_filter`, `currency_filter`,
509
+ # `entity_filter`, `max_returned`, `modified_date_range_filter`, `ref_number_filter`,
510
+ # `ref_number_range_filter`, `txn_date_range_filter`). Members of a set combine with each
511
+ # other, not with the other choices.
512
+ # - `ref_number_case_sensitive` (Array<String>): Choose at most one of: `txn_id`, or
513
+ # `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`,
514
+ # `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`,
515
+ # `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set
516
+ # combine with each other, not with the other choices.
517
+ # - `ref_number_filter` (Hash): Filters by `ref_number` range. Numeric-only bounds are
518
+ # compared numerically; otherwise comparison is lexicographic. Choose at most one of:
519
+ # `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`,
520
+ # `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`,
521
+ # `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set
522
+ # combine with each other, not with the other choices.
523
+ # - `match_criterion` (one of "Contains", "EndsWith", "StartsWith", required): The criterion
524
+ # to match.
525
+ # - `ref_number` (String, required): `ref_number` is a user-managed transaction reference
526
+ # (for example, a check number). It can be edited and is not guaranteed to be globally
527
+ # unique. Some transaction types auto-populate `ref_number` when omitted, based on
528
+ # QuickBooks preferences and numbering state.
529
+ # - `ref_number_range_filter` (Hash): Filters by `ref_number` range. Numeric-only bounds are
530
+ # compared numerically; otherwise comparison is lexicographic. Choose at most one of:
531
+ # `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set (`account_filter`,
532
+ # `currency_filter`, `entity_filter`, `max_returned`, `modified_date_range_filter`,
533
+ # `ref_number_filter`, `ref_number_range_filter`, `txn_date_range_filter`). Members of a set
534
+ # combine with each other, not with the other choices.
535
+ # - `from_ref_number` (String): The first `ref_number` in the search range. If
536
+ # `from_ref_number` is omitted, the range will begin with first number on the list.
537
+ # - `to_ref_number` (String): The final `ref_number` in the search range. If `to_ref_number`
538
+ # is omitted, the range will end with last number on the list.
539
+ # - `request_id` (String): Your own label for the request, sent to QuickBooks as its qbXML
540
+ # `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's
541
+ # webhook already carries the request's `id`.
542
+ # - `txn_date_range_filter` (Hash): Filters according to the original transaction dates.
543
+ # Choose at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the
544
+ # set (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`,
545
+ # `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`,
546
+ # `txn_date_range_filter`). Members of a set combine with each other, not with the other
547
+ # choices.
548
+ # Give at most one of: `from_txn_date` with `to_txn_date`, or `date_macro`.
549
+ # - `date_macro` (one of "All", "LastCalendarQuarter", "LastCalendarQuarterToDate",
550
+ # "LastCalendarYear", "LastCalendarYearToDate", "LastFiscalQuarter",
551
+ # "LastFiscalQuarterToDate", "LastFiscalYear", "LastFiscalYearToDate", "LastMonth",
552
+ # "LastMonthToDate", "LastWeek", "LastWeekToDate", "NextCalendarQuarter",
553
+ # "NextCalendarYear", "NextFiscalQuarter", "NextFiscalYear", "NextFourWeeks", "NextMonth",
554
+ # "NextWeek", "ThisCalendarQuarter", "ThisCalendarQuarterToDate", "ThisCalendarYear",
555
+ # "ThisCalendarYearToDate", "ThisFiscalQuarter", "ThisFiscalQuarterToDate",
556
+ # "ThisFiscalYear", "ThisFiscalYearToDate", "ThisMonth", "ThisMonthToDate", "ThisWeek",
557
+ # "ThisWeekToDate", "Today", "Yesterday"): `date_macro` filters by transaction date (not
558
+ # last-modified date). Do not combine `date_macro` with
559
+ # `from_modified_date`/`to_modified_date` in the same query filter set.
560
+ # - `from_txn_date` (String): Selects transactions created on or after this date. Both
561
+ # `from_txn_date` and `to_txn_date` must be between 01/01/1901 and 12/31/9999.If you omit
562
+ # `from_txn_date`, it will be set to 1970-01-01 (1969-12-31 PST).
563
+ # - `to_txn_date` (String): Selects transactions created on or before this date. Both
564
+ # `to_txn_date` and `from_txn_date` must be between 01/01/1901 and 12/31/9999. If you omit
565
+ # `to_txn_date`, it will be set to 2038-01-19 (2038-01-18 PST).
566
+ # - `txn_id` (Array<String>): `txn_id` is the unique QuickBooks identifier for a transaction.
567
+ # Use it to reference that transaction in later requests. `txn_id` values are
568
+ # transaction-specific and should not be reused across unrelated transaction types. Choose
569
+ # at most one of: `txn_id`, or `ref_number`, or `ref_number_case_sensitive`, or the set
570
+ # (`account_filter`, `currency_filter`, `entity_filter`, `max_returned`,
571
+ # `modified_date_range_filter`, `ref_number_filter`, `ref_number_range_filter`,
572
+ # `txn_date_range_filter`). Members of a set combine with each other, not with the other
573
+ # choices.
574
+ #
575
+ # @param connection_id [String]
576
+ # @param params [Hash] the fields above
577
+ # @param webhook_url [String] where QuBe Sync sends the answer
578
+ # @param idempotency_key [String, nil] made for the call when nil, and reused on its retries
579
+ # @return [Hash] the queued request
580
+ # @see https://docs.qubesync.com/api-reference/v2/estimates/list-estimates
581
+ def query(connection_id, params = {}, webhook_url:, idempotency_key: nil)
582
+ queue("estimate.query", connection_id, params, webhook_url: webhook_url, idempotency_key: idempotency_key)
583
+ end
584
+
585
+ # Update estimate: PUT /connections/{connection_id}/estimates (`estimate.update`).
586
+ #
587
+ # QuickBooks answers in one webhook.
588
+ #
589
+ # Params, sent as the JSON body:
590
+ # - `bill_address` (Hash): This aggregate supports at most five address lines. You can provide
591
+ # a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode
592
+ # (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each
593
+ # Addr line prints as its own line and is returned in `ship_address_block` or
594
+ # `bill_address_block`.
595
+ # - `addr1` (String): The first line of an address.
596
+ # - `addr2` (String): The second line of an address (if a second line is needed).
597
+ # - `addr3` (String): The third line of an address (if a third line is needed).
598
+ # - `addr4` (String): The fourth line of an address (if a fourth line is needed).
599
+ # - `addr5` (String): The fifth line of an address (if a fifth line is needed).
600
+ # - `city` (String): The city name in an address.
601
+ # - `country` (String): The country name in an address, or, in returned Host information
602
+ # (HostRet or HostInfo), the country for which this edition of QuickBooks was designed.
603
+ # (Possible values are US, CA, UK, and AU.)
604
+ # - `note` (String): In a `bill_address` or `ship_address` aggregate, the Note field value
605
+ # is written at the bottom of the address in the form in which it appears, such as the
606
+ # invoice form.
607
+ # - `postal_code` (String): The postal code in an address.
608
+ # - `state` (String): The state name in an address.
609
+ # - `class_ref` (Hash): Use classes to categorize transactions (for example, by department,
610
+ # location, or work type). Class tracking is off by default in QuickBooks. A `class_ref`
611
+ # points to one class; if both `full_name` and `list_id` are provided, `full_name` is
612
+ # ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you
613
+ # override or clear it on individual lines.
614
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
615
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
616
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
617
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
618
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
619
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
620
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
621
+ # - `create_change_order` (Boolean): If `create_change_order` is true, the modifications are
622
+ # tracked as a “change order” that appears in the description field at the bottom of the
623
+ # estimate form in QuickBooks. A change order specifies exactly what changed, the dollar
624
+ # amount of each change, and the net dollar change to the estimate.
625
+ # - `customer_msg_ref` (Hash): A standard message such as “Thank you for your business,” or
626
+ # “Please sign and return this estimate to indicate your approval.” A customer message can
627
+ # be included at the bottom of a form. A `customer_msg_ref` aggregate refers to one of the
628
+ # messages on the CustomerMsg list. In a request, if a `customer_msg_ref` aggregate includes
629
+ # both `full_name` and `list_id`, `full_name` will be ignored.
630
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
631
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
632
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
633
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
634
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
635
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
636
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
637
+ # - `customer_ref` (Hash): `customer_ref` identifies a customer or customer job. If both
638
+ # `full_name` and `list_id` are provided, `full_name` is ignored. In SalesReceipt and
639
+ # ReceivePayment, it identifies who receives credit. In TimeTracking, it identifies who the
640
+ # time can be billed to and is required in TimeTrackingAdd when IsBillable is true.
641
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
642
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
643
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
644
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
645
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
646
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
647
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
648
+ # - `customer_sales_tax_code_ref` (Hash): Refers to the sales-tax code for sales related to
649
+ # this customer. (That is, it refers to a member of the SalesTaxCode list.) The sales-tax
650
+ # code indicates whether an item is taxable or non-taxable, and why. In a request, if a
651
+ # `customer_sales_tax_code_ref` aggregate includes both `full_name` and `list_id`,
652
+ # `full_name` will be ignored.
653
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
654
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
655
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
656
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
657
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
658
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
659
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
660
+ # - `due_date` (String): The date on which payment is due.
661
+ # - `edit_sequence` (String, required): `edit_sequence` is a server-generated revision token.
662
+ # It changes each time the object is updated. To modify an existing object, you must send
663
+ # the current `edit_sequence`. If your value is stale, the update is rejected to prevent
664
+ # overwriting newer changes.
665
+ # - `estimate_line_group_mod` (Array<Hash>): Represents a previously defined group of lines in
666
+ # the estimate. Compare with EstimateLine, which represents just one line in the estimate.
667
+ # `estimate_line_mod` and `estimate_line_group_mod` combine: any number of each. QuickBooks
668
+ # receives them in that order: every `estimate_line_mod`, then every
669
+ # `estimate_line_group_mod`.
670
+ # - `estimate_line_mod` (Array<Hash>): One line of this estimate. Compare with
671
+ # EstimateLineGroup, which represents a previously defined group of lines in the estimate.
672
+ # In a Mod request, you can add a new line by supplying a `txn_line_id` value of -1.
673
+ # - `amount` (Numeric): A monetary amount.
674
+ # - `class_ref` (Hash): Use classes to categorize transactions (for example, by
675
+ # department, location, or work type). Class tracking is off by default in QuickBooks. A
676
+ # `class_ref` points to one class; if both `full_name` and `list_id` are provided,
677
+ # `full_name` is ignored. In InvoiceAdd, a header-level `class_ref` is applied to line
678
+ # items unless you override or clear it on individual lines.
679
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
680
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
681
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
682
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
683
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
684
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
685
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
686
+ # - `desc` (String): A descriptive text field.
687
+ # - `inventory_site_location_ref` (Hash): Location within the Inventory Site.
688
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
689
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
690
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
691
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
692
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
693
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
694
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
695
+ # - `inventory_site_ref` (Hash): Site where inventory is located.
696
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
697
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
698
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
699
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
700
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
701
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
702
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
703
+ # - `item_ref` (Hash): `item_ref` may accept all item types or a restricted subset,
704
+ # depending on the request. Examples: PurchaseOrder and Bill do not allow discount or
705
+ # sales-tax items; VehicleMileageAdd requires a service or other-charge item;
706
+ # BillingRateAdd requires a service item. If both `full_name` and `list_id` are
707
+ # provided, `full_name` is ignored.
708
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
709
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
710
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
711
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
712
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
713
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
714
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
715
+ # - `markup_rate` (Numeric): The markup that will be passed on to the customer for this
716
+ # item on this estimate. Amount, quantity, rate, and markup are related in the following
717
+ # way: Amount = (Quantity \* Rate) + amount of markup Choose at most one of:
718
+ # `markup_rate`, or `markup_rate_percent`, or `price_level_ref`.
719
+ # - `markup_rate_percent` (Numeric): The markup (expressed as a percentage) that will be
720
+ # passed on to the customer for this item on this estimate. Amount, quantity, rate, and
721
+ # markup are related in the following way: Amount = (Quantity \* Rate) + amount of
722
+ # markup Choose at most one of: `markup_rate`, or `markup_rate_percent`, or
723
+ # `price_level_ref`.
724
+ # - `option_for_price_rule_conflict` (one of "BasePrice", "Zero"): Flag to override price
725
+ # rule conflict.
726
+ # - `other1` (String): Other, Other1, and Other2 are built-in transaction custom fields.
727
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
728
+ # available through the SDK and do not require DataExtDef setup. Template labels in the
729
+ # UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
730
+ # - `other2` (String): Other, Other1, and Other2 are built-in transaction custom fields.
731
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
732
+ # available through the SDK and do not require DataExtDef setup. Template labels in the
733
+ # UI can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
734
+ # - `override_uom_set_ref` (Hash): When you modify a transaction line to change the unit
735
+ # of measure used in that line, you use this aggregate to specify the UOM set within
736
+ # which you are choosing an available unit of measure. The “override” here refers to the
737
+ # unit within the set, not the UOM Set itself, which you can’t change or override–the
738
+ # UOM set that can be set or changed only in the item itself via an Item Mod request.
739
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
740
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
741
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
742
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
743
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
744
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
745
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
746
+ # - `price_level_ref` (Hash): Price levels let you apply custom pricing rules for selected
747
+ # customers. Once assigned, QuickBooks uses those prices automatically on supported
748
+ # sales forms unless explicitly overridden. Choose at most one of: `markup_rate`, or
749
+ # `markup_rate_percent`, or `price_level_ref`.
750
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
751
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
752
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
753
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
754
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
755
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
756
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
757
+ # - `quantity` (Numeric): On transaction lines, QuickBooks can derive one value from the
758
+ # other two among Quantity, Rate, and Amount. If you supply Quantity and Amount,
759
+ # QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates
760
+ # Amount.
761
+ # - `rate` (Numeric): If you specify both Rate and Amount in a request, the Rate you
762
+ # provide will be ignored, and you will receive a warning. If you specify both Quantity
763
+ # and Amount in an Add request, QuickBooks will use them to calculate Rate. (Rate,
764
+ # Amount, and Quantity can’t be cleared.) Choose at most one of: `rate`, or
765
+ # `rate_percent`.
766
+ # - `rate_percent` (Numeric): Indicates the price of something as a percent. Choose at
767
+ # most one of: `rate`, or `rate_percent`.
768
+ # - `sales_tax_code_ref` (Hash): `sales_tax_code_ref` points to the sales-tax code used
769
+ # for an item or customer context. QuickBooks includes default TAX and NON codes, and a
770
+ # code can be deleted only when nothing references it. If sales tax is disabled,
771
+ # QuickBooks assigns the default non-taxable code. If both `full_name` and `list_id` are
772
+ # provided in `sales_tax_code_ref`, `full_name` is ignored.
773
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
774
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
775
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
776
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object.
777
+ # QuickBooks assigns `list_id` when the object is created. `list_id` values are unique
778
+ # within a list type, not globally across all lists. If both `full_name` and `list_id`
779
+ # are supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
780
+ # - `tax_amount` (Numeric)
781
+ # - `txn_line_id` (String, required): Identification number of the transaction line.
782
+ # (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1,
783
+ # `txn_line_id` is always returned as zero.) If you need to add a new transaction line
784
+ # in a transaction Mod request, you can do so by setting the `txn_line_id` to -1.
785
+ # - `unit_of_measure` (String): In a transaction line item, the name of the unit of
786
+ # measure selected from within the item’s available units. If the company file is
787
+ # enabled only for single unit of measure per item, this must be the base unit!
788
+ # - `item_group_ref` (Hash): ItemGroup objects represent items that are grouped together for
789
+ # fast entry, and an `item_group_ref` aggregate refers to one of these item groups. In a
790
+ # request, if an `item_group_ref` aggregate includes both `full_name` and `list_id`,
791
+ # `full_name` will be ignored. You can use an ItemGroupQuery request to get information
792
+ # about all the item groups that are set up in the QuickBooks file.
793
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
794
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
795
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
796
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
797
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
798
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
799
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
800
+ # - `override_uom_set_ref` (Hash): When you modify a transaction line to change the unit of
801
+ # measure used in that line, you use this aggregate to specify the UOM set within which
802
+ # you are choosing an available unit of measure. The “override” here refers to the unit
803
+ # within the set, not the UOM Set itself, which you can’t change or override–the UOM set
804
+ # that can be set or changed only in the item itself via an Item Mod request.
805
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
806
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
807
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
808
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
809
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
810
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
811
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
812
+ # - `quantity` (Numeric): On transaction lines, QuickBooks can derive one value from the
813
+ # other two among Quantity, Rate, and Amount. If you supply Quantity and Amount,
814
+ # QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates
815
+ # Amount.
816
+ # - `txn_line_id` (String, required): Identification number of the transaction line.
817
+ # (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1,
818
+ # `txn_line_id` is always returned as zero.) If you need to add a new transaction line in
819
+ # a transaction Mod request, you can do so by setting the `txn_line_id` to -1.
820
+ # - `unit_of_measure` (String): In a transaction line item, the name of the unit of measure
821
+ # selected from within the item’s available units. If the company file is enabled only for
822
+ # single unit of measure per item, this must be the base unit!
823
+ # - `estimate_line_mod` (Array<Hash>): One line of this estimate. Compare with
824
+ # EstimateLineGroup, which represents a previously defined group of lines in the estimate.
825
+ # In a Mod request, you can add a new line by supplying a `txn_line_id` value of -1.
826
+ # `estimate_line_mod` and `estimate_line_group_mod` combine: any number of each. QuickBooks
827
+ # receives them in that order: every `estimate_line_mod`, then every
828
+ # `estimate_line_group_mod`.
829
+ # - `amount` (Numeric): A monetary amount.
830
+ # - `class_ref` (Hash): Use classes to categorize transactions (for example, by department,
831
+ # location, or work type). Class tracking is off by default in QuickBooks. A `class_ref`
832
+ # points to one class; if both `full_name` and `list_id` are provided, `full_name` is
833
+ # ignored. In InvoiceAdd, a header-level `class_ref` is applied to line items unless you
834
+ # override or clear it on individual lines.
835
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
836
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
837
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
838
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
839
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
840
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
841
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
842
+ # - `desc` (String): A descriptive text field.
843
+ # - `inventory_site_location_ref` (Hash): Location within the Inventory Site.
844
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
845
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
846
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
847
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
848
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
849
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
850
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
851
+ # - `inventory_site_ref` (Hash): Site where inventory is located.
852
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
853
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
854
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
855
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
856
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
857
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
858
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
859
+ # - `item_ref` (Hash): `item_ref` may accept all item types or a restricted subset,
860
+ # depending on the request. Examples: PurchaseOrder and Bill do not allow discount or
861
+ # sales-tax items; VehicleMileageAdd requires a service or other-charge item;
862
+ # BillingRateAdd requires a service item. If both `full_name` and `list_id` are provided,
863
+ # `full_name` is ignored.
864
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
865
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
866
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
867
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
868
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
869
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
870
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
871
+ # - `markup_rate` (Numeric): The markup that will be passed on to the customer for this item
872
+ # on this estimate. Amount, quantity, rate, and markup are related in the following way:
873
+ # Amount = (Quantity \* Rate) + amount of markup Choose at most one of: `markup_rate`, or
874
+ # `markup_rate_percent`, or `price_level_ref`.
875
+ # - `markup_rate_percent` (Numeric): The markup (expressed as a percentage) that will be
876
+ # passed on to the customer for this item on this estimate. Amount, quantity, rate, and
877
+ # markup are related in the following way: Amount = (Quantity \* Rate) + amount of markup
878
+ # Choose at most one of: `markup_rate`, or `markup_rate_percent`, or `price_level_ref`.
879
+ # - `option_for_price_rule_conflict` (one of "BasePrice", "Zero"): Flag to override price
880
+ # rule conflict.
881
+ # - `other1` (String): Other, Other1, and Other2 are built-in transaction custom fields.
882
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
883
+ # available through the SDK and do not require DataExtDef setup. Template labels in the UI
884
+ # can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
885
+ # - `other2` (String): Other, Other1, and Other2 are built-in transaction custom fields.
886
+ # Other is transaction-level; Other1 and Other2 are line-level. These fields are always
887
+ # available through the SDK and do not require DataExtDef setup. Template labels in the UI
888
+ # can be renamed, but SDK names remain fixed as Other, Other1, and Other2.
889
+ # - `override_uom_set_ref` (Hash): When you modify a transaction line to change the unit of
890
+ # measure used in that line, you use this aggregate to specify the UOM set within which
891
+ # you are choosing an available unit of measure. The “override” here refers to the unit
892
+ # within the set, not the UOM Set itself, which you can’t change or override–the UOM set
893
+ # that can be set or changed only in the item itself via an Item Mod request.
894
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
895
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
896
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
897
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
898
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
899
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
900
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
901
+ # - `price_level_ref` (Hash): Price levels let you apply custom pricing rules for selected
902
+ # customers. Once assigned, QuickBooks uses those prices automatically on supported sales
903
+ # forms unless explicitly overridden. Choose at most one of: `markup_rate`, or
904
+ # `markup_rate_percent`, or `price_level_ref`.
905
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
906
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
907
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
908
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
909
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
910
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
911
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
912
+ # - `quantity` (Numeric): On transaction lines, QuickBooks can derive one value from the
913
+ # other two among Quantity, Rate, and Amount. If you supply Quantity and Amount,
914
+ # QuickBooks calculates Rate. If you supply Quantity and Rate, QuickBooks calculates
915
+ # Amount.
916
+ # - `rate` (Numeric): If you specify both Rate and Amount in a request, the Rate you provide
917
+ # will be ignored, and you will receive a warning. If you specify both Quantity and Amount
918
+ # in an Add request, QuickBooks will use them to calculate Rate. (Rate, Amount, and
919
+ # Quantity can’t be cleared.) Choose at most one of: `rate`, or `rate_percent`.
920
+ # - `rate_percent` (Numeric): Indicates the price of something as a percent. Choose at most
921
+ # one of: `rate`, or `rate_percent`.
922
+ # - `sales_tax_code_ref` (Hash): `sales_tax_code_ref` points to the sales-tax code used for
923
+ # an item or customer context. QuickBooks includes default TAX and NON codes, and a code
924
+ # can be deleted only when nothing references it. If sales tax is disabled, QuickBooks
925
+ # assigns the default non-taxable code. If both `full_name` and `list_id` are provided in
926
+ # `sales_tax_code_ref`, `full_name` is ignored.
927
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
928
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for
929
+ # example Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
930
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
931
+ # assigns `list_id` when the object is created. `list_id` values are unique within a
932
+ # list type, not globally across all lists. If both `full_name` and `list_id` are
933
+ # supplied in a request, QuickBooks uses `list_id` and ignores `full_name`.
934
+ # - `tax_amount` (Numeric)
935
+ # - `txn_line_id` (String, required): Identification number of the transaction line.
936
+ # (`txn_line_id` is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1,
937
+ # `txn_line_id` is always returned as zero.) If you need to add a new transaction line in
938
+ # a transaction Mod request, you can do so by setting the `txn_line_id` to -1.
939
+ # - `unit_of_measure` (String): In a transaction line item, the name of the unit of measure
940
+ # selected from within the item’s available units. If the company file is enabled only for
941
+ # single unit of measure per item, this must be the base unit!
942
+ # - `exchange_rate` (Numeric): `exchange_rate` is the rate from this currency to the company’s
943
+ # home currency at AsOfDate. You can supply a rate when adding transactions, but QuickBooks
944
+ # does not provide rates through the SDK. If your home currency is USD and internet access
945
+ # is available, rates can be downloaded in the QuickBooks UI via Lists > Currency >
946
+ # Activities > Download Latest Exchange Rates.
947
+ # - `fob` (String): QuickBooks uses the term FOB, “freight on board,” to indicate the place
948
+ # from which the product is shipped. The FOB has no accounting implications.
949
+ # - `include_ret_element` (Array<one of "BillAddress", "BillAddressBlock", "ClassRef",
950
+ # "CurrencyRef", "CustomerMsgRef", "CustomerRef", "CustomerSalesTaxCodeRef", "DataExtRet",
951
+ # "DueDate", "EditSequence", "EstimateLineGroupRet", "EstimateLineRet", "ExchangeRate",
952
+ # "ExternalGUID", "FOB", "IsActive", "IsTaxIncluded", "IsToBeEmailed", "ItemSalesTaxRef",
953
+ # "LinkedTxn", "ListID", "Memo", "Other", "OwnerID", "PONumber", "RefNumber", "SalesRepRef",
954
+ # "SalesTaxPercentage", "SalesTaxTotal", "ShipAddress", "ShipAddressBlock", "Subtotal",
955
+ # "TemplateRef", "TermsRef", "TimeCreated", "TimeModified", "TotalAmount",
956
+ # "TotalAmountInHomeCurrency", "TxnDate", "TxnID", "TxnNumber">)
957
+ # - `is_active` (Boolean): If `is_active` is true, this object is currently enabled for use by
958
+ # QuickBooks. The default value is true.
959
+ # - `is_tax_included` (Boolean): For future use with international versions of QuickBooks.
960
+ # - `is_to_be_emailed` (Boolean): When enabled, QuickBooks validates the customer email at
961
+ # runtime before sending. If no valid email is available, the request fails.
962
+ # - `item_sales_tax_ref` (Hash): An ItemSalesTax entry represents one tax rate paid to one tax
963
+ # agency. Use it when a transaction needs a single tax calculation. For multi-rate
964
+ # scenarios, use a sales-tax group instead. If both `full_name` and `list_id` are provided
965
+ # for `item_sales_tax_ref`, `list_id` is used.
966
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
967
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
968
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
969
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
970
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
971
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
972
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
973
+ # - `memo` (String): Message that appears in reports, but not on the estimate.
974
+ # - `other` (String): Other, Other1, and Other2 are built-in transaction custom fields. Other
975
+ # is transaction-level; Other1 and Other2 are line-level. These fields are always available
976
+ # through the SDK and do not require DataExtDef setup. Template labels in the UI can be
977
+ # renamed, but SDK names remain fixed as Other, Other1, and Other2.
978
+ # - `po_number` (String): Purchase order number.
979
+ # - `ref_number` (String): `ref_number` is a user-managed transaction reference (for example,
980
+ # a check number). It can be edited and is not guaranteed to be globally unique. Some
981
+ # transaction types auto-populate `ref_number` when omitted, based on QuickBooks preferences
982
+ # and numbering state.
983
+ # - `request_id` (String): Your own label for the request, sent to QuickBooks as its qbXML
984
+ # `requestID` and echoed in the raw answer (`response_xml`); optional, since the answer's
985
+ # webhook already carries the request's `id`.
986
+ # - `sales_rep_ref` (Hash): A sales representative must be on the Employee, Vendor, or Other
987
+ # Names list within QuickBooks. Sales representative’s names and initials appear on the Rep
988
+ # drop-down list on QuickBooks sales forms. A `sales_rep_ref` refers to a person on the
989
+ # SalesRep list. In a request, if a `sales_rep_ref` aggregate includes both `full_name` and
990
+ # `list_id`, `full_name` will be ignored.
991
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
992
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
993
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
994
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
995
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
996
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
997
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
998
+ # - `ship_address` (Hash): This aggregate supports at most five address lines. You can provide
999
+ # a structured address (Addr1-Addr3 plus City/State/`postal_code`/etc.) or use block mode
1000
+ # (Addr1-Addr5 only). Do not mix block mode with other address fields. In block mode, each
1001
+ # Addr line prints as its own line and is returned in `ship_address_block` or
1002
+ # `bill_address_block`.
1003
+ # - `addr1` (String): The first line of an address.
1004
+ # - `addr2` (String): The second line of an address (if a second line is needed).
1005
+ # - `addr3` (String): The third line of an address (if a third line is needed).
1006
+ # - `addr4` (String): The fourth line of an address (if a fourth line is needed).
1007
+ # - `addr5` (String): The fifth line of an address (if a fifth line is needed).
1008
+ # - `city` (String): The city name in an address.
1009
+ # - `country` (String): The country name in an address, or, in returned Host information
1010
+ # (HostRet or HostInfo), the country for which this edition of QuickBooks was designed.
1011
+ # (Possible values are US, CA, UK, and AU.)
1012
+ # - `note` (String): In a `bill_address` or `ship_address` aggregate, the Note field value
1013
+ # is written at the bottom of the address in the form in which it appears, such as the
1014
+ # invoice form.
1015
+ # - `postal_code` (String): The postal code in an address.
1016
+ # - `state` (String): The state name in an address.
1017
+ # - `template_ref` (Hash): QuickBooks templates specify how to print certain transactions. A
1018
+ # template query returns the names of all templates that have been defined in QuickBooks. A
1019
+ # `template_ref` element refers to one of these templates.
1020
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
1021
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
1022
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
1023
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
1024
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
1025
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
1026
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
1027
+ # - `terms_ref` (Hash): Refers to the payment terms associated with this entity. (This will be
1028
+ # an item on the DateDrivenTerms or StandardTerms list.) If a `terms_ref` aggregate includes
1029
+ # both `full_name` and `list_id`, `full_name` will be ignored.
1030
+ # - `full_name` (String): `full_name` (along with `list_id`) is a way to identify a list
1031
+ # object. The `full_name` is the name prefixed by the names of each ancestor, for example
1032
+ # Jones:Kitchen:Cabinets. `full_name` values aren’t case-sensitive.
1033
+ # - `list_id` (String): `list_id` and `full_name` both identify a list object. QuickBooks
1034
+ # assigns `list_id` when the object is created. `list_id` values are unique within a list
1035
+ # type, not globally across all lists. If both `full_name` and `list_id` are supplied in a
1036
+ # request, QuickBooks uses `list_id` and ignores `full_name`.
1037
+ # - `txn_date` (String): The date of the transaction. In some cases, if you leave `txn_date`
1038
+ # out of an -Add message, QuickBooks will prefill `txn_date` with the date of the last-saved
1039
+ # transaction of the same type.
1040
+ # - `txn_id` (String, required): `txn_id` is the unique QuickBooks identifier for a
1041
+ # transaction. Use it to reference that transaction in later requests. `txn_id` values are
1042
+ # transaction-specific and should not be reused across unrelated transaction types.
1043
+ #
1044
+ # @param connection_id [String]
1045
+ # @param params [Hash] the fields above
1046
+ # @param webhook_url [String] where QuBe Sync sends the answer
1047
+ # @param idempotency_key [String, nil] made for the call when nil, and reused on its retries
1048
+ # @return [Hash] the queued request
1049
+ # @see https://docs.qubesync.com/api-reference/v2/estimates/update-estimate
1050
+ def update(connection_id, params = {}, webhook_url:, idempotency_key: nil)
1051
+ queue("estimate.update", connection_id, params, webhook_url: webhook_url, idempotency_key: idempotency_key)
1052
+ end
1053
+ end
1054
+ end
1055
+ end