mt-sdk 0.0.1

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 (318) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +188 -0
  4. data/bin/console +15 -0
  5. data/lib/modern_treasury/api_helper.rb +10 -0
  6. data/lib/modern_treasury/client.rb +275 -0
  7. data/lib/modern_treasury/configuration.rb +206 -0
  8. data/lib/modern_treasury/controllers/account_collection_flow_controller.rb +130 -0
  9. data/lib/modern_treasury/controllers/account_detail_controller.rb +131 -0
  10. data/lib/modern_treasury/controllers/balance_report_controller.rb +76 -0
  11. data/lib/modern_treasury/controllers/base_controller.rb +60 -0
  12. data/lib/modern_treasury/controllers/connection_controller.rb +40 -0
  13. data/lib/modern_treasury/controllers/counterparty_controller.rb +188 -0
  14. data/lib/modern_treasury/controllers/document_controller.rb +285 -0
  15. data/lib/modern_treasury/controllers/event_controller.rb +72 -0
  16. data/lib/modern_treasury/controllers/expected_payment_controller.rb +162 -0
  17. data/lib/modern_treasury/controllers/external_account_controller.rb +202 -0
  18. data/lib/modern_treasury/controllers/incoming_payment_detail_controller.rb +150 -0
  19. data/lib/modern_treasury/controllers/internal_account_controller.rb +134 -0
  20. data/lib/modern_treasury/controllers/invoice_controller.rb +98 -0
  21. data/lib/modern_treasury/controllers/invoice_line_item_controller.rb +136 -0
  22. data/lib/modern_treasury/controllers/ledger_account_category_controller.rb +292 -0
  23. data/lib/modern_treasury/controllers/ledger_account_controller.rb +202 -0
  24. data/lib/modern_treasury/controllers/ledger_account_payout_controller.rb +126 -0
  25. data/lib/modern_treasury/controllers/ledger_account_statement_controller.rb +60 -0
  26. data/lib/modern_treasury/controllers/ledger_controller.rb +152 -0
  27. data/lib/modern_treasury/controllers/ledger_entry_controller.rb +148 -0
  28. data/lib/modern_treasury/controllers/ledger_event_handler_controller.rb +119 -0
  29. data/lib/modern_treasury/controllers/ledger_transaction_controller.rb +328 -0
  30. data/lib/modern_treasury/controllers/ledgerable_event_controller.rb +61 -0
  31. data/lib/modern_treasury/controllers/line_item_controller.rb +107 -0
  32. data/lib/modern_treasury/controllers/paper_item_controller.rb +69 -0
  33. data/lib/modern_treasury/controllers/payment_flow_controller.rb +138 -0
  34. data/lib/modern_treasury/controllers/payment_order_controller.rb +368 -0
  35. data/lib/modern_treasury/controllers/payment_reference_controller.rb +64 -0
  36. data/lib/modern_treasury/controllers/ping_controller.rb +34 -0
  37. data/lib/modern_treasury/controllers/return_controller.rb +105 -0
  38. data/lib/modern_treasury/controllers/reversal_controller.rb +99 -0
  39. data/lib/modern_treasury/controllers/routing_detail_controller.rb +131 -0
  40. data/lib/modern_treasury/controllers/transaction_controller.rb +133 -0
  41. data/lib/modern_treasury/controllers/transaction_line_item_controller.rb +39 -0
  42. data/lib/modern_treasury/controllers/validation_controller.rb +41 -0
  43. data/lib/modern_treasury/controllers/virtual_account_controller.rb +142 -0
  44. data/lib/modern_treasury/exceptions/api_exception.rb +21 -0
  45. data/lib/modern_treasury/exceptions/error_message_exception.rb +46 -0
  46. data/lib/modern_treasury/http/auth/basic_auth.rb +62 -0
  47. data/lib/modern_treasury/http/http_call_back.rb +10 -0
  48. data/lib/modern_treasury/http/http_method_enum.rb +10 -0
  49. data/lib/modern_treasury/http/http_request.rb +10 -0
  50. data/lib/modern_treasury/http/http_response.rb +10 -0
  51. data/lib/modern_treasury/http/proxy_settings.rb +22 -0
  52. data/lib/modern_treasury/models/account.rb +304 -0
  53. data/lib/modern_treasury/models/account1.rb +217 -0
  54. data/lib/modern_treasury/models/account_collection_flow.rb +178 -0
  55. data/lib/modern_treasury/models/account_collection_flow_create_request.rb +70 -0
  56. data/lib/modern_treasury/models/account_collection_flow_update_request.rb +61 -0
  57. data/lib/modern_treasury/models/account_detail.rb +211 -0
  58. data/lib/modern_treasury/models/account_detail1.rb +74 -0
  59. data/lib/modern_treasury/models/account_detail_create_request.rb +75 -0
  60. data/lib/modern_treasury/models/account_number_type2_enum.rb +48 -0
  61. data/lib/modern_treasury/models/account_number_type_enum.rb +49 -0
  62. data/lib/modern_treasury/models/account_type5_enum.rb +56 -0
  63. data/lib/modern_treasury/models/account_type_enum.rb +56 -0
  64. data/lib/modern_treasury/models/accounting.rb +88 -0
  65. data/lib/modern_treasury/models/accounting1.rb +63 -0
  66. data/lib/modern_treasury/models/accounts_type1_enum.rb +26 -0
  67. data/lib/modern_treasury/models/accounts_type_enum.rb +36 -0
  68. data/lib/modern_treasury/models/address.rb +231 -0
  69. data/lib/modern_treasury/models/address_request.rb +118 -0
  70. data/lib/modern_treasury/models/async_response.rb +68 -0
  71. data/lib/modern_treasury/models/balance.rb +164 -0
  72. data/lib/modern_treasury/models/balance_report.rb +178 -0
  73. data/lib/modern_treasury/models/balance_report_type1_enum.rb +44 -0
  74. data/lib/modern_treasury/models/balance_report_type_enum.rb +45 -0
  75. data/lib/modern_treasury/models/balance_type_enum.rb +63 -0
  76. data/lib/modern_treasury/models/balances.rb +71 -0
  77. data/lib/modern_treasury/models/balances1.rb +81 -0
  78. data/lib/modern_treasury/models/balances2.rb +120 -0
  79. data/lib/modern_treasury/models/balances3.rb +130 -0
  80. data/lib/modern_treasury/models/base_model.rb +110 -0
  81. data/lib/modern_treasury/models/charge_bearer_enum.rb +42 -0
  82. data/lib/modern_treasury/models/code1_enum.rb +200 -0
  83. data/lib/modern_treasury/models/code_enum.rb +68 -0
  84. data/lib/modern_treasury/models/connection.rb +209 -0
  85. data/lib/modern_treasury/models/contact_detail.rb +200 -0
  86. data/lib/modern_treasury/models/contact_detail_create_request.rb +75 -0
  87. data/lib/modern_treasury/models/contact_identifier_type_enum.rb +40 -0
  88. data/lib/modern_treasury/models/content_type_enum.rb +36 -0
  89. data/lib/modern_treasury/models/counterparty.rb +200 -0
  90. data/lib/modern_treasury/models/counterparty_billing_address.rb +106 -0
  91. data/lib/modern_treasury/models/counterparty_collect_account_request.rb +104 -0
  92. data/lib/modern_treasury/models/counterparty_collect_account_response.rb +82 -0
  93. data/lib/modern_treasury/models/counterparty_create_request.rb +161 -0
  94. data/lib/modern_treasury/models/counterparty_shipping_address.rb +107 -0
  95. data/lib/modern_treasury/models/counterparty_update_request.rb +107 -0
  96. data/lib/modern_treasury/models/created_at_enum.rb +36 -0
  97. data/lib/modern_treasury/models/currency1_enum.rb +37 -0
  98. data/lib/modern_treasury/models/currency_enum.rb +784 -0
  99. data/lib/modern_treasury/models/direction10_enum.rb +38 -0
  100. data/lib/modern_treasury/models/direction14_enum.rb +36 -0
  101. data/lib/modern_treasury/models/direction15_enum.rb +36 -0
  102. data/lib/modern_treasury/models/direction1_enum.rb +37 -0
  103. data/lib/modern_treasury/models/direction4_enum.rb +36 -0
  104. data/lib/modern_treasury/models/direction5_enum.rb +39 -0
  105. data/lib/modern_treasury/models/direction9_enum.rb +37 -0
  106. data/lib/modern_treasury/models/direction_enum.rb +38 -0
  107. data/lib/modern_treasury/models/document.rb +207 -0
  108. data/lib/modern_treasury/models/document_create_request.rb +92 -0
  109. data/lib/modern_treasury/models/document_detail.rb +154 -0
  110. data/lib/modern_treasury/models/documentable_type1_enum.rb +72 -0
  111. data/lib/modern_treasury/models/documentable_type2_enum.rb +72 -0
  112. data/lib/modern_treasury/models/documentable_type_enum.rb +75 -0
  113. data/lib/modern_treasury/models/effective_at_enum.rb +36 -0
  114. data/lib/modern_treasury/models/errors.rb +81 -0
  115. data/lib/modern_treasury/models/event.rb +162 -0
  116. data/lib/modern_treasury/models/expected_payment.rb +343 -0
  117. data/lib/modern_treasury/models/expected_payment_create_request.rb +254 -0
  118. data/lib/modern_treasury/models/expected_payment_update_request.rb +239 -0
  119. data/lib/modern_treasury/models/external_account.rb +283 -0
  120. data/lib/modern_treasury/models/external_account_complete_verification_request.rb +62 -0
  121. data/lib/modern_treasury/models/external_account_create_request.rb +230 -0
  122. data/lib/modern_treasury/models/external_account_update_request.rb +132 -0
  123. data/lib/modern_treasury/models/external_account_verify_request.rb +83 -0
  124. data/lib/modern_treasury/models/fallback_type_enum.rb +28 -0
  125. data/lib/modern_treasury/models/field_enum.rb +112 -0
  126. data/lib/modern_treasury/models/file.rb +81 -0
  127. data/lib/modern_treasury/models/foreign_exchange_indicator_enum.rb +38 -0
  128. data/lib/modern_treasury/models/incoming_payment_detail.rb +348 -0
  129. data/lib/modern_treasury/models/incoming_payment_detail_create_request.rb +141 -0
  130. data/lib/modern_treasury/models/incoming_payment_detail_update_request.rb +63 -0
  131. data/lib/modern_treasury/models/internal_account.rb +361 -0
  132. data/lib/modern_treasury/models/internal_account_create_request.rb +135 -0
  133. data/lib/modern_treasury/models/internal_account_update_request.rb +95 -0
  134. data/lib/modern_treasury/models/invoice.rb +342 -0
  135. data/lib/modern_treasury/models/invoice_create_request.rb +235 -0
  136. data/lib/modern_treasury/models/invoice_line_item.rb +171 -0
  137. data/lib/modern_treasury/models/invoice_line_item_create_request.rb +104 -0
  138. data/lib/modern_treasury/models/invoice_line_item_update_request.rb +240 -0
  139. data/lib/modern_treasury/models/invoice_update_request.rb +251 -0
  140. data/lib/modern_treasury/models/invoicer_address.rb +106 -0
  141. data/lib/modern_treasury/models/itemizable_type1_enum.rb +36 -0
  142. data/lib/modern_treasury/models/itemizable_type_enum.rb +36 -0
  143. data/lib/modern_treasury/models/ledger.rb +158 -0
  144. data/lib/modern_treasury/models/ledger_account.rb +220 -0
  145. data/lib/modern_treasury/models/ledger_account_category.rb +187 -0
  146. data/lib/modern_treasury/models/ledger_account_category_create_request.rb +125 -0
  147. data/lib/modern_treasury/models/ledger_account_category_update_request.rb +84 -0
  148. data/lib/modern_treasury/models/ledger_account_create_request.rb +150 -0
  149. data/lib/modern_treasury/models/ledger_account_normal_balance_enum.rb +36 -0
  150. data/lib/modern_treasury/models/ledger_account_payout.rb +238 -0
  151. data/lib/modern_treasury/models/ledger_account_payout_create_request.rb +152 -0
  152. data/lib/modern_treasury/models/ledger_account_payout_update_request.rb +85 -0
  153. data/lib/modern_treasury/models/ledger_account_statement.rb +233 -0
  154. data/lib/modern_treasury/models/ledger_account_statement_create_request.rb +122 -0
  155. data/lib/modern_treasury/models/ledger_account_update_request.rb +84 -0
  156. data/lib/modern_treasury/models/ledger_balance.rb +97 -0
  157. data/lib/modern_treasury/models/ledger_balances.rb +81 -0
  158. data/lib/modern_treasury/models/ledger_balances_with_effective_at.rb +123 -0
  159. data/lib/modern_treasury/models/ledger_create_request.rb +83 -0
  160. data/lib/modern_treasury/models/ledger_entry.rb +247 -0
  161. data/lib/modern_treasury/models/ledger_entry_create_request.rb +177 -0
  162. data/lib/modern_treasury/models/ledger_entry_of_transaction_version.rb +214 -0
  163. data/lib/modern_treasury/models/ledger_event_handler.rb +182 -0
  164. data/lib/modern_treasury/models/ledger_event_handler_conditions.rb +78 -0
  165. data/lib/modern_treasury/models/ledger_event_handler_create_request.rb +119 -0
  166. data/lib/modern_treasury/models/ledger_event_handler_ledger_entries.rb +80 -0
  167. data/lib/modern_treasury/models/ledger_event_handler_ledger_transaction_template.rb +103 -0
  168. data/lib/modern_treasury/models/ledger_transaction.rb +259 -0
  169. data/lib/modern_treasury/models/ledger_transaction_create_request.rb +164 -0
  170. data/lib/modern_treasury/models/ledger_transaction_reversal_create_request.rb +142 -0
  171. data/lib/modern_treasury/models/ledger_transaction_update_request.rb +115 -0
  172. data/lib/modern_treasury/models/ledger_transaction_version.rb +254 -0
  173. data/lib/modern_treasury/models/ledger_type_enum.rb +37 -0
  174. data/lib/modern_treasury/models/ledger_update_request.rb +84 -0
  175. data/lib/modern_treasury/models/ledgerable_event.rb +206 -0
  176. data/lib/modern_treasury/models/ledgerable_event_create_request.rb +140 -0
  177. data/lib/modern_treasury/models/ledgerable_type2_enum.rb +71 -0
  178. data/lib/modern_treasury/models/ledgerable_type5_enum.rb +69 -0
  179. data/lib/modern_treasury/models/ledgerable_type6_enum.rb +68 -0
  180. data/lib/modern_treasury/models/ledgerable_type_enum.rb +38 -0
  181. data/lib/modern_treasury/models/legacy_document_create_request.rb +70 -0
  182. data/lib/modern_treasury/models/line_item.rb +200 -0
  183. data/lib/modern_treasury/models/line_item_request.rb +98 -0
  184. data/lib/modern_treasury/models/line_item_update_request.rb +63 -0
  185. data/lib/modern_treasury/models/mreturn.rb +425 -0
  186. data/lib/modern_treasury/models/normal_balance2_enum.rb +36 -0
  187. data/lib/modern_treasury/models/normal_balance_enum.rb +36 -0
  188. data/lib/modern_treasury/models/order_by.rb +72 -0
  189. data/lib/modern_treasury/models/originating_account_number_type_enum.rb +48 -0
  190. data/lib/modern_treasury/models/originating_routing_number_type_enum.rb +68 -0
  191. data/lib/modern_treasury/models/paper_item.rb +249 -0
  192. data/lib/modern_treasury/models/party_address.rb +106 -0
  193. data/lib/modern_treasury/models/party_type5_enum.rb +36 -0
  194. data/lib/modern_treasury/models/party_type_enum.rb +36 -0
  195. data/lib/modern_treasury/models/payment_direction_enum.rb +36 -0
  196. data/lib/modern_treasury/models/payment_flow.rb +230 -0
  197. data/lib/modern_treasury/models/payment_flow_create_request.rb +103 -0
  198. data/lib/modern_treasury/models/payment_flow_update_request.rb +61 -0
  199. data/lib/modern_treasury/models/payment_method1_enum.rb +46 -0
  200. data/lib/modern_treasury/models/payment_method_enum.rb +42 -0
  201. data/lib/modern_treasury/models/payment_order.rb +820 -0
  202. data/lib/modern_treasury/models/payment_order_async_create_request.rb +536 -0
  203. data/lib/modern_treasury/models/payment_order_create_request.rb +556 -0
  204. data/lib/modern_treasury/models/payment_order_update_request.rb +543 -0
  205. data/lib/modern_treasury/models/payment_reference.rb +175 -0
  206. data/lib/modern_treasury/models/payment_reference_object.rb +156 -0
  207. data/lib/modern_treasury/models/payment_type13_enum.rb +96 -0
  208. data/lib/modern_treasury/models/payment_type1_enum.rb +97 -0
  209. data/lib/modern_treasury/models/payment_type2_enum.rb +96 -0
  210. data/lib/modern_treasury/models/payment_type4_enum.rb +96 -0
  211. data/lib/modern_treasury/models/payment_type5_enum.rb +36 -0
  212. data/lib/modern_treasury/models/payment_type6_enum.rb +97 -0
  213. data/lib/modern_treasury/models/payment_type_enum.rb +37 -0
  214. data/lib/modern_treasury/models/ping_response.rb +60 -0
  215. data/lib/modern_treasury/models/priority4_enum.rb +36 -0
  216. data/lib/modern_treasury/models/priority_enum.rb +38 -0
  217. data/lib/modern_treasury/models/reason1_enum.rb +50 -0
  218. data/lib/modern_treasury/models/reason_enum.rb +48 -0
  219. data/lib/modern_treasury/models/receiving_account.rb +304 -0
  220. data/lib/modern_treasury/models/receiving_account1.rb +219 -0
  221. data/lib/modern_treasury/models/receiving_account_type_enum.rb +36 -0
  222. data/lib/modern_treasury/models/reconciliation_method_enum.rb +38 -0
  223. data/lib/modern_treasury/models/reference_number_type1_enum.rb +248 -0
  224. data/lib/modern_treasury/models/reference_number_type_enum.rb +248 -0
  225. data/lib/modern_treasury/models/referenceable_type1_enum.rb +40 -0
  226. data/lib/modern_treasury/models/referenceable_type_enum.rb +41 -0
  227. data/lib/modern_treasury/models/return_create_request.rb +119 -0
  228. data/lib/modern_treasury/models/returnable_type1_enum.rb +48 -0
  229. data/lib/modern_treasury/models/returnable_type_enum.rb +48 -0
  230. data/lib/modern_treasury/models/reversal.rb +151 -0
  231. data/lib/modern_treasury/models/reversal_create_request.rb +86 -0
  232. data/lib/modern_treasury/models/role_enum.rb +36 -0
  233. data/lib/modern_treasury/models/routing_detail.rb +242 -0
  234. data/lib/modern_treasury/models/routing_detail1.rb +83 -0
  235. data/lib/modern_treasury/models/routing_detail_create_request.rb +87 -0
  236. data/lib/modern_treasury/models/routing_number_lookup_request.rb +124 -0
  237. data/lib/modern_treasury/models/routing_number_type1_enum.rb +68 -0
  238. data/lib/modern_treasury/models/routing_number_type7_enum.rb +55 -0
  239. data/lib/modern_treasury/models/routing_number_type8_enum.rb +68 -0
  240. data/lib/modern_treasury/models/routing_number_type_enum.rb +69 -0
  241. data/lib/modern_treasury/models/status11_enum.rb +40 -0
  242. data/lib/modern_treasury/models/status12_enum.rb +40 -0
  243. data/lib/modern_treasury/models/status15_enum.rb +41 -0
  244. data/lib/modern_treasury/models/status16_enum.rb +41 -0
  245. data/lib/modern_treasury/models/status17_enum.rb +45 -0
  246. data/lib/modern_treasury/models/status18_enum.rb +74 -0
  247. data/lib/modern_treasury/models/status19_enum.rb +52 -0
  248. data/lib/modern_treasury/models/status1_enum.rb +40 -0
  249. data/lib/modern_treasury/models/status20_enum.rb +40 -0
  250. data/lib/modern_treasury/models/status21_enum.rb +40 -0
  251. data/lib/modern_treasury/models/status22_enum.rb +40 -0
  252. data/lib/modern_treasury/models/status24_enum.rb +72 -0
  253. data/lib/modern_treasury/models/status2_enum.rb +41 -0
  254. data/lib/modern_treasury/models/status3_enum.rb +72 -0
  255. data/lib/modern_treasury/models/status4_enum.rb +52 -0
  256. data/lib/modern_treasury/models/status5_enum.rb +48 -0
  257. data/lib/modern_treasury/models/status6_enum.rb +49 -0
  258. data/lib/modern_treasury/models/status7_enum.rb +37 -0
  259. data/lib/modern_treasury/models/status8_enum.rb +37 -0
  260. data/lib/modern_treasury/models/status9_enum.rb +41 -0
  261. data/lib/modern_treasury/models/status_enum.rb +45 -0
  262. data/lib/modern_treasury/models/subtype_enum.rb +71 -0
  263. data/lib/modern_treasury/models/supported_payment_type_enum.rb +96 -0
  264. data/lib/modern_treasury/models/transactable_type_enum.rb +53 -0
  265. data/lib/modern_treasury/models/transaction.rb +311 -0
  266. data/lib/modern_treasury/models/transaction_line_item.rb +211 -0
  267. data/lib/modern_treasury/models/type10_enum.rb +64 -0
  268. data/lib/modern_treasury/models/type11_enum.rb +97 -0
  269. data/lib/modern_treasury/models/type12_enum.rb +37 -0
  270. data/lib/modern_treasury/models/type13_enum.rb +96 -0
  271. data/lib/modern_treasury/models/type14_enum.rb +64 -0
  272. data/lib/modern_treasury/models/type16_enum.rb +36 -0
  273. data/lib/modern_treasury/models/type1_enum.rb +97 -0
  274. data/lib/modern_treasury/models/type4_enum.rb +65 -0
  275. data/lib/modern_treasury/models/type5_enum.rb +97 -0
  276. data/lib/modern_treasury/models/type6_enum.rb +77 -0
  277. data/lib/modern_treasury/models/type_enum.rb +37 -0
  278. data/lib/modern_treasury/models/vendor_code_type1_enum.rb +111 -0
  279. data/lib/modern_treasury/models/vendor_code_type_enum.rb +108 -0
  280. data/lib/modern_treasury/models/verification_status1_enum.rb +44 -0
  281. data/lib/modern_treasury/models/verification_status_enum.rb +40 -0
  282. data/lib/modern_treasury/models/virtual_account.rb +247 -0
  283. data/lib/modern_treasury/models/virtual_account_create_request.rb +172 -0
  284. data/lib/modern_treasury/models/virtual_account_update_request.rb +85 -0
  285. data/lib/modern_treasury/utilities/date_time_helper.rb +11 -0
  286. data/lib/modern_treasury/utilities/file_wrapper.rb +28 -0
  287. data/lib/modern_treasury/utilities/union_type_lookup.rb +32 -0
  288. data/lib/modern_treasury.rb +316 -0
  289. data/test/controllers/controller_test_base.rb +23 -0
  290. data/test/controllers/test_account_collection_flow_controller.rb +64 -0
  291. data/test/controllers/test_connection_controller.rb +41 -0
  292. data/test/controllers/test_counterparty_controller.rb +65 -0
  293. data/test/controllers/test_document_controller.rb +41 -0
  294. data/test/controllers/test_event_controller.rb +46 -0
  295. data/test/controllers/test_expected_payment_controller.rb +71 -0
  296. data/test/controllers/test_external_account_controller.rb +63 -0
  297. data/test/controllers/test_incoming_payment_detail_controller.rb +68 -0
  298. data/test/controllers/test_internal_account_controller.rb +65 -0
  299. data/test/controllers/test_invoice_controller.rb +56 -0
  300. data/test/controllers/test_ledger_account_category_controller.rb +67 -0
  301. data/test/controllers/test_ledger_account_controller.rb +70 -0
  302. data/test/controllers/test_ledger_account_payout_controller.rb +62 -0
  303. data/test/controllers/test_ledger_account_statement_controller.rb +36 -0
  304. data/test/controllers/test_ledger_controller.rb +59 -0
  305. data/test/controllers/test_ledger_entry_controller.rb +65 -0
  306. data/test/controllers/test_ledger_event_handler_controller.rb +63 -0
  307. data/test/controllers/test_ledger_transaction_controller.rb +112 -0
  308. data/test/controllers/test_ledgerable_event_controller.rb +36 -0
  309. data/test/controllers/test_paper_item_controller.rb +43 -0
  310. data/test/controllers/test_payment_flow_controller.rb +67 -0
  311. data/test/controllers/test_payment_order_controller.rb +76 -0
  312. data/test/controllers/test_payment_reference_controller.rb +43 -0
  313. data/test/controllers/test_ping_controller.rb +31 -0
  314. data/test/controllers/test_return_controller.rb +64 -0
  315. data/test/controllers/test_transaction_controller.rb +56 -0
  316. data/test/controllers/test_virtual_account_controller.rb +63 -0
  317. data/test/http_response_catcher.rb +19 -0
  318. metadata +429 -0
