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,556 @@
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
+ # PaymentOrderCreateRequest Model.
9
+ class PaymentOrderCreateRequest < 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
+ # Name of the ultimate originator of the payment order.
142
+ # @return [String]
143
+ attr_accessor :ultimate_originating_party_name
144
+
145
+ # Identifier of the ultimate originator of the payment order.
146
+ # @return [String]
147
+ attr_accessor :ultimate_originating_party_identifier
148
+
149
+ # Name of the ultimate funds recipient.
150
+ # @return [String]
151
+ attr_accessor :ultimate_receiving_party_name
152
+
153
+ # Identifier of the ultimate funds recipient.
154
+ # @return [String]
155
+ attr_accessor :ultimate_receiving_party_identifier
156
+
157
+ # Send an email to the counterparty when the payment order is sent to the
158
+ # bank. If `null`, `send_remittance_advice` on the Counterparty is used.
159
+ # @return [TrueClass | FalseClass]
160
+ attr_accessor :send_remittance_advice
161
+
162
+ # RFP payments require an expires_at. This value must be past the
163
+ # effective_date.
164
+ # @return [DateTime]
165
+ attr_accessor :expires_at
166
+
167
+ # A payment type to fallback to if the original type is not valid for the
168
+ # receiving account. Currently, this only supports falling back from RTP to
169
+ # ACH (type=rtp and fallback_type=ach)
170
+ # @return [FallbackTypeEnum]
171
+ attr_accessor :fallback_type
172
+
173
+ # Either `receiving_account` or `receiving_account_id` must be present. When
174
+ # using `receiving_account_id`, you may pass the id of an external account
175
+ # or an internal account.
176
+ # @return [ReceivingAccount1]
177
+ attr_accessor :receiving_account
178
+
179
+ # Either `receiving_account` or `receiving_account_id` must be present. When
180
+ # using `receiving_account_id`, you may pass the id of an external account
181
+ # or an internal account.
182
+ # @return [LedgerTransactionCreateRequest]
183
+ attr_accessor :ledger_transaction
184
+
185
+ # An array of line items that must sum up to the amount of the payment
186
+ # order.
187
+ # @return [Array[LineItemRequest]]
188
+ attr_accessor :line_items
189
+
190
+ # A flag that determines whether a payment order should go through
191
+ # transaction monitoring.
192
+ # @return [TrueClass | FalseClass]
193
+ attr_accessor :transaction_monitoring_enabled
194
+
195
+ # An array of documents to be attached to the payment order. Note that if
196
+ # you attach documents, the request's content type must be
197
+ # `multipart/form-data`.
198
+ # @return [Array[DocumentCreateRequest]]
199
+ attr_accessor :documents
200
+
201
+ # A mapping from model property names to API property names.
202
+ def self.names
203
+ @_hash = {} if @_hash.nil?
204
+ @_hash['type'] = 'type'
205
+ @_hash['subtype'] = 'subtype'
206
+ @_hash['amount'] = 'amount'
207
+ @_hash['direction'] = 'direction'
208
+ @_hash['priority'] = 'priority'
209
+ @_hash['originating_account_id'] = 'originating_account_id'
210
+ @_hash['receiving_account_id'] = 'receiving_account_id'
211
+ @_hash['accounting'] = 'accounting'
212
+ @_hash['accounting_category_id'] = 'accounting_category_id'
213
+ @_hash['accounting_ledger_class_id'] = 'accounting_ledger_class_id'
214
+ @_hash['currency'] = 'currency'
215
+ @_hash['effective_date'] = 'effective_date'
216
+ @_hash['description'] = 'description'
217
+ @_hash['statement_descriptor'] = 'statement_descriptor'
218
+ @_hash['remittance_information'] = 'remittance_information'
219
+ @_hash['purpose'] = 'purpose'
220
+ @_hash['metadata'] = 'metadata'
221
+ @_hash['charge_bearer'] = 'charge_bearer'
222
+ @_hash['foreign_exchange_indicator'] = 'foreign_exchange_indicator'
223
+ @_hash['foreign_exchange_contract'] = 'foreign_exchange_contract'
224
+ @_hash['nsf_protected'] = 'nsf_protected'
225
+ @_hash['originating_party_name'] = 'originating_party_name'
226
+ @_hash['ultimate_originating_party_name'] =
227
+ 'ultimate_originating_party_name'
228
+ @_hash['ultimate_originating_party_identifier'] =
229
+ 'ultimate_originating_party_identifier'
230
+ @_hash['ultimate_receiving_party_name'] =
231
+ 'ultimate_receiving_party_name'
232
+ @_hash['ultimate_receiving_party_identifier'] =
233
+ 'ultimate_receiving_party_identifier'
234
+ @_hash['send_remittance_advice'] = 'send_remittance_advice'
235
+ @_hash['expires_at'] = 'expires_at'
236
+ @_hash['fallback_type'] = 'fallback_type'
237
+ @_hash['receiving_account'] = 'receiving_account'
238
+ @_hash['ledger_transaction'] = 'ledger_transaction'
239
+ @_hash['line_items'] = 'line_items'
240
+ @_hash['transaction_monitoring_enabled'] =
241
+ 'transaction_monitoring_enabled'
242
+ @_hash['documents'] = 'documents'
243
+ @_hash
244
+ end
245
+
246
+ # An array for optional fields
247
+ def self.optionals
248
+ %w[
249
+ subtype
250
+ priority
251
+ receiving_account_id
252
+ accounting
253
+ accounting_category_id
254
+ accounting_ledger_class_id
255
+ currency
256
+ effective_date
257
+ description
258
+ statement_descriptor
259
+ remittance_information
260
+ purpose
261
+ metadata
262
+ charge_bearer
263
+ foreign_exchange_indicator
264
+ foreign_exchange_contract
265
+ nsf_protected
266
+ originating_party_name
267
+ ultimate_originating_party_name
268
+ ultimate_originating_party_identifier
269
+ ultimate_receiving_party_name
270
+ ultimate_receiving_party_identifier
271
+ send_remittance_advice
272
+ expires_at
273
+ fallback_type
274
+ receiving_account
275
+ ledger_transaction
276
+ line_items
277
+ transaction_monitoring_enabled
278
+ documents
279
+ ]
280
+ end
281
+
282
+ # An array for nullable fields
283
+ def self.nullables
284
+ %w[
285
+ subtype
286
+ accounting_category_id
287
+ accounting_ledger_class_id
288
+ description
289
+ statement_descriptor
290
+ remittance_information
291
+ purpose
292
+ charge_bearer
293
+ foreign_exchange_indicator
294
+ foreign_exchange_contract
295
+ originating_party_name
296
+ ultimate_originating_party_name
297
+ ultimate_originating_party_identifier
298
+ ultimate_receiving_party_name
299
+ ultimate_receiving_party_identifier
300
+ send_remittance_advice
301
+ expires_at
302
+ ]
303
+ end
304
+
305
+ def initialize(type = nil, amount = nil, direction = nil,
306
+ originating_account_id = nil, subtype = SKIP,
307
+ priority = SKIP, receiving_account_id = SKIP,
308
+ accounting = SKIP, accounting_category_id = SKIP,
309
+ accounting_ledger_class_id = SKIP, currency = SKIP,
310
+ effective_date = SKIP, description = SKIP,
311
+ statement_descriptor = SKIP, remittance_information = SKIP,
312
+ purpose = SKIP, metadata = SKIP, charge_bearer = SKIP,
313
+ foreign_exchange_indicator = SKIP,
314
+ foreign_exchange_contract = SKIP, nsf_protected = SKIP,
315
+ originating_party_name = SKIP,
316
+ ultimate_originating_party_name = SKIP,
317
+ ultimate_originating_party_identifier = SKIP,
318
+ ultimate_receiving_party_name = SKIP,
319
+ ultimate_receiving_party_identifier = SKIP,
320
+ send_remittance_advice = SKIP, expires_at = SKIP,
321
+ fallback_type = SKIP, receiving_account = SKIP,
322
+ ledger_transaction = SKIP, line_items = SKIP,
323
+ transaction_monitoring_enabled = SKIP, documents = SKIP)
324
+ @type = type
325
+ @subtype = subtype unless subtype == SKIP
326
+ @amount = amount
327
+ @direction = direction
328
+ @priority = priority unless priority == SKIP
329
+ @originating_account_id = originating_account_id
330
+ @receiving_account_id = receiving_account_id unless receiving_account_id == SKIP
331
+ @accounting = accounting unless accounting == SKIP
332
+ @accounting_category_id = accounting_category_id unless accounting_category_id == SKIP
333
+ unless accounting_ledger_class_id == SKIP
334
+ @accounting_ledger_class_id =
335
+ accounting_ledger_class_id
336
+ end
337
+ @currency = currency unless currency == SKIP
338
+ @effective_date = effective_date unless effective_date == SKIP
339
+ @description = description unless description == SKIP
340
+ @statement_descriptor = statement_descriptor unless statement_descriptor == SKIP
341
+ @remittance_information = remittance_information unless remittance_information == SKIP
342
+ @purpose = purpose unless purpose == SKIP
343
+ @metadata = metadata unless metadata == SKIP
344
+ @charge_bearer = charge_bearer unless charge_bearer == SKIP
345
+ unless foreign_exchange_indicator == SKIP
346
+ @foreign_exchange_indicator =
347
+ foreign_exchange_indicator
348
+ end
349
+ unless foreign_exchange_contract == SKIP
350
+ @foreign_exchange_contract =
351
+ foreign_exchange_contract
352
+ end
353
+ @nsf_protected = nsf_protected unless nsf_protected == SKIP
354
+ @originating_party_name = originating_party_name unless originating_party_name == SKIP
355
+ unless ultimate_originating_party_name == SKIP
356
+ @ultimate_originating_party_name =
357
+ ultimate_originating_party_name
358
+ end
359
+ unless ultimate_originating_party_identifier == SKIP
360
+ @ultimate_originating_party_identifier =
361
+ ultimate_originating_party_identifier
362
+ end
363
+ unless ultimate_receiving_party_name == SKIP
364
+ @ultimate_receiving_party_name =
365
+ ultimate_receiving_party_name
366
+ end
367
+ unless ultimate_receiving_party_identifier == SKIP
368
+ @ultimate_receiving_party_identifier =
369
+ ultimate_receiving_party_identifier
370
+ end
371
+ @send_remittance_advice = send_remittance_advice unless send_remittance_advice == SKIP
372
+ @expires_at = expires_at unless expires_at == SKIP
373
+ @fallback_type = fallback_type unless fallback_type == SKIP
374
+ @receiving_account = receiving_account unless receiving_account == SKIP
375
+ @ledger_transaction = ledger_transaction unless ledger_transaction == SKIP
376
+ @line_items = line_items unless line_items == SKIP
377
+ unless transaction_monitoring_enabled == SKIP
378
+ @transaction_monitoring_enabled =
379
+ transaction_monitoring_enabled
380
+ end
381
+ @documents = documents unless documents == SKIP
382
+ end
383
+
384
+ # Creates an instance of the object from a hash.
385
+ def self.from_hash(hash)
386
+ return nil unless hash
387
+
388
+ # Extract variables from the hash.
389
+ type = hash.key?('type') ? hash['type'] : nil
390
+ amount = hash.key?('amount') ? hash['amount'] : nil
391
+ direction = hash.key?('direction') ? hash['direction'] : nil
392
+ originating_account_id =
393
+ hash.key?('originating_account_id') ? hash['originating_account_id'] : nil
394
+ subtype = hash.key?('subtype') ? hash['subtype'] : SKIP
395
+ priority = hash.key?('priority') ? hash['priority'] : SKIP
396
+ receiving_account_id =
397
+ hash.key?('receiving_account_id') ? hash['receiving_account_id'] : SKIP
398
+ accounting = Accounting.from_hash(hash['accounting']) if hash['accounting']
399
+ accounting_category_id =
400
+ hash.key?('accounting_category_id') ? hash['accounting_category_id'] : SKIP
401
+ accounting_ledger_class_id =
402
+ hash.key?('accounting_ledger_class_id') ? hash['accounting_ledger_class_id'] : SKIP
403
+ currency = hash.key?('currency') ? hash['currency'] : SKIP
404
+ effective_date =
405
+ hash.key?('effective_date') ? hash['effective_date'] : SKIP
406
+ description = hash.key?('description') ? hash['description'] : SKIP
407
+ statement_descriptor =
408
+ hash.key?('statement_descriptor') ? hash['statement_descriptor'] : SKIP
409
+ remittance_information =
410
+ hash.key?('remittance_information') ? hash['remittance_information'] : SKIP
411
+ purpose = hash.key?('purpose') ? hash['purpose'] : SKIP
412
+ metadata = hash.key?('metadata') ? hash['metadata'] : SKIP
413
+ charge_bearer = hash.key?('charge_bearer') ? hash['charge_bearer'] : SKIP
414
+ foreign_exchange_indicator =
415
+ hash.key?('foreign_exchange_indicator') ? hash['foreign_exchange_indicator'] : SKIP
416
+ foreign_exchange_contract =
417
+ hash.key?('foreign_exchange_contract') ? hash['foreign_exchange_contract'] : SKIP
418
+ nsf_protected = hash.key?('nsf_protected') ? hash['nsf_protected'] : SKIP
419
+ originating_party_name =
420
+ hash.key?('originating_party_name') ? hash['originating_party_name'] : SKIP
421
+ ultimate_originating_party_name =
422
+ hash.key?('ultimate_originating_party_name') ? hash['ultimate_originating_party_name'] : SKIP
423
+ ultimate_originating_party_identifier =
424
+ hash.key?('ultimate_originating_party_identifier') ? hash['ultimate_originating_party_identifier'] : SKIP
425
+ ultimate_receiving_party_name =
426
+ hash.key?('ultimate_receiving_party_name') ? hash['ultimate_receiving_party_name'] : SKIP
427
+ ultimate_receiving_party_identifier =
428
+ hash.key?('ultimate_receiving_party_identifier') ? hash['ultimate_receiving_party_identifier'] : SKIP
429
+ send_remittance_advice =
430
+ hash.key?('send_remittance_advice') ? hash['send_remittance_advice'] : SKIP
431
+ expires_at = if hash.key?('expires_at')
432
+ (DateTimeHelper.from_rfc3339(hash['expires_at']) if hash['expires_at'])
433
+ else
434
+ SKIP
435
+ end
436
+ fallback_type = hash.key?('fallback_type') ? hash['fallback_type'] : SKIP
437
+ receiving_account = ReceivingAccount1.from_hash(hash['receiving_account']) if
438
+ hash['receiving_account']
439
+ ledger_transaction = LedgerTransactionCreateRequest.from_hash(hash['ledger_transaction']) if
440
+ hash['ledger_transaction']
441
+ # Parameter is an array, so we need to iterate through it
442
+ line_items = nil
443
+ unless hash['line_items'].nil?
444
+ line_items = []
445
+ hash['line_items'].each do |structure|
446
+ line_items << (LineItemRequest.from_hash(structure) if structure)
447
+ end
448
+ end
449
+
450
+ line_items = SKIP unless hash.key?('line_items')
451
+ transaction_monitoring_enabled =
452
+ hash.key?('transaction_monitoring_enabled') ? hash['transaction_monitoring_enabled'] : SKIP
453
+ # Parameter is an array, so we need to iterate through it
454
+ documents = nil
455
+ unless hash['documents'].nil?
456
+ documents = []
457
+ hash['documents'].each do |structure|
458
+ documents << (DocumentCreateRequest.from_hash(structure) if structure)
459
+ end
460
+ end
461
+
462
+ documents = SKIP unless hash.key?('documents')
463
+
464
+ # Create object from extracted values.
465
+ PaymentOrderCreateRequest.new(type,
466
+ amount,
467
+ direction,
468
+ originating_account_id,
469
+ subtype,
470
+ priority,
471
+ receiving_account_id,
472
+ accounting,
473
+ accounting_category_id,
474
+ accounting_ledger_class_id,
475
+ currency,
476
+ effective_date,
477
+ description,
478
+ statement_descriptor,
479
+ remittance_information,
480
+ purpose,
481
+ metadata,
482
+ charge_bearer,
483
+ foreign_exchange_indicator,
484
+ foreign_exchange_contract,
485
+ nsf_protected,
486
+ originating_party_name,
487
+ ultimate_originating_party_name,
488
+ ultimate_originating_party_identifier,
489
+ ultimate_receiving_party_name,
490
+ ultimate_receiving_party_identifier,
491
+ send_remittance_advice,
492
+ expires_at,
493
+ fallback_type,
494
+ receiving_account,
495
+ ledger_transaction,
496
+ line_items,
497
+ transaction_monitoring_enabled,
498
+ documents)
499
+ end
500
+
501
+ def to_custom_expires_at
502
+ DateTimeHelper.to_rfc3339(expires_at)
503
+ end
504
+
505
+ # Provides a human-readable string representation of the object.
506
+ def to_s
507
+ class_name = self.class.name.split('::').last
508
+ "<#{class_name} type: #{@type}, subtype: #{@subtype}, amount: #{@amount}, direction:"\
509
+ " #{@direction}, priority: #{@priority}, originating_account_id: #{@originating_account_id},"\
510
+ " receiving_account_id: #{@receiving_account_id}, accounting: #{@accounting},"\
511
+ " accounting_category_id: #{@accounting_category_id}, accounting_ledger_class_id:"\
512
+ " #{@accounting_ledger_class_id}, currency: #{@currency}, effective_date:"\
513
+ " #{@effective_date}, description: #{@description}, statement_descriptor:"\
514
+ " #{@statement_descriptor}, remittance_information: #{@remittance_information}, purpose:"\
515
+ " #{@purpose}, metadata: #{@metadata}, charge_bearer: #{@charge_bearer},"\
516
+ " foreign_exchange_indicator: #{@foreign_exchange_indicator}, foreign_exchange_contract:"\
517
+ " #{@foreign_exchange_contract}, nsf_protected: #{@nsf_protected}, originating_party_name:"\
518
+ " #{@originating_party_name}, ultimate_originating_party_name:"\
519
+ " #{@ultimate_originating_party_name}, ultimate_originating_party_identifier:"\
520
+ " #{@ultimate_originating_party_identifier}, ultimate_receiving_party_name:"\
521
+ " #{@ultimate_receiving_party_name}, ultimate_receiving_party_identifier:"\
522
+ " #{@ultimate_receiving_party_identifier}, send_remittance_advice:"\
523
+ " #{@send_remittance_advice}, expires_at: #{@expires_at}, fallback_type: #{@fallback_type},"\
524
+ " receiving_account: #{@receiving_account}, ledger_transaction: #{@ledger_transaction},"\
525
+ " line_items: #{@line_items}, transaction_monitoring_enabled:"\
526
+ " #{@transaction_monitoring_enabled}, documents: #{@documents}>"
527
+ end
528
+
529
+ # Provides a debugging-friendly string with detailed object information.
530
+ def inspect
531
+ class_name = self.class.name.split('::').last
532
+ "<#{class_name} type: #{@type.inspect}, subtype: #{@subtype.inspect}, amount:"\
533
+ " #{@amount.inspect}, direction: #{@direction.inspect}, priority: #{@priority.inspect},"\
534
+ " originating_account_id: #{@originating_account_id.inspect}, receiving_account_id:"\
535
+ " #{@receiving_account_id.inspect}, accounting: #{@accounting.inspect},"\
536
+ " accounting_category_id: #{@accounting_category_id.inspect}, accounting_ledger_class_id:"\
537
+ " #{@accounting_ledger_class_id.inspect}, currency: #{@currency.inspect}, effective_date:"\
538
+ " #{@effective_date.inspect}, description: #{@description.inspect}, statement_descriptor:"\
539
+ " #{@statement_descriptor.inspect}, remittance_information:"\
540
+ " #{@remittance_information.inspect}, purpose: #{@purpose.inspect}, metadata:"\
541
+ " #{@metadata.inspect}, charge_bearer: #{@charge_bearer.inspect},"\
542
+ " foreign_exchange_indicator: #{@foreign_exchange_indicator.inspect},"\
543
+ " foreign_exchange_contract: #{@foreign_exchange_contract.inspect}, nsf_protected:"\
544
+ " #{@nsf_protected.inspect}, originating_party_name: #{@originating_party_name.inspect},"\
545
+ " ultimate_originating_party_name: #{@ultimate_originating_party_name.inspect},"\
546
+ " ultimate_originating_party_identifier: #{@ultimate_originating_party_identifier.inspect},"\
547
+ " ultimate_receiving_party_name: #{@ultimate_receiving_party_name.inspect},"\
548
+ " ultimate_receiving_party_identifier: #{@ultimate_receiving_party_identifier.inspect},"\
549
+ " send_remittance_advice: #{@send_remittance_advice.inspect}, expires_at:"\
550
+ " #{@expires_at.inspect}, fallback_type: #{@fallback_type.inspect}, receiving_account:"\
551
+ " #{@receiving_account.inspect}, ledger_transaction: #{@ledger_transaction.inspect},"\
552
+ " line_items: #{@line_items.inspect}, transaction_monitoring_enabled:"\
553
+ " #{@transaction_monitoring_enabled.inspect}, documents: #{@documents.inspect}>"
554
+ end
555
+ end
556
+ end