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