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,304 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module ModernTreasury
8
+ # ReceivingAccount Model.
9
+ class ReceivingAccount < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :object
20
+
21
+ # This field will be true if this object exists in the live environment or
22
+ # false if it exists in the test environment.
23
+ # @return [TrueClass | FalseClass]
24
+ attr_accessor :live_mode
25
+
26
+ # This field will be true if this object exists in the live environment or
27
+ # false if it exists in the test environment.
28
+ # @return [DateTime]
29
+ attr_accessor :created_at
30
+
31
+ # This field will be true if this object exists in the live environment or
32
+ # false if it exists in the test environment.
33
+ # @return [DateTime]
34
+ attr_accessor :updated_at
35
+
36
+ # This field will be true if this object exists in the live environment or
37
+ # false if it exists in the test environment.
38
+ # @return [DateTime]
39
+ attr_accessor :discarded_at
40
+
41
+ # Can be `checking`, `savings` or `other`.
42
+ # @return [AccountTypeEnum]
43
+ attr_accessor :account_type
44
+
45
+ # Either `individual` or `business`.
46
+ # @return [PartyTypeEnum]
47
+ attr_accessor :party_type
48
+
49
+ # Either `individual` or `business`.
50
+ # @return [Address]
51
+ attr_accessor :party_address
52
+
53
+ # A nickname for the external account. This is only for internal usage and
54
+ # won't affect any payments
55
+ # @return [String]
56
+ attr_accessor :name
57
+
58
+ # A nickname for the external account. This is only for internal usage and
59
+ # won't affect any payments
60
+ # @return [Array[AccountDetail]]
61
+ attr_accessor :account_details
62
+
63
+ # A nickname for the external account. This is only for internal usage and
64
+ # won't affect any payments
65
+ # @return [Array[RoutingDetail]]
66
+ attr_accessor :routing_details
67
+
68
+ # Additional data represented as key-value pairs. Both the key and value
69
+ # must be strings.
70
+ # @return [Hash[String, String]]
71
+ attr_accessor :metadata
72
+
73
+ # The legal name of the entity which owns the account.
74
+ # @return [String]
75
+ attr_accessor :party_name
76
+
77
+ # The legal name of the entity which owns the account.
78
+ # @return [Array[ContactDetail]]
79
+ attr_accessor :contact_details
80
+
81
+ # If the external account links to a ledger account in Modern Treasury, the
82
+ # id of the ledger account will be populated here.
83
+ # @return [UUID | String]
84
+ attr_accessor :ledger_account_id
85
+
86
+ # If the external account links to a ledger account in Modern Treasury, the
87
+ # id of the ledger account will be populated here.
88
+ # @return [VerificationStatusEnum]
89
+ attr_accessor :verification_status
90
+
91
+ # A mapping from model property names to API property names.
92
+ def self.names
93
+ @_hash = {} if @_hash.nil?
94
+ @_hash['id'] = 'id'
95
+ @_hash['object'] = 'object'
96
+ @_hash['live_mode'] = 'live_mode'
97
+ @_hash['created_at'] = 'created_at'
98
+ @_hash['updated_at'] = 'updated_at'
99
+ @_hash['discarded_at'] = 'discarded_at'
100
+ @_hash['account_type'] = 'account_type'
101
+ @_hash['party_type'] = 'party_type'
102
+ @_hash['party_address'] = 'party_address'
103
+ @_hash['name'] = 'name'
104
+ @_hash['account_details'] = 'account_details'
105
+ @_hash['routing_details'] = 'routing_details'
106
+ @_hash['metadata'] = 'metadata'
107
+ @_hash['party_name'] = 'party_name'
108
+ @_hash['contact_details'] = 'contact_details'
109
+ @_hash['ledger_account_id'] = 'ledger_account_id'
110
+ @_hash['verification_status'] = 'verification_status'
111
+ @_hash
112
+ end
113
+
114
+ # An array for optional fields
115
+ def self.optionals
116
+ %w[
117
+ id
118
+ object
119
+ live_mode
120
+ created_at
121
+ updated_at
122
+ discarded_at
123
+ account_type
124
+ party_type
125
+ party_address
126
+ name
127
+ account_details
128
+ routing_details
129
+ metadata
130
+ party_name
131
+ contact_details
132
+ ledger_account_id
133
+ verification_status
134
+ ]
135
+ end
136
+
137
+ # An array for nullable fields
138
+ def self.nullables
139
+ %w[
140
+ discarded_at
141
+ party_type
142
+ party_address
143
+ name
144
+ ledger_account_id
145
+ ]
146
+ end
147
+
148
+ def initialize(id = SKIP, object = SKIP, live_mode = SKIP,
149
+ created_at = SKIP, updated_at = SKIP, discarded_at = SKIP,
150
+ account_type = SKIP, party_type = SKIP, party_address = SKIP,
151
+ name = SKIP, account_details = SKIP, routing_details = SKIP,
152
+ metadata = SKIP, party_name = SKIP, contact_details = SKIP,
153
+ ledger_account_id = SKIP, verification_status = SKIP)
154
+ @id = id unless id == SKIP
155
+ @object = object unless object == SKIP
156
+ @live_mode = live_mode unless live_mode == SKIP
157
+ @created_at = created_at unless created_at == SKIP
158
+ @updated_at = updated_at unless updated_at == SKIP
159
+ @discarded_at = discarded_at unless discarded_at == SKIP
160
+ @account_type = account_type unless account_type == SKIP
161
+ @party_type = party_type unless party_type == SKIP
162
+ @party_address = party_address unless party_address == SKIP
163
+ @name = name unless name == SKIP
164
+ @account_details = account_details unless account_details == SKIP
165
+ @routing_details = routing_details unless routing_details == SKIP
166
+ @metadata = metadata unless metadata == SKIP
167
+ @party_name = party_name unless party_name == SKIP
168
+ @contact_details = contact_details unless contact_details == SKIP
169
+ @ledger_account_id = ledger_account_id unless ledger_account_id == SKIP
170
+ @verification_status = verification_status unless verification_status == SKIP
171
+ end
172
+
173
+ # Creates an instance of the object from a hash.
174
+ def self.from_hash(hash)
175
+ return nil unless hash
176
+
177
+ # Extract variables from the hash.
178
+ id = hash.key?('id') ? hash['id'] : SKIP
179
+ object = hash.key?('object') ? hash['object'] : SKIP
180
+ live_mode = hash.key?('live_mode') ? hash['live_mode'] : SKIP
181
+ created_at = if hash.key?('created_at')
182
+ (DateTimeHelper.from_rfc3339(hash['created_at']) if hash['created_at'])
183
+ else
184
+ SKIP
185
+ end
186
+ updated_at = if hash.key?('updated_at')
187
+ (DateTimeHelper.from_rfc3339(hash['updated_at']) if hash['updated_at'])
188
+ else
189
+ SKIP
190
+ end
191
+ discarded_at = if hash.key?('discarded_at')
192
+ (DateTimeHelper.from_rfc3339(hash['discarded_at']) if hash['discarded_at'])
193
+ else
194
+ SKIP
195
+ end
196
+ account_type = hash.key?('account_type') ? hash['account_type'] : SKIP
197
+ party_type = hash.key?('party_type') ? hash['party_type'] : SKIP
198
+ party_address = Address.from_hash(hash['party_address']) if hash['party_address']
199
+ name = hash.key?('name') ? hash['name'] : SKIP
200
+ # Parameter is an array, so we need to iterate through it
201
+ account_details = nil
202
+ unless hash['account_details'].nil?
203
+ account_details = []
204
+ hash['account_details'].each do |structure|
205
+ account_details << (AccountDetail.from_hash(structure) if structure)
206
+ end
207
+ end
208
+
209
+ account_details = SKIP unless hash.key?('account_details')
210
+ # Parameter is an array, so we need to iterate through it
211
+ routing_details = nil
212
+ unless hash['routing_details'].nil?
213
+ routing_details = []
214
+ hash['routing_details'].each do |structure|
215
+ routing_details << (RoutingDetail.from_hash(structure) if structure)
216
+ end
217
+ end
218
+
219
+ routing_details = SKIP unless hash.key?('routing_details')
220
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
221
+ party_name = hash.key?('party_name') ? hash['party_name'] : SKIP
222
+ # Parameter is an array, so we need to iterate through it
223
+ contact_details = nil
224
+ unless hash['contact_details'].nil?
225
+ contact_details = []
226
+ hash['contact_details'].each do |structure|
227
+ contact_details << (ContactDetail.from_hash(structure) if structure)
228
+ end
229
+ end
230
+
231
+ contact_details = SKIP unless hash.key?('contact_details')
232
+ ledger_account_id =
233
+ hash.key?('ledger_account_id') ? hash['ledger_account_id'] : SKIP
234
+ verification_status =
235
+ hash.key?('verification_status') ? hash['verification_status'] : SKIP
236
+
237
+ # Create object from extracted values.
238
+ ReceivingAccount.new(id,
239
+ object,
240
+ live_mode,
241
+ created_at,
242
+ updated_at,
243
+ discarded_at,
244
+ account_type,
245
+ party_type,
246
+ party_address,
247
+ name,
248
+ account_details,
249
+ routing_details,
250
+ metadata,
251
+ party_name,
252
+ contact_details,
253
+ ledger_account_id,
254
+ verification_status)
255
+ end
256
+
257
+ def to_custom_created_at
258
+ DateTimeHelper.to_rfc3339(created_at)
259
+ end
260
+
261
+ def to_custom_updated_at
262
+ DateTimeHelper.to_rfc3339(updated_at)
263
+ end
264
+
265
+ def to_custom_discarded_at
266
+ DateTimeHelper.to_rfc3339(discarded_at)
267
+ end
268
+
269
+ # Validates an instance of the object from a given value.
270
+ # @param [ReceivingAccount | Hash] The value against the validation is performed.
271
+ def self.validate(value)
272
+ return true if value.instance_of? self
273
+
274
+ return false unless value.instance_of? Hash
275
+
276
+ true
277
+ end
278
+
279
+ # Provides a human-readable string representation of the object.
280
+ def to_s
281
+ class_name = self.class.name.split('::').last
282
+ "<#{class_name} id: #{@id}, object: #{@object}, live_mode: #{@live_mode}, created_at:"\
283
+ " #{@created_at}, updated_at: #{@updated_at}, discarded_at: #{@discarded_at}, account_type:"\
284
+ " #{@account_type}, party_type: #{@party_type}, party_address: #{@party_address}, name:"\
285
+ " #{@name}, account_details: #{@account_details}, routing_details: #{@routing_details},"\
286
+ " metadata: #{@metadata}, party_name: #{@party_name}, contact_details: #{@contact_details},"\
287
+ " ledger_account_id: #{@ledger_account_id}, verification_status: #{@verification_status}>"
288
+ end
289
+
290
+ # Provides a debugging-friendly string with detailed object information.
291
+ def inspect
292
+ class_name = self.class.name.split('::').last
293
+ "<#{class_name} id: #{@id.inspect}, object: #{@object.inspect}, live_mode:"\
294
+ " #{@live_mode.inspect}, created_at: #{@created_at.inspect}, updated_at:"\
295
+ " #{@updated_at.inspect}, discarded_at: #{@discarded_at.inspect}, account_type:"\
296
+ " #{@account_type.inspect}, party_type: #{@party_type.inspect}, party_address:"\
297
+ " #{@party_address.inspect}, name: #{@name.inspect}, account_details:"\
298
+ " #{@account_details.inspect}, routing_details: #{@routing_details.inspect}, metadata:"\
299
+ " #{@metadata.inspect}, party_name: #{@party_name.inspect}, contact_details:"\
300
+ " #{@contact_details.inspect}, ledger_account_id: #{@ledger_account_id.inspect},"\
301
+ " verification_status: #{@verification_status.inspect}>"
302
+ end
303
+ end
304
+ end
@@ -0,0 +1,219 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # Either `receiving_account` or `receiving_account_id` must be present. When
8
+ # using `receiving_account_id`, you may pass the id of an external account or
9
+ # an internal account.
10
+ class ReceivingAccount1 < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Can be `checking`, `savings` or `other`.
15
+ # @return [AccountTypeEnum]
16
+ attr_accessor :account_type
17
+
18
+ # Either `individual` or `business`.
19
+ # @return [PartyTypeEnum]
20
+ attr_accessor :party_type
21
+
22
+ # Either `individual` or `business`.
23
+ # @return [AddressRequest]
24
+ attr_accessor :party_address
25
+
26
+ # A nickname for the external account. This is only for internal usage and
27
+ # won't affect any payments
28
+ # @return [String]
29
+ attr_accessor :name
30
+
31
+ # A nickname for the external account. This is only for internal usage and
32
+ # won't affect any payments
33
+ # @return [Array[AccountDetail1]]
34
+ attr_accessor :account_details
35
+
36
+ # A nickname for the external account. This is only for internal usage and
37
+ # won't affect any payments
38
+ # @return [Array[RoutingDetail1]]
39
+ attr_accessor :routing_details
40
+
41
+ # Additional data represented as key-value pairs. Both the key and value
42
+ # must be strings.
43
+ # @return [Hash[String, String]]
44
+ attr_accessor :metadata
45
+
46
+ # If this value isn't provided, it will be inherited from the counterparty's
47
+ # name.
48
+ # @return [String]
49
+ attr_accessor :party_name
50
+
51
+ # If this value isn't provided, it will be inherited from the counterparty's
52
+ # name.
53
+ # @return [String]
54
+ attr_accessor :party_identifier
55
+
56
+ # If this value isn't provided, it will be inherited from the counterparty's
57
+ # name.
58
+ # @return [LedgerAccountCreateRequest]
59
+ attr_accessor :ledger_account
60
+
61
+ # If you've enabled the Modern Treasury + Plaid integration in your Plaid
62
+ # account, you can pass the processor token in this field.
63
+ # @return [String]
64
+ attr_accessor :plaid_processor_token
65
+
66
+ # If you've enabled the Modern Treasury + Plaid integration in your Plaid
67
+ # account, you can pass the processor token in this field.
68
+ # @return [Array[ContactDetailCreateRequest]]
69
+ attr_accessor :contact_details
70
+
71
+ # A mapping from model property names to API property names.
72
+ def self.names
73
+ @_hash = {} if @_hash.nil?
74
+ @_hash['account_type'] = 'account_type'
75
+ @_hash['party_type'] = 'party_type'
76
+ @_hash['party_address'] = 'party_address'
77
+ @_hash['name'] = 'name'
78
+ @_hash['account_details'] = 'account_details'
79
+ @_hash['routing_details'] = 'routing_details'
80
+ @_hash['metadata'] = 'metadata'
81
+ @_hash['party_name'] = 'party_name'
82
+ @_hash['party_identifier'] = 'party_identifier'
83
+ @_hash['ledger_account'] = 'ledger_account'
84
+ @_hash['plaid_processor_token'] = 'plaid_processor_token'
85
+ @_hash['contact_details'] = 'contact_details'
86
+ @_hash
87
+ end
88
+
89
+ # An array for optional fields
90
+ def self.optionals
91
+ %w[
92
+ account_type
93
+ party_type
94
+ party_address
95
+ name
96
+ account_details
97
+ routing_details
98
+ metadata
99
+ party_name
100
+ party_identifier
101
+ ledger_account
102
+ plaid_processor_token
103
+ contact_details
104
+ ]
105
+ end
106
+
107
+ # An array for nullable fields
108
+ def self.nullables
109
+ %w[
110
+ party_type
111
+ name
112
+ ]
113
+ end
114
+
115
+ def initialize(account_type = SKIP, party_type = SKIP, party_address = SKIP,
116
+ name = SKIP, account_details = SKIP, routing_details = SKIP,
117
+ metadata = SKIP, party_name = SKIP, party_identifier = SKIP,
118
+ ledger_account = SKIP, plaid_processor_token = SKIP,
119
+ contact_details = SKIP)
120
+ @account_type = account_type unless account_type == SKIP
121
+ @party_type = party_type unless party_type == SKIP
122
+ @party_address = party_address unless party_address == SKIP
123
+ @name = name unless name == SKIP
124
+ @account_details = account_details unless account_details == SKIP
125
+ @routing_details = routing_details unless routing_details == SKIP
126
+ @metadata = metadata unless metadata == SKIP
127
+ @party_name = party_name unless party_name == SKIP
128
+ @party_identifier = party_identifier unless party_identifier == SKIP
129
+ @ledger_account = ledger_account unless ledger_account == SKIP
130
+ @plaid_processor_token = plaid_processor_token unless plaid_processor_token == SKIP
131
+ @contact_details = contact_details unless contact_details == SKIP
132
+ end
133
+
134
+ # Creates an instance of the object from a hash.
135
+ def self.from_hash(hash)
136
+ return nil unless hash
137
+
138
+ # Extract variables from the hash.
139
+ account_type = hash.key?('account_type') ? hash['account_type'] : SKIP
140
+ party_type = hash.key?('party_type') ? hash['party_type'] : SKIP
141
+ party_address = AddressRequest.from_hash(hash['party_address']) if hash['party_address']
142
+ name = hash.key?('name') ? hash['name'] : SKIP
143
+ # Parameter is an array, so we need to iterate through it
144
+ account_details = nil
145
+ unless hash['account_details'].nil?
146
+ account_details = []
147
+ hash['account_details'].each do |structure|
148
+ account_details << (AccountDetail1.from_hash(structure) if structure)
149
+ end
150
+ end
151
+
152
+ account_details = SKIP unless hash.key?('account_details')
153
+ # Parameter is an array, so we need to iterate through it
154
+ routing_details = nil
155
+ unless hash['routing_details'].nil?
156
+ routing_details = []
157
+ hash['routing_details'].each do |structure|
158
+ routing_details << (RoutingDetail1.from_hash(structure) if structure)
159
+ end
160
+ end
161
+
162
+ routing_details = SKIP unless hash.key?('routing_details')
163
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
164
+ party_name = hash.key?('party_name') ? hash['party_name'] : SKIP
165
+ party_identifier =
166
+ hash.key?('party_identifier') ? hash['party_identifier'] : SKIP
167
+ ledger_account = LedgerAccountCreateRequest.from_hash(hash['ledger_account']) if
168
+ hash['ledger_account']
169
+ plaid_processor_token =
170
+ hash.key?('plaid_processor_token') ? hash['plaid_processor_token'] : SKIP
171
+ # Parameter is an array, so we need to iterate through it
172
+ contact_details = nil
173
+ unless hash['contact_details'].nil?
174
+ contact_details = []
175
+ hash['contact_details'].each do |structure|
176
+ contact_details << (ContactDetailCreateRequest.from_hash(structure) if structure)
177
+ end
178
+ end
179
+
180
+ contact_details = SKIP unless hash.key?('contact_details')
181
+
182
+ # Create object from extracted values.
183
+ ReceivingAccount1.new(account_type,
184
+ party_type,
185
+ party_address,
186
+ name,
187
+ account_details,
188
+ routing_details,
189
+ metadata,
190
+ party_name,
191
+ party_identifier,
192
+ ledger_account,
193
+ plaid_processor_token,
194
+ contact_details)
195
+ end
196
+
197
+ # Provides a human-readable string representation of the object.
198
+ def to_s
199
+ class_name = self.class.name.split('::').last
200
+ "<#{class_name} account_type: #{@account_type}, party_type: #{@party_type}, party_address:"\
201
+ " #{@party_address}, name: #{@name}, account_details: #{@account_details}, routing_details:"\
202
+ " #{@routing_details}, metadata: #{@metadata}, party_name: #{@party_name}, party_identifier:"\
203
+ " #{@party_identifier}, ledger_account: #{@ledger_account}, plaid_processor_token:"\
204
+ " #{@plaid_processor_token}, contact_details: #{@contact_details}>"
205
+ end
206
+
207
+ # Provides a debugging-friendly string with detailed object information.
208
+ def inspect
209
+ class_name = self.class.name.split('::').last
210
+ "<#{class_name} account_type: #{@account_type.inspect}, party_type: #{@party_type.inspect},"\
211
+ " party_address: #{@party_address.inspect}, name: #{@name.inspect}, account_details:"\
212
+ " #{@account_details.inspect}, routing_details: #{@routing_details.inspect}, metadata:"\
213
+ " #{@metadata.inspect}, party_name: #{@party_name.inspect}, party_identifier:"\
214
+ " #{@party_identifier.inspect}, ledger_account: #{@ledger_account.inspect},"\
215
+ " plaid_processor_token: #{@plaid_processor_token.inspect}, contact_details:"\
216
+ " #{@contact_details.inspect}>"
217
+ end
218
+ end
219
+ end
@@ -0,0 +1,36 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # ReceivingAccountType.
8
+ class ReceivingAccountTypeEnum
9
+ RECEIVING_ACCOUNT_TYPE_ENUM = [
10
+ # TODO: Write general description for INTERNAL_ACCOUNT
11
+ INTERNAL_ACCOUNT = 'internal_account'.freeze,
12
+
13
+ # TODO: Write general description for EXTERNAL_ACCOUNT
14
+ EXTERNAL_ACCOUNT = 'external_account'.freeze
15
+ ].freeze
16
+
17
+ def self.validate(value)
18
+ return false if value.nil?
19
+
20
+ RECEIVING_ACCOUNT_TYPE_ENUM.include?(value)
21
+ end
22
+
23
+ def self.from_value(value, default_value = INTERNAL_ACCOUNT)
24
+ return default_value if value.nil?
25
+
26
+ str = value.to_s.strip
27
+
28
+ case str.downcase
29
+ when 'internal_account' then INTERNAL_ACCOUNT
30
+ when 'external_account' then EXTERNAL_ACCOUNT
31
+ else
32
+ default_value
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ # modern_treasury
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module ModernTreasury
7
+ # One of manual if this expected payment was manually reconciled in the
8
+ # dashboard, automatic if it was automatically reconciled by Modern Treasury,
9
+ # or null if it is unreconciled.
10
+ class ReconciliationMethodEnum
11
+ RECONCILIATION_METHOD_ENUM = [
12
+ # TODO: Write general description for AUTOMATIC
13
+ AUTOMATIC = 'automatic'.freeze,
14
+
15
+ # TODO: Write general description for MANUAL
16
+ MANUAL = 'manual'.freeze
17
+ ].freeze
18
+
19
+ def self.validate(value)
20
+ return false if value.nil?
21
+
22
+ RECONCILIATION_METHOD_ENUM.include?(value)
23
+ end
24
+
25
+ def self.from_value(value, default_value = AUTOMATIC)
26
+ return default_value if value.nil?
27
+
28
+ str = value.to_s.strip
29
+
30
+ case str.downcase
31
+ when 'automatic' then AUTOMATIC
32
+ when 'manual' then MANUAL
33
+ else
34
+ default_value
35
+ end
36
+ end
37
+ end
38
+ end