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