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,543 @@
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
+ # PaymentOrderUpdateRequest Model.
9
+ class PaymentOrderUpdateRequest < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # One of `ach`, `eft`, `wire`, `check`, `sen`, `book`, `rtp`, `sepa`,
14
+ # `bacs`, `au_becs`, `interac`, `signet`, `provexchange`.
15
+ # @return [Type5Enum]
16
+ attr_accessor :type
17
+
18
+ # An additional layer of classification for the type of payment order you
19
+ # are doing. This field is only used for `ach` payment orders currently. For
20
+ # `ach` payment orders, the `subtype` represents the SEC code. We
21
+ # currently support `CCD`, `PPD`, `IAT`, `CTX`, `WEB`, `CIE`, and `TEL`.
22
+ # @return [SubtypeEnum]
23
+ attr_accessor :subtype
24
+
25
+ # Value in specified currency's smallest unit. e.g. $10 would be represented
26
+ # as 1000 (cents). For RTP, the maximum amount allowed by the network is
27
+ # $100,000.
28
+ # @return [Integer]
29
+ attr_accessor :amount
30
+
31
+ # One of `credit`, `debit`. Describes the direction money is flowing in the
32
+ # transaction. A `credit` moves money from your account to someone else's. A
33
+ # `debit` pulls money from someone else's account to your own. Note that
34
+ # wire, rtp, and check payments will always be `credit`.
35
+ # @return [Direction5Enum]
36
+ attr_accessor :direction
37
+
38
+ # Either `normal` or `high`. For ACH and EFT payments, `high` represents a
39
+ # same-day ACH or EFT transfer, respectively. For check payments, `high` can
40
+ # mean an overnight check rather than standard mail.
41
+ # @return [PriorityEnum]
42
+ attr_accessor :priority
43
+
44
+ # The ID of one of your organization's internal accounts.
45
+ # @return [UUID | String]
46
+ attr_accessor :originating_account_id
47
+
48
+ # Either `receiving_account` or `receiving_account_id` must be present. When
49
+ # using `receiving_account_id`, you may pass the id of an external account
50
+ # or an internal account.
51
+ # @return [UUID | String]
52
+ attr_accessor :receiving_account_id
53
+
54
+ # Either `receiving_account` or `receiving_account_id` must be present. When
55
+ # using `receiving_account_id`, you may pass the id of an external account
56
+ # or an internal account.
57
+ # @return [Accounting]
58
+ attr_accessor :accounting
59
+
60
+ # The ID of one of your accounting categories. Note that these will only be
61
+ # accessible if your accounting system has been connected.
62
+ # @return [UUID | String]
63
+ attr_accessor :accounting_category_id
64
+
65
+ # The ID of one of your accounting ledger classes. Note that these will only
66
+ # be accessible if your accounting system has been connected.
67
+ # @return [UUID | String]
68
+ attr_accessor :accounting_ledger_class_id
69
+
70
+ # Three-letter ISO currency code.
71
+ # @return [CurrencyEnum]
72
+ attr_accessor :currency
73
+
74
+ # Date transactions are to be posted to the participants' account. Defaults
75
+ # to the current business day or the next business day if the current day is
76
+ # a bank holiday or weekend. Format: yyyy-mm-dd.
77
+ # @return [Date]
78
+ attr_accessor :effective_date
79
+
80
+ # An optional description for internal use.
81
+ # @return [String]
82
+ attr_accessor :description
83
+
84
+ # An optional descriptor which will appear in the receiver's statement. For
85
+ # `check` payments this field will be used as the memo line. For `ach` the
86
+ # maximum length is 10 characters. Note that for ACH payments, the name on
87
+ # your bank account will be included automatically by the bank, so you can
88
+ # use the characters for other useful information. For `eft` the maximum
89
+ # length is 15 characters.
90
+ # @return [String]
91
+ attr_accessor :statement_descriptor
92
+
93
+ # For `ach`, this field will be passed through on an addenda record. For
94
+ # `wire` payments the field will be passed through as the "Originator to
95
+ # Beneficiary Information", also known as OBI or Fedwire tag 6000.
96
+ # @return [String]
97
+ attr_accessor :remittance_information
98
+
99
+ # For `wire`, this is usually the purpose which is transmitted via the
100
+ # "InstrForDbtrAgt" field in the ISO20022 file. If you are using
101
+ # Currencycloud, this is the `payment.purpose_code` field. For `eft`, this
102
+ # field is the 3 digit CPA Code that will be attached to the payment.
103
+ # @return [String]
104
+ attr_accessor :purpose
105
+
106
+ # Additional data represented as key-value pairs. Both the key and value
107
+ # must be strings.
108
+ # @return [Hash[String, String]]
109
+ attr_accessor :metadata
110
+
111
+ # The party that will pay the fees for the payment order. Only applies to
112
+ # wire payment orders. Can be one of shared, sender, or receiver, which
113
+ # correspond respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
114
+ # @return [ChargeBearerEnum]
115
+ attr_accessor :charge_bearer
116
+
117
+ # Indicates the type of FX transfer to initiate, can be either
118
+ # `variable_to_fixed`, `fixed_to_variable`, or `null` if the payment order
119
+ # currency matches the originating account currency.
120
+ # @return [ForeignExchangeIndicatorEnum]
121
+ attr_accessor :foreign_exchange_indicator
122
+
123
+ # If present, indicates a specific foreign exchange contract number that has
124
+ # been generated by your financial institution.
125
+ # @return [String]
126
+ attr_accessor :foreign_exchange_contract
127
+
128
+ # A boolean to determine if NSF Protection is enabled for this payment
129
+ # order. Note that this setting must also be turned on in your organization
130
+ # settings page.
131
+ # @return [TrueClass | FalseClass]
132
+ attr_accessor :nsf_protected
133
+
134
+ # If present, this will replace your default company name on receiver's bank
135
+ # statement. This field can only be used for ACH payments currently. For
136
+ # ACH, only the first 16 characters of this string will be used. Any
137
+ # additional characters will be truncated.
138
+ # @return [String]
139
+ attr_accessor :originating_party_name
140
+
141
+ # This represents the name of the person that the payment is on behalf of
142
+ # when using the CIE subtype for ACH payments. Only the first 15 characters
143
+ # of this string will be used. Any additional characters will be truncated.
144
+ # @return [String]
145
+ attr_accessor :ultimate_originating_party_name
146
+
147
+ # This represents the identifier by which the person is known to the
148
+ # receiver when using the CIE subtype for ACH payments. Only the first 22
149
+ # characters of this string will be used. Any additional characters will be
150
+ # truncated.
151
+ # @return [String]
152
+ attr_accessor :ultimate_originating_party_identifier
153
+
154
+ # This represents the identifier by which the merchant is known to the
155
+ # person initiating an ACH payment with CIE subtype. Only the first 15
156
+ # characters of this string will be used. Any additional characters will be
157
+ # truncated.
158
+ # @return [String]
159
+ attr_accessor :ultimate_receiving_party_name
160
+
161
+ # This represents the name of the merchant that the payment is being sent to
162
+ # when using the CIE subtype for ACH payments. Only the first 22 characters
163
+ # of this string will be used. Any additional characters will be truncated.
164
+ # @return [String]
165
+ attr_accessor :ultimate_receiving_party_identifier
166
+
167
+ # Send an email to the counterparty when the payment order is sent to the
168
+ # bank. If `null`, `send_remittance_advice` on the Counterparty is used.
169
+ # @return [TrueClass | FalseClass]
170
+ attr_accessor :send_remittance_advice
171
+
172
+ # RFP payments require an expires_at. This value must be past the
173
+ # effective_date.
174
+ # @return [DateTime]
175
+ attr_accessor :expires_at
176
+
177
+ # To cancel a payment order, use `cancelled`. To redraft a returned payment
178
+ # order, use `approved`. To undo approval on a denied or approved payment
179
+ # order, use `needs_approval`.
180
+ # @return [Status18Enum]
181
+ attr_accessor :status
182
+
183
+ # Required when receiving_account_id is passed the ID of an external
184
+ # account.
185
+ # @return [UUID | String]
186
+ attr_accessor :counterparty_id
187
+
188
+ # A payment type to fallback to if the original type is not valid for the
189
+ # receiving account. Currently, this only supports falling back from RTP to
190
+ # ACH (type=rtp and fallback_type=ach)
191
+ # @return [FallbackTypeEnum]
192
+ attr_accessor :fallback_type
193
+
194
+ # Either `receiving_account` or `receiving_account_id` must be present. When
195
+ # using `receiving_account_id`, you may pass the id of an external account
196
+ # or an internal account.
197
+ # @return [ReceivingAccount1]
198
+ attr_accessor :receiving_account
199
+
200
+ # An array of line items that must sum up to the amount of the payment
201
+ # order.
202
+ # @return [Array[LineItemRequest]]
203
+ attr_accessor :line_items
204
+
205
+ # A mapping from model property names to API property names.
206
+ def self.names
207
+ @_hash = {} if @_hash.nil?
208
+ @_hash['type'] = 'type'
209
+ @_hash['subtype'] = 'subtype'
210
+ @_hash['amount'] = 'amount'
211
+ @_hash['direction'] = 'direction'
212
+ @_hash['priority'] = 'priority'
213
+ @_hash['originating_account_id'] = 'originating_account_id'
214
+ @_hash['receiving_account_id'] = 'receiving_account_id'
215
+ @_hash['accounting'] = 'accounting'
216
+ @_hash['accounting_category_id'] = 'accounting_category_id'
217
+ @_hash['accounting_ledger_class_id'] = 'accounting_ledger_class_id'
218
+ @_hash['currency'] = 'currency'
219
+ @_hash['effective_date'] = 'effective_date'
220
+ @_hash['description'] = 'description'
221
+ @_hash['statement_descriptor'] = 'statement_descriptor'
222
+ @_hash['remittance_information'] = 'remittance_information'
223
+ @_hash['purpose'] = 'purpose'
224
+ @_hash['metadata'] = 'metadata'
225
+ @_hash['charge_bearer'] = 'charge_bearer'
226
+ @_hash['foreign_exchange_indicator'] = 'foreign_exchange_indicator'
227
+ @_hash['foreign_exchange_contract'] = 'foreign_exchange_contract'
228
+ @_hash['nsf_protected'] = 'nsf_protected'
229
+ @_hash['originating_party_name'] = 'originating_party_name'
230
+ @_hash['ultimate_originating_party_name'] =
231
+ 'ultimate_originating_party_name'
232
+ @_hash['ultimate_originating_party_identifier'] =
233
+ 'ultimate_originating_party_identifier'
234
+ @_hash['ultimate_receiving_party_name'] =
235
+ 'ultimate_receiving_party_name'
236
+ @_hash['ultimate_receiving_party_identifier'] =
237
+ 'ultimate_receiving_party_identifier'
238
+ @_hash['send_remittance_advice'] = 'send_remittance_advice'
239
+ @_hash['expires_at'] = 'expires_at'
240
+ @_hash['status'] = 'status'
241
+ @_hash['counterparty_id'] = 'counterparty_id'
242
+ @_hash['fallback_type'] = 'fallback_type'
243
+ @_hash['receiving_account'] = 'receiving_account'
244
+ @_hash['line_items'] = 'line_items'
245
+ @_hash
246
+ end
247
+
248
+ # An array for optional fields
249
+ def self.optionals
250
+ %w[
251
+ type
252
+ subtype
253
+ amount
254
+ direction
255
+ priority
256
+ originating_account_id
257
+ receiving_account_id
258
+ accounting
259
+ accounting_category_id
260
+ accounting_ledger_class_id
261
+ currency
262
+ effective_date
263
+ description
264
+ statement_descriptor
265
+ remittance_information
266
+ purpose
267
+ metadata
268
+ charge_bearer
269
+ foreign_exchange_indicator
270
+ foreign_exchange_contract
271
+ nsf_protected
272
+ originating_party_name
273
+ ultimate_originating_party_name
274
+ ultimate_originating_party_identifier
275
+ ultimate_receiving_party_name
276
+ ultimate_receiving_party_identifier
277
+ send_remittance_advice
278
+ expires_at
279
+ status
280
+ counterparty_id
281
+ fallback_type
282
+ receiving_account
283
+ line_items
284
+ ]
285
+ end
286
+
287
+ # An array for nullable fields
288
+ def self.nullables
289
+ %w[
290
+ subtype
291
+ accounting_category_id
292
+ accounting_ledger_class_id
293
+ description
294
+ statement_descriptor
295
+ remittance_information
296
+ purpose
297
+ charge_bearer
298
+ foreign_exchange_indicator
299
+ foreign_exchange_contract
300
+ originating_party_name
301
+ ultimate_originating_party_name
302
+ ultimate_originating_party_identifier
303
+ ultimate_receiving_party_name
304
+ ultimate_receiving_party_identifier
305
+ send_remittance_advice
306
+ expires_at
307
+ counterparty_id
308
+ ]
309
+ end
310
+
311
+ def initialize(type = SKIP, subtype = SKIP, amount = SKIP, direction = SKIP,
312
+ priority = SKIP, originating_account_id = SKIP,
313
+ receiving_account_id = SKIP, accounting = SKIP,
314
+ accounting_category_id = SKIP,
315
+ accounting_ledger_class_id = SKIP, currency = SKIP,
316
+ effective_date = SKIP, description = SKIP,
317
+ statement_descriptor = SKIP, remittance_information = SKIP,
318
+ purpose = SKIP, metadata = SKIP, charge_bearer = SKIP,
319
+ foreign_exchange_indicator = SKIP,
320
+ foreign_exchange_contract = SKIP, nsf_protected = SKIP,
321
+ originating_party_name = SKIP,
322
+ ultimate_originating_party_name = SKIP,
323
+ ultimate_originating_party_identifier = SKIP,
324
+ ultimate_receiving_party_name = SKIP,
325
+ ultimate_receiving_party_identifier = SKIP,
326
+ send_remittance_advice = SKIP, expires_at = SKIP,
327
+ status = SKIP, counterparty_id = SKIP, fallback_type = SKIP,
328
+ receiving_account = SKIP, line_items = SKIP)
329
+ @type = type unless type == SKIP
330
+ @subtype = subtype unless subtype == SKIP
331
+ @amount = amount unless amount == SKIP
332
+ @direction = direction unless direction == SKIP
333
+ @priority = priority unless priority == SKIP
334
+ @originating_account_id = originating_account_id unless originating_account_id == SKIP
335
+ @receiving_account_id = receiving_account_id unless receiving_account_id == SKIP
336
+ @accounting = accounting unless accounting == SKIP
337
+ @accounting_category_id = accounting_category_id unless accounting_category_id == SKIP
338
+ unless accounting_ledger_class_id == SKIP
339
+ @accounting_ledger_class_id =
340
+ accounting_ledger_class_id
341
+ end
342
+ @currency = currency unless currency == SKIP
343
+ @effective_date = effective_date unless effective_date == SKIP
344
+ @description = description unless description == SKIP
345
+ @statement_descriptor = statement_descriptor unless statement_descriptor == SKIP
346
+ @remittance_information = remittance_information unless remittance_information == SKIP
347
+ @purpose = purpose unless purpose == SKIP
348
+ @metadata = metadata unless metadata == SKIP
349
+ @charge_bearer = charge_bearer unless charge_bearer == SKIP
350
+ unless foreign_exchange_indicator == SKIP
351
+ @foreign_exchange_indicator =
352
+ foreign_exchange_indicator
353
+ end
354
+ unless foreign_exchange_contract == SKIP
355
+ @foreign_exchange_contract =
356
+ foreign_exchange_contract
357
+ end
358
+ @nsf_protected = nsf_protected unless nsf_protected == SKIP
359
+ @originating_party_name = originating_party_name unless originating_party_name == SKIP
360
+ unless ultimate_originating_party_name == SKIP
361
+ @ultimate_originating_party_name =
362
+ ultimate_originating_party_name
363
+ end
364
+ unless ultimate_originating_party_identifier == SKIP
365
+ @ultimate_originating_party_identifier =
366
+ ultimate_originating_party_identifier
367
+ end
368
+ unless ultimate_receiving_party_name == SKIP
369
+ @ultimate_receiving_party_name =
370
+ ultimate_receiving_party_name
371
+ end
372
+ unless ultimate_receiving_party_identifier == SKIP
373
+ @ultimate_receiving_party_identifier =
374
+ ultimate_receiving_party_identifier
375
+ end
376
+ @send_remittance_advice = send_remittance_advice unless send_remittance_advice == SKIP
377
+ @expires_at = expires_at unless expires_at == SKIP
378
+ @status = status unless status == SKIP
379
+ @counterparty_id = counterparty_id unless counterparty_id == SKIP
380
+ @fallback_type = fallback_type unless fallback_type == SKIP
381
+ @receiving_account = receiving_account unless receiving_account == SKIP
382
+ @line_items = line_items unless line_items == SKIP
383
+ end
384
+
385
+ # Creates an instance of the object from a hash.
386
+ def self.from_hash(hash)
387
+ return nil unless hash
388
+
389
+ # Extract variables from the hash.
390
+ type = hash.key?('type') ? hash['type'] : SKIP
391
+ subtype = hash.key?('subtype') ? hash['subtype'] : SKIP
392
+ amount = hash.key?('amount') ? hash['amount'] : SKIP
393
+ direction = hash.key?('direction') ? hash['direction'] : SKIP
394
+ priority = hash.key?('priority') ? hash['priority'] : SKIP
395
+ originating_account_id =
396
+ hash.key?('originating_account_id') ? hash['originating_account_id'] : SKIP
397
+ receiving_account_id =
398
+ hash.key?('receiving_account_id') ? hash['receiving_account_id'] : SKIP
399
+ accounting = Accounting.from_hash(hash['accounting']) if hash['accounting']
400
+ accounting_category_id =
401
+ hash.key?('accounting_category_id') ? hash['accounting_category_id'] : SKIP
402
+ accounting_ledger_class_id =
403
+ hash.key?('accounting_ledger_class_id') ? hash['accounting_ledger_class_id'] : SKIP
404
+ currency = hash.key?('currency') ? hash['currency'] : SKIP
405
+ effective_date =
406
+ hash.key?('effective_date') ? hash['effective_date'] : SKIP
407
+ description = hash.key?('description') ? hash['description'] : SKIP
408
+ statement_descriptor =
409
+ hash.key?('statement_descriptor') ? hash['statement_descriptor'] : SKIP
410
+ remittance_information =
411
+ hash.key?('remittance_information') ? hash['remittance_information'] : SKIP
412
+ purpose = hash.key?('purpose') ? hash['purpose'] : SKIP
413
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
414
+ charge_bearer = hash.key?('charge_bearer') ? hash['charge_bearer'] : SKIP
415
+ foreign_exchange_indicator =
416
+ hash.key?('foreign_exchange_indicator') ? hash['foreign_exchange_indicator'] : SKIP
417
+ foreign_exchange_contract =
418
+ hash.key?('foreign_exchange_contract') ? hash['foreign_exchange_contract'] : SKIP
419
+ nsf_protected = hash.key?('nsf_protected') ? hash['nsf_protected'] : SKIP
420
+ originating_party_name =
421
+ hash.key?('originating_party_name') ? hash['originating_party_name'] : SKIP
422
+ ultimate_originating_party_name =
423
+ hash.key?('ultimate_originating_party_name') ? hash['ultimate_originating_party_name'] : SKIP
424
+ ultimate_originating_party_identifier =
425
+ hash.key?('ultimate_originating_party_identifier') ? hash['ultimate_originating_party_identifier'] : SKIP
426
+ ultimate_receiving_party_name =
427
+ hash.key?('ultimate_receiving_party_name') ? hash['ultimate_receiving_party_name'] : SKIP
428
+ ultimate_receiving_party_identifier =
429
+ hash.key?('ultimate_receiving_party_identifier') ? hash['ultimate_receiving_party_identifier'] : SKIP
430
+ send_remittance_advice =
431
+ hash.key?('send_remittance_advice') ? hash['send_remittance_advice'] : SKIP
432
+ expires_at = if hash.key?('expires_at')
433
+ (DateTimeHelper.from_rfc3339(hash['expires_at']) if hash['expires_at'])
434
+ else
435
+ SKIP
436
+ end
437
+ status = hash.key?('status') ? hash['status'] : SKIP
438
+ counterparty_id =
439
+ hash.key?('counterparty_id') ? hash['counterparty_id'] : SKIP
440
+ fallback_type = hash.key?('fallback_type') ? hash['fallback_type'] : SKIP
441
+ receiving_account = ReceivingAccount1.from_hash(hash['receiving_account']) if
442
+ hash['receiving_account']
443
+ # Parameter is an array, so we need to iterate through it
444
+ line_items = nil
445
+ unless hash['line_items'].nil?
446
+ line_items = []
447
+ hash['line_items'].each do |structure|
448
+ line_items << (LineItemRequest.from_hash(structure) if structure)
449
+ end
450
+ end
451
+
452
+ line_items = SKIP unless hash.key?('line_items')
453
+
454
+ # Create object from extracted values.
455
+ PaymentOrderUpdateRequest.new(type,
456
+ subtype,
457
+ amount,
458
+ direction,
459
+ priority,
460
+ originating_account_id,
461
+ receiving_account_id,
462
+ accounting,
463
+ accounting_category_id,
464
+ accounting_ledger_class_id,
465
+ currency,
466
+ effective_date,
467
+ description,
468
+ statement_descriptor,
469
+ remittance_information,
470
+ purpose,
471
+ metadata,
472
+ charge_bearer,
473
+ foreign_exchange_indicator,
474
+ foreign_exchange_contract,
475
+ nsf_protected,
476
+ originating_party_name,
477
+ ultimate_originating_party_name,
478
+ ultimate_originating_party_identifier,
479
+ ultimate_receiving_party_name,
480
+ ultimate_receiving_party_identifier,
481
+ send_remittance_advice,
482
+ expires_at,
483
+ status,
484
+ counterparty_id,
485
+ fallback_type,
486
+ receiving_account,
487
+ line_items)
488
+ end
489
+
490
+ def to_custom_expires_at
491
+ DateTimeHelper.to_rfc3339(expires_at)
492
+ end
493
+
494
+ # Provides a human-readable string representation of the object.
495
+ def to_s
496
+ class_name = self.class.name.split('::').last
497
+ "<#{class_name} type: #{@type}, subtype: #{@subtype}, amount: #{@amount}, direction:"\
498
+ " #{@direction}, priority: #{@priority}, originating_account_id: #{@originating_account_id},"\
499
+ " receiving_account_id: #{@receiving_account_id}, accounting: #{@accounting},"\
500
+ " accounting_category_id: #{@accounting_category_id}, accounting_ledger_class_id:"\
501
+ " #{@accounting_ledger_class_id}, currency: #{@currency}, effective_date:"\
502
+ " #{@effective_date}, description: #{@description}, statement_descriptor:"\
503
+ " #{@statement_descriptor}, remittance_information: #{@remittance_information}, purpose:"\
504
+ " #{@purpose}, metadata: #{@metadata}, charge_bearer: #{@charge_bearer},"\
505
+ " foreign_exchange_indicator: #{@foreign_exchange_indicator}, foreign_exchange_contract:"\
506
+ " #{@foreign_exchange_contract}, nsf_protected: #{@nsf_protected}, originating_party_name:"\
507
+ " #{@originating_party_name}, ultimate_originating_party_name:"\
508
+ " #{@ultimate_originating_party_name}, ultimate_originating_party_identifier:"\
509
+ " #{@ultimate_originating_party_identifier}, ultimate_receiving_party_name:"\
510
+ " #{@ultimate_receiving_party_name}, ultimate_receiving_party_identifier:"\
511
+ " #{@ultimate_receiving_party_identifier}, send_remittance_advice:"\
512
+ " #{@send_remittance_advice}, expires_at: #{@expires_at}, status: #{@status},"\
513
+ " counterparty_id: #{@counterparty_id}, fallback_type: #{@fallback_type}, receiving_account:"\
514
+ " #{@receiving_account}, line_items: #{@line_items}>"
515
+ end
516
+
517
+ # Provides a debugging-friendly string with detailed object information.
518
+ def inspect
519
+ class_name = self.class.name.split('::').last
520
+ "<#{class_name} type: #{@type.inspect}, subtype: #{@subtype.inspect}, amount:"\
521
+ " #{@amount.inspect}, direction: #{@direction.inspect}, priority: #{@priority.inspect},"\
522
+ " originating_account_id: #{@originating_account_id.inspect}, receiving_account_id:"\
523
+ " #{@receiving_account_id.inspect}, accounting: #{@accounting.inspect},"\
524
+ " accounting_category_id: #{@accounting_category_id.inspect}, accounting_ledger_class_id:"\
525
+ " #{@accounting_ledger_class_id.inspect}, currency: #{@currency.inspect}, effective_date:"\
526
+ " #{@effective_date.inspect}, description: #{@description.inspect}, statement_descriptor:"\
527
+ " #{@statement_descriptor.inspect}, remittance_information:"\
528
+ " #{@remittance_information.inspect}, purpose: #{@purpose.inspect}, metadata:"\
529
+ " #{@metadata.inspect}, charge_bearer: #{@charge_bearer.inspect},"\
530
+ " foreign_exchange_indicator: #{@foreign_exchange_indicator.inspect},"\
531
+ " foreign_exchange_contract: #{@foreign_exchange_contract.inspect}, nsf_protected:"\
532
+ " #{@nsf_protected.inspect}, originating_party_name: #{@originating_party_name.inspect},"\
533
+ " ultimate_originating_party_name: #{@ultimate_originating_party_name.inspect},"\
534
+ " ultimate_originating_party_identifier: #{@ultimate_originating_party_identifier.inspect},"\
535
+ " ultimate_receiving_party_name: #{@ultimate_receiving_party_name.inspect},"\
536
+ " ultimate_receiving_party_identifier: #{@ultimate_receiving_party_identifier.inspect},"\
537
+ " send_remittance_advice: #{@send_remittance_advice.inspect}, expires_at:"\
538
+ " #{@expires_at.inspect}, status: #{@status.inspect}, counterparty_id:"\
539
+ " #{@counterparty_id.inspect}, fallback_type: #{@fallback_type.inspect}, receiving_account:"\
540
+ " #{@receiving_account.inspect}, line_items: #{@line_items.inspect}>"
541
+ end
542
+ end
543
+ end