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