@@ -0,0 +1,368 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # PaymentOrderController
8
+ class PaymentOrderController < BaseController
9
+ # Create a new payment order asynchronously
10
+ # @param [String] idempotency_key Optional parameter: This key should be
11
+ # something unique, preferably something like an UUID.
12
+ # @param [PaymentOrderAsyncCreateRequest] body Optional parameter: TODO:
13
+ # type description here
14
+ # @return [AsyncResponse] Response from the API call.
15
+ def create_async_payment_order(idempotency_key: nil,
16
+ body: nil)
17
+ @api_call
18
+ .request(new_request_builder(HttpMethodEnum::POST,
19
+ '/api/payment_orders/create_async',
20
+ Server::DEFAULT)
21
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
22
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
23
+ .body_param(new_parameter(body))
24
+ .header_param(new_parameter('application/json', key: 'accept'))
25
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
26
+ .auth(Single.new('basic_auth')))
27
+ .response(new_response_handler
28
+ .deserializer(APIHelper.method(:custom_type_deserializer))
29
+ .deserialize_into(AsyncResponse.method(:from_hash))
30
+ .local_error('403',
31
+ 'forbidden',
32
+ ErrorMessageException))
33
+ .execute
34
+ end
35
+
36
+ # Get a list of all payment orders
37
+ # @param [Integer] per_page Optional parameter: TODO: type description
38
+ # here
39
+ # @param [Type13Enum] type Optional parameter: Example:
40
+ # @param [Priority4Enum] priority Optional parameter: Either `normal` or
41
+ # `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT
42
+ # transfer, respectively. For check payments, `high` can mean an overnight
43
+ # check rather than standard mail.
44
+ # @param [UUID | String] counterparty_id Optional parameter: TODO: type
45
+ # description here
46
+ # @param [UUID | String] originating_account_id Optional parameter: TODO:
47
+ # type description here
48
+ # @param [UUID | String] transaction_id Optional parameter: The ID of a
49
+ # transaction that the payment order has been reconciled to.
50
+ # @param [Status24Enum] status Optional parameter: Example:
51
+ # @param [Direction15Enum] direction Optional parameter: Example:
52
+ # @param [String] reference_number Optional parameter: Query for records
53
+ # with the provided reference number
54
+ # @param [Date] effective_date_start Optional parameter: An inclusive lower
55
+ # bound for searching effective_date
56
+ # @param [Date] effective_date_end Optional parameter: An inclusive upper
57
+ # bound for searching effective_date
58
+ # @param [Hash[String, String]] metadata Optional parameter: For example, if
59
+ # you want to query for records with metadata key `Type` and value `Loan`,
60
+ # the query would be `metadata%5BType%5D=Loan`. This encodes the query
61
+ # parameters.
62
+ # @param [String] after_cursor Optional parameter: TODO: type description
63
+ # here
64
+ # @return [Array[PaymentOrder]] Response from the API call.
65
+ def list_payment_orders(per_page: nil,
66
+ type: nil,
67
+ priority: nil,
68
+ counterparty_id: nil,
69
+ originating_account_id: nil,
70
+ transaction_id: nil,
71
+ status: nil,
72
+ direction: nil,
73
+ reference_number: nil,
74
+ effective_date_start: nil,
75
+ effective_date_end: nil,
76
+ metadata: nil,
77
+ after_cursor: nil)
78
+ @api_call
79
+ .request(new_request_builder(HttpMethodEnum::GET,
80
+ '/api/payment_orders',
81
+ Server::DEFAULT)
82
+ .query_param(new_parameter(per_page, key: 'per_page'))
83
+ .query_param(new_parameter(type, key: 'type'))
84
+ .query_param(new_parameter(priority, key: 'priority'))
85
+ .query_param(new_parameter(counterparty_id, key: 'counterparty_id'))
86
+ .query_param(new_parameter(originating_account_id, key: 'originating_account_id'))
87
+ .query_param(new_parameter(transaction_id, key: 'transaction_id'))
88
+ .query_param(new_parameter(status, key: 'status'))
89
+ .query_param(new_parameter(direction, key: 'direction'))
90
+ .query_param(new_parameter(reference_number, key: 'reference_number'))
91
+ .query_param(new_parameter(effective_date_start, key: 'effective_date_start'))
92
+ .query_param(new_parameter(effective_date_end, key: 'effective_date_end'))
93
+ .query_param(new_parameter(metadata, key: 'metadata'))
94
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
95
+ .header_param(new_parameter('application/json', key: 'accept'))
96
+ .auth(Single.new('basic_auth')))
97
+ .response(new_response_handler
98
+ .deserializer(APIHelper.method(:custom_type_deserializer))
99
+ .deserialize_into(PaymentOrder.method(:from_hash))
100
+ .is_response_array(true))
101
+ .execute
102
+ end
103
+
104
+ # Create a new Payment Order
105
+ # @param [Type5Enum] type Required parameter: One of `ach`, `eft`, `wire`,
106
+ # `check`, `sen`, `book`, `rtp`, `sepa`, `bacs`, `au_becs`, `interac`,
107
+ # `signet`, `provexchange`.
108
+ # @param [Integer] amount Required parameter: Value in specified currency's
109
+ # smallest unit. e.g. $10 would be represented as 1000 (cents). For RTP, the
110
+ # maximum amount allowed by the network is $100,000.
111
+ # @param [Direction5Enum] direction Required parameter: One of `credit`,
112
+ # `debit`. Describes the direction money is flowing in the transaction. A
113
+ # `credit` moves money from your account to someone else's. A `debit` pulls
114
+ # money from someone else's account to your own. Note that wire, rtp, and
115
+ # check payments will always be `credit`.
116
+ # @param [UUID | String] originating_account_id Required parameter: The ID
117
+ # of one of your organization's internal accounts.
118
+ # @param [ContentTypeEnum] content_type Optional parameter: Example:
119
+ # @param [String] idempotency_key Optional parameter: This key should be
120
+ # something unique, preferably something like an UUID.
121
+ # @param [SubtypeEnum] subtype Optional parameter: An additional layer of
122
+ # classification for the type of payment order you are doing. This field is
123
+ # only used for `ach` payment orders currently. For `ach` payment orders,
124
+ # the `subtype` represents the SEC code. We currently support `CCD`, `PPD`,
125
+ # `IAT`, `CTX`, `WEB`, `CIE`, and `TEL`.
126
+ # @param [PriorityEnum] priority Optional parameter: Either `normal` or
127
+ # `high`. For ACH and EFT payments, `high` represents a same-day ACH or EFT
128
+ # transfer, respectively. For check payments, `high` can mean an overnight
129
+ # check rather than standard mail.
130
+ # @param [UUID | String] receiving_account_id Optional parameter: Either
131
+ # `receiving_account` or `receiving_account_id` must be present. When using
132
+ # `receiving_account_id`, you may pass the id of an external account or an
133
+ # internal account.
134
+ # @param [Accounting] accounting Optional parameter: TODO: type description
135
+ # here
136
+ # @param [UUID | String] accounting_category_id Optional parameter: The ID
137
+ # of one of your accounting categories. Note that these will only be
138
+ # accessible if your accounting system has been connected.
139
+ # @param [UUID | String] accounting_ledger_class_id Optional parameter: The
140
+ # ID of one of your accounting ledger classes. Note that these will only be
141
+ # accessible if your accounting system has been connected.
142
+ # @param [CurrencyEnum] currency Optional parameter: Three-letter ISO
143
+ # currency code.
144
+ # @param [Date] effective_date Optional parameter: Date transactions are to
145
+ # be posted to the participants' account. Defaults to the current business
146
+ # day or the next business day if the current day is a bank holiday or
147
+ # weekend. Format: yyyy-mm-dd.
148
+ # @param [String] description Optional parameter: An optional description
149
+ # for internal use.
150
+ # @param [String] statement_descriptor Optional parameter: An optional
151
+ # descriptor which will appear in the receiver's statement. For `check`
152
+ # payments this field will be used as the memo line. For `ach` the maximum
153
+ # length is 10 characters. Note that for ACH payments, the name on your bank
154
+ # account will be included automatically by the bank, so you can use the
155
+ # characters for other useful information. For `eft` the maximum length is
156
+ # 15 characters.
157
+ # @param [String] remittance_information Optional parameter: For `ach`, this
158
+ # field will be passed through on an addenda record. For `wire` payments the
159
+ # field will be passed through as the "Originator to Beneficiary
160
+ # Information", also known as OBI or Fedwire tag 6000.
161
+ # @param [String] purpose Optional parameter: For `wire`, this is usually
162
+ # the purpose which is transmitted via the "InstrForDbtrAgt" field in the
163
+ # ISO20022 file. If you are using Currencycloud, this is the
164
+ # `payment.purpose_code` field. For `eft`, this field is the 3 digit CPA
165
+ # Code that will be attached to the payment.
166
+ # @param [Hash[String, String]] metadata Optional parameter: Additional data
167
+ # represented as key-value pairs. Both the key and value must be strings.
168
+ # @param [ChargeBearerEnum] charge_bearer Optional parameter: The party that
169
+ # will pay the fees for the payment order. Only applies to wire payment
170
+ # orders. Can be one of shared, sender, or receiver, which correspond
171
+ # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
172
+ # @param [ForeignExchangeIndicatorEnum] foreign_exchange_indicator Optional
173
+ # parameter: Indicates the type of FX transfer to initiate, can be either
174
+ # `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order
175
+ # currency matches the originating account currency.
176
+ # @param [String] foreign_exchange_contract Optional parameter: If present,
177
+ # indicates a specific foreign exchange contract number that has been
178
+ # generated by your financial institution.
179
+ # @param [TrueClass | FalseClass] nsf_protected Optional parameter: A
180
+ # boolean to determine if NSF Protection is enabled for this payment order.
181
+ # Note that this setting must also be turned on in your organization
182
+ # settings page.
183
+ # @param [String] originating_party_name Optional parameter: If present,
184
+ # this will replace your default company name on receiver's bank statement.
185
+ # This field can only be used for ACH payments currently. For ACH, only the
186
+ # first 16 characters of this string will be used. Any additional characters
187
+ # will be truncated.
188
+ # @param [String] ultimate_originating_party_name Optional parameter: Name
189
+ # of the ultimate originator of the payment order.
190
+ # @param [String] ultimate_originating_party_identifier Optional parameter:
191
+ # Identifier of the ultimate originator of the payment order.
192
+ # @param [String] ultimate_receiving_party_name Optional parameter: Name of
193
+ # the ultimate funds recipient.
194
+ # @param [String] ultimate_receiving_party_identifier Optional parameter:
195
+ # Identifier of the ultimate funds recipient.
196
+ # @param [TrueClass | FalseClass] send_remittance_advice Optional parameter:
197
+ # Send an email to the counterparty when the payment order is sent to the
198
+ # bank. If `null`, `send_remittance_advice` on the Counterparty is used.
199
+ # @param [DateTime] expires_at Optional parameter: RFP payments require an
200
+ # expires_at. This value must be past the effective_date.
201
+ # @param [FallbackTypeEnum] fallback_type Optional parameter: A payment type
202
+ # to fallback to if the original type is not valid for the receiving
203
+ # account. Currently, this only supports falling back from RTP to ACH
204
+ # (type=rtp and fallback_type=ach)
205
+ # @param [ReceivingAccount1] receiving_account Optional parameter: Either
206
+ # `receiving_account` or `receiving_account_id` must be present. When using
207
+ # `receiving_account_id`, you may pass the id of an external account or an
208
+ # internal account.
209
+ # @param [LedgerTransactionCreateRequest] ledger_transaction Optional
210
+ # parameter: TODO: type description here
211
+ # @param [Array[LineItemRequest]] line_items Optional parameter: An array of
212
+ # line items that must sum up to the amount of the payment order.
213
+ # @param [TrueClass | FalseClass] transaction_monitoring_enabled Optional
214
+ # parameter: A flag that determines whether a payment order should go
215
+ # through transaction monitoring.
216
+ # @param [Array[DocumentCreateRequest]] documents Optional parameter: An
217
+ # array of documents to be attached to the payment order. Note that if you
218
+ # attach documents, the request's content type must be
219
+ # `multipart/form-data`.
220
+ # @return [PaymentOrder] Response from the API call.
221
+ def create_payment_order(type,
222
+ amount,
223
+ direction,
224
+ originating_account_id,
225
+ content_type: nil,
226
+ idempotency_key: nil,
227
+ subtype: nil,
228
+ priority: nil,
229
+ receiving_account_id: nil,
230
+ accounting: nil,
231
+ accounting_category_id: nil,
232
+ accounting_ledger_class_id: nil,
233
+ currency: nil,
234
+ effective_date: nil,
235
+ description: nil,
236
+ statement_descriptor: nil,
237
+ remittance_information: nil,
238
+ purpose: nil,
239
+ metadata: nil,
240
+ charge_bearer: nil,
241
+ foreign_exchange_indicator: nil,
242
+ foreign_exchange_contract: nil,
243
+ nsf_protected: nil,
244
+ originating_party_name: nil,
245
+ ultimate_originating_party_name: nil,
246
+ ultimate_originating_party_identifier: nil,
247
+ ultimate_receiving_party_name: nil,
248
+ ultimate_receiving_party_identifier: nil,
249
+ send_remittance_advice: nil,
250
+ expires_at: nil,
251
+ fallback_type: nil,
252
+ receiving_account: nil,
253
+ ledger_transaction: nil,
254
+ line_items: nil,
255
+ transaction_monitoring_enabled: nil,
256
+ documents: nil)
257
+ @api_call
258
+ .request(new_request_builder(HttpMethodEnum::POST,
259
+ '/api/payment_orders',
260
+ Server::DEFAULT)
261
+ .form_param(new_parameter(type, key: 'type'))
262
+ .form_param(new_parameter(amount, key: 'amount'))
263
+ .form_param(new_parameter(direction, key: 'direction'))
264
+ .form_param(new_parameter(originating_account_id, key: 'originating_account_id'))
265
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
266
+ .form_param(new_parameter(subtype, key: 'subtype'))
267
+ .form_param(new_parameter(priority, key: 'priority'))
268
+ .form_param(new_parameter(receiving_account_id, key: 'receiving_account_id'))
269
+ .form_param(new_parameter(accounting, key: 'accounting'))
270
+ .form_param(new_parameter(accounting_category_id, key: 'accounting_category_id'))
271
+ .form_param(new_parameter(accounting_ledger_class_id, key: 'accounting_ledger_class_id'))
272
+ .form_param(new_parameter(currency, key: 'currency'))
273
+ .form_param(new_parameter(effective_date, key: 'effective_date'))
274
+ .form_param(new_parameter(description, key: 'description'))
275
+ .form_param(new_parameter(statement_descriptor, key: 'statement_descriptor'))
276
+ .form_param(new_parameter(remittance_information, key: 'remittance_information'))
277
+ .form_param(new_parameter(purpose, key: 'purpose'))
278
+ .form_param(new_parameter(metadata, key: 'metadata'))
279
+ .form_param(new_parameter(charge_bearer, key: 'charge_bearer'))
280
+ .form_param(new_parameter(foreign_exchange_indicator, key: 'foreign_exchange_indicator'))
281
+ .form_param(new_parameter(foreign_exchange_contract, key: 'foreign_exchange_contract'))
282
+ .form_param(new_parameter(nsf_protected, key: 'nsf_protected'))
283
+ .form_param(new_parameter(originating_party_name, key: 'originating_party_name'))
284
+ .form_param(new_parameter(ultimate_originating_party_name, key: 'ultimate_originating_party_name'))
285
+ .form_param(new_parameter(ultimate_originating_party_identifier, key: 'ultimate_originating_party_identifier'))
286
+ .form_param(new_parameter(ultimate_receiving_party_name, key: 'ultimate_receiving_party_name'))
287
+ .form_param(new_parameter(ultimate_receiving_party_identifier, key: 'ultimate_receiving_party_identifier'))
288
+ .form_param(new_parameter(send_remittance_advice, key: 'send_remittance_advice'))
289
+ .form_param(new_parameter(expires_at, key: 'expires_at'))
290
+ .form_param(new_parameter(fallback_type, key: 'fallback_type'))
291
+ .form_param(new_parameter(receiving_account, key: 'receiving_account'))
292
+ .form_param(new_parameter(ledger_transaction, key: 'ledger_transaction'))
293
+ .form_param(new_parameter(line_items, key: 'line_items'))
294
+ .form_param(new_parameter(transaction_monitoring_enabled, key: 'transaction_monitoring_enabled'))
295
+ .form_param(new_parameter(documents, key: 'documents'))
296
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
297
+ .header_param(new_parameter('application/json', key: 'accept'))
298
+ .auth(Single.new('basic_auth')))
299
+ .response(new_response_handler
300
+ .deserializer(APIHelper.method(:custom_type_deserializer))
301
+ .deserialize_into(PaymentOrder.method(:from_hash))
302
+ .local_error('400',
303
+ 'parameter_invalid',
304
+ ErrorMessageException)
305
+ .local_error('401',
306
+ 'unsuccessful',
307
+ ErrorMessageException)
308
+ .local_error('403',
309
+ 'forbidden',
310
+ ErrorMessageException)
311
+ .local_error('422',
312
+ 'unsuccessful',
313
+ ErrorMessageException))
314
+ .execute
315
+ end
316
+
317
+ # Get details on a single payment order
318
+ # @param [String] id Required parameter: TODO: type description here
319
+ # @return [PaymentOrder] Response from the API call.
320
+ def get_payment_order(id)
321
+ @api_call
322
+ .request(new_request_builder(HttpMethodEnum::GET,
323
+ '/api/payment_orders/{id}',
324
+ Server::DEFAULT)
325
+ .template_param(new_parameter(id, key: 'id')
326
+ .should_encode(true))
327
+ .header_param(new_parameter('application/json', key: 'accept'))
328
+ .auth(Single.new('basic_auth')))
329
+ .response(new_response_handler
330
+ .deserializer(APIHelper.method(:custom_type_deserializer))
331
+ .deserialize_into(PaymentOrder.method(:from_hash))
332
+ .local_error('404',
333
+ 'not found',
334
+ ErrorMessageException))
335
+ .execute
336
+ end
337
+
338
+ # Update a payment order
339
+ # @param [String] id Required parameter: TODO: type description here
340
+ # @param [PaymentOrderUpdateRequest] body Optional parameter: TODO: type
341
+ # description here
342
+ # @return [PaymentOrder] Response from the API call.
343
+ def update_payment_order(id,
344
+ body: nil)
345
+ @api_call
346
+ .request(new_request_builder(HttpMethodEnum::PATCH,
347
+ '/api/payment_orders/{id}',
348
+ Server::DEFAULT)
349
+ .template_param(new_parameter(id, key: 'id')
350
+ .should_encode(true))
351
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
352
+ .body_param(new_parameter(body))
353
+ .header_param(new_parameter('application/json', key: 'accept'))
354
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
355
+ .auth(Single.new('basic_auth')))
356
+ .response(new_response_handler
357
+ .deserializer(APIHelper.method(:custom_type_deserializer))
358
+ .deserialize_into(PaymentOrder.method(:from_hash))
359
+ .local_error('404',
360
+ 'not found',
361
+ ErrorMessageException)
362
+ .local_error('422',
363
+ 'parameter_invalid',
364
+ ErrorMessageException))
365
+ .execute
366
+ end
367
+ end
368
+ end
@@ -0,0 +1,64 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # PaymentReferenceController
8
+ class PaymentReferenceController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @param [Integer] per_page Optional parameter: TODO: type description
11
+ # here
12
+ # @param [String] referenceable_id Optional parameter: The id of the
13
+ # referenceable to search for. Must be accompanied by the referenceable_type
14
+ # or will return an error.
15
+ # @param [ReferenceableType1Enum] referenceable_type Optional parameter: One
16
+ # of the referenceable types. This must be accompanied by the id of the
17
+ # referenceable or will return an error.
18
+ # @param [String] reference_number Optional parameter: The actual reference
19
+ # number assigned by the bank.
20
+ # @param [String] after_cursor Optional parameter: TODO: type description
21
+ # here
22
+ # @return [Array[PaymentReferenceObject]] Response from the API call.
23
+ def list_payment_references(per_page: nil,
24
+ referenceable_id: nil,
25
+ referenceable_type: nil,
26
+ reference_number: nil,
27
+ after_cursor: nil)
28
+ @api_call
29
+ .request(new_request_builder(HttpMethodEnum::GET,
30
+ '/api/payment_references',
31
+ Server::DEFAULT)
32
+ .query_param(new_parameter(per_page, key: 'per_page'))
33
+ .query_param(new_parameter(referenceable_id, key: 'referenceable_id'))
34
+ .query_param(new_parameter(referenceable_type, key: 'referenceable_type'))
35
+ .query_param(new_parameter(reference_number, key: 'reference_number'))
36
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
37
+ .header_param(new_parameter('application/json', key: 'accept'))
38
+ .auth(Single.new('basic_auth')))
39
+ .response(new_response_handler
40
+ .deserializer(APIHelper.method(:custom_type_deserializer))
41
+ .deserialize_into(PaymentReferenceObject.method(:from_hash))
42
+ .is_response_array(true))
43
+ .execute
44
+ end
45
+
46
+ # TODO: type endpoint description here
47
+ # @param [String] id Required parameter: id
48
+ # @return [PaymentReferenceObject] Response from the API call.
49
+ def get_payment_reference(id)
50
+ @api_call
51
+ .request(new_request_builder(HttpMethodEnum::GET,
52
+ '/api/payment_references/{id}',
53
+ Server::DEFAULT)
54
+ .template_param(new_parameter(id, key: 'id')
55
+ .should_encode(true))
56
+ .header_param(new_parameter('application/json', key: 'accept'))
57
+ .auth(Single.new('basic_auth')))
58
+ .response(new_response_handler
59
+ .deserializer(APIHelper.method(:custom_type_deserializer))
60
+ .deserialize_into(PaymentReferenceObject.method(:from_hash)))
61
+ .execute
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,34 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # PingController
8
+ class PingController < BaseController
9
+ # A test endpoint often used to confirm credentials and headers are being
10
+ # passed in correctly.
11
+ # @return [PingResponse] Response from the API call.
12
+ def ping_api
13
+ @api_call
14
+ .request(new_request_builder(HttpMethodEnum::GET,
15
+ '/api/ping',
16
+ Server::DEFAULT)
17
+ .header_param(new_parameter('application/json', key: 'accept'))
18
+ .auth(Single.new('basic_auth')))
19
+ .response(new_response_handler
20
+ .deserializer(APIHelper.method(:custom_type_deserializer))
21
+ .deserialize_into(PingResponse.method(:from_hash))
22
+ .local_error('401',
23
+ 'unsuccessful',
24
+ ErrorMessageException)
25
+ .local_error('429',
26
+ 'unsuccessful',
27
+ APIException)
28
+ .local_error('500',
29
+ 'internal server error',
30
+ APIException))
31
+ .execute
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,105 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # ReturnController
8
+ class ReturnController < BaseController
9
+ # Get a list of returns.
10
+ # @param [Integer] per_page Optional parameter: TODO: type description
11
+ # here
12
+ # @param [String] internal_account_id Optional parameter: Specify
13
+ # `internal_account_id` if you wish to see returns to/from a specific
14
+ # account.
15
+ # @param [String] counterparty_id Optional parameter: Specify
16
+ # `counterparty_id` if you wish to see returns that occurred with a specific
17
+ # counterparty.
18
+ # @param [String] returnable_id Optional parameter: The ID of a valid
19
+ # returnable. Must be accompanied by `returnable_type`.
20
+ # @param [ReturnableType1Enum] returnable_type Optional parameter: One of
21
+ # `payment_order`, `paper_item`, `reversal`, or `incoming_payment_detail`.
22
+ # Must be accompanied by `returnable_id`.
23
+ # @param [String] after_cursor Optional parameter: TODO: type description
24
+ # here
25
+ # @return [Array[Return]] Response from the API call.
26
+ def list_returns(per_page: nil,
27
+ internal_account_id: nil,
28
+ counterparty_id: nil,
29
+ returnable_id: nil,
30
+ returnable_type: nil,
31
+ after_cursor: nil)
32
+ @api_call
33
+ .request(new_request_builder(HttpMethodEnum::GET,
34
+ '/api/returns',
35
+ Server::DEFAULT)
36
+ .query_param(new_parameter(per_page, key: 'per_page'))
37
+ .query_param(new_parameter(internal_account_id, key: 'internal_account_id'))
38
+ .query_param(new_parameter(counterparty_id, key: 'counterparty_id'))
39
+ .query_param(new_parameter(returnable_id, key: 'returnable_id'))
40
+ .query_param(new_parameter(returnable_type, key: 'returnable_type'))
41
+ .query_param(new_parameter(after_cursor, key: 'after_cursor'))
42
+ .header_param(new_parameter('application/json', key: 'accept'))
43
+ .auth(Single.new('basic_auth')))
44
+ .response(new_response_handler
45
+ .deserializer(APIHelper.method(:custom_type_deserializer))
46
+ .deserialize_into(Return.method(:from_hash))
47
+ .is_response_array(true)
48
+ .local_error('401',
49
+ 'unsuccessful',
50
+ ErrorMessageException))
51
+ .execute
52
+ end
53
+
54
+ # Create a return.
55
+ # @param [String] idempotency_key Optional parameter: This key should be
56
+ # something unique, preferably something like an UUID.
57
+ # @param [ReturnCreateRequest] body Optional parameter: TODO: type
58
+ # description here
59
+ # @return [Return] Response from the API call.
60
+ def create_return(idempotency_key: nil,
61
+ body: nil)
62
+ @api_call
63
+ .request(new_request_builder(HttpMethodEnum::POST,
64
+ '/api/returns',
65
+ Server::DEFAULT)
66
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
67
+ .header_param(new_parameter(idempotency_key, key: 'Idempotency-Key'))
68
+ .body_param(new_parameter(body))
69
+ .header_param(new_parameter('application/json', key: 'accept'))
70
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
71
+ .auth(Single.new('basic_auth')))
72
+ .response(new_response_handler
73
+ .deserializer(APIHelper.method(:custom_type_deserializer))
74
+ .deserialize_into(Return.method(:from_hash))
75
+ .local_error('404',
76
+ 'unsuccessful',
77
+ ErrorMessageException)
78
+ .local_error('422',
79
+ 'unsuccessful',
80
+ ErrorMessageException))
81
+ .execute
82
+ end
83
+
84
+ # Get a single return.
85
+ # @param [String] id Required parameter: The ID of an existing return.
86
+ # @return [Return] Response from the API call.
87
+ def get_return(id)
88
+ @api_call
89
+ .request(new_request_builder(HttpMethodEnum::GET,
90
+ '/api/returns/{id}',
91
+ Server::DEFAULT)
92
+ .template_param(new_parameter(id, key: 'id')
93
+ .should_encode(true))
94
+ .header_param(new_parameter('application/json', key: 'accept'))
95
+ .auth(Single.new('basic_auth')))
96
+ .response(new_response_handler
97
+ .deserializer(APIHelper.method(:custom_type_deserializer))
98
+ .deserialize_into(Return.method(:from_hash))
99
+ .local_error('404',
100
+ 'not found',
101
+ ErrorMessageException))
102
+ .execute
103
+ end
104
+ end
105
+ end