modern_treasury 0.1.0.pre.alpha.21 → 0.1.0.pre.alpha.22

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 (167) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -0
  3. data/README.md +1 -1
  4. data/lib/modern_treasury/errors.rb +22 -0
  5. data/lib/modern_treasury/internal/transport/base_client.rb +10 -2
  6. data/lib/modern_treasury/internal/type/array_of.rb +6 -1
  7. data/lib/modern_treasury/internal/type/base_model.rb +77 -23
  8. data/lib/modern_treasury/internal/type/boolean.rb +7 -1
  9. data/lib/modern_treasury/internal/type/converter.rb +42 -34
  10. data/lib/modern_treasury/internal/type/enum.rb +10 -2
  11. data/lib/modern_treasury/internal/type/file_input.rb +6 -1
  12. data/lib/modern_treasury/internal/type/hash_of.rb +6 -1
  13. data/lib/modern_treasury/internal/type/union.rb +12 -7
  14. data/lib/modern_treasury/internal/type/unknown.rb +7 -1
  15. data/lib/modern_treasury/models/bulk_request_create_params.rb +143 -18
  16. data/lib/modern_treasury/models/bulk_result.rb +5 -3
  17. data/lib/modern_treasury/models/counterparty_create_params.rb +1 -0
  18. data/lib/modern_treasury/models/external_account_create_params.rb +1 -0
  19. data/lib/modern_treasury/models/incoming_payment_detail.rb +1 -0
  20. data/lib/modern_treasury/models/internal_account.rb +146 -3
  21. data/lib/modern_treasury/models/internal_account_create_params.rb +138 -1
  22. data/lib/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rb +23 -0
  23. data/lib/modern_treasury/models/invoice.rb +10 -1
  24. data/lib/modern_treasury/models/ledger_account.rb +9 -1
  25. data/lib/modern_treasury/models/ledger_account_category.rb +9 -1
  26. data/lib/modern_treasury/models/ledger_account_category_list_params.rb +8 -1
  27. data/lib/modern_treasury/models/ledger_account_list_params.rb +15 -1
  28. data/lib/modern_treasury/models/payment_order.rb +21 -9
  29. data/lib/modern_treasury/models/payment_order_create_async_params.rb +8 -7
  30. data/lib/modern_treasury/models/payment_order_create_params.rb +8 -7
  31. data/lib/modern_treasury/models/payment_order_list_params.rb +9 -1
  32. data/lib/modern_treasury/models/payment_order_update_params.rb +9 -7
  33. data/lib/modern_treasury/models/payment_reference.rb +4 -1
  34. data/lib/modern_treasury/models/return_create_params.rb +75 -1
  35. data/lib/modern_treasury/models/return_object.rb +80 -2
  36. data/lib/modern_treasury/models/routing_detail.rb +1 -0
  37. data/lib/modern_treasury/models/routing_detail_create_params.rb +1 -0
  38. data/lib/modern_treasury/models/transaction.rb +1 -0
  39. data/lib/modern_treasury/models/transaction_create_params.rb +9 -1
  40. data/lib/modern_treasury/models/transactions/transaction_line_item.rb +9 -1
  41. data/lib/modern_treasury/models/validation_validate_routing_number_params.rb +1 -0
  42. data/lib/modern_treasury/models/virtual_account_create_params.rb +1 -0
  43. data/lib/modern_treasury/models.rb +0 -18
  44. data/lib/modern_treasury/resources/bulk_requests.rb +1 -1
  45. data/lib/modern_treasury/resources/internal_accounts/balance_reports.rb +2 -2
  46. data/lib/modern_treasury/resources/internal_accounts.rb +3 -1
  47. data/lib/modern_treasury/resources/ledger_account_categories.rb +3 -1
  48. data/lib/modern_treasury/resources/ledger_accounts.rb +5 -1
  49. data/lib/modern_treasury/resources/ledger_event_handlers.rb +0 -111
  50. data/lib/modern_treasury/resources/ledgerable_events.rb +0 -51
  51. data/lib/modern_treasury/resources/payment_orders.rb +6 -4
  52. data/lib/modern_treasury/resources/returns.rb +3 -1
  53. data/lib/modern_treasury/resources/transactions.rb +3 -1
  54. data/lib/modern_treasury/version.rb +1 -1
  55. data/lib/modern_treasury.rb +0 -9
  56. data/rbi/modern_treasury/errors.rbi +16 -0
  57. data/rbi/modern_treasury/internal/type/boolean.rbi +2 -0
  58. data/rbi/modern_treasury/internal/type/converter.rbi +15 -15
  59. data/rbi/modern_treasury/internal/type/union.rbi +5 -0
  60. data/rbi/modern_treasury/internal/type/unknown.rbi +2 -0
  61. data/rbi/modern_treasury/models/bulk_request_create_params.rbi +234 -18
  62. data/rbi/modern_treasury/models/bulk_result.rbi +2 -0
  63. data/rbi/modern_treasury/models/counterparty_create_params.rbi +5 -0
  64. data/rbi/modern_treasury/models/external_account_create_params.rbi +5 -0
  65. data/rbi/modern_treasury/models/incoming_payment_detail.rbi +5 -0
  66. data/rbi/modern_treasury/models/internal_account.rbi +328 -5
  67. data/rbi/modern_treasury/models/internal_account_create_params.rbi +333 -0
  68. data/rbi/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbi +37 -0
  69. data/rbi/modern_treasury/models/invoice.rbi +10 -0
  70. data/rbi/modern_treasury/models/ledger_account.rbi +8 -0
  71. data/rbi/modern_treasury/models/ledger_account_category.rbi +8 -0
  72. data/rbi/modern_treasury/models/ledger_account_category_list_params.rbi +9 -0
  73. data/rbi/modern_treasury/models/ledger_account_list_params.rbi +22 -0
  74. data/rbi/modern_treasury/models/payment_order.rbi +39 -14
  75. data/rbi/modern_treasury/models/payment_order_create_async_params.rbi +14 -9
  76. data/rbi/modern_treasury/models/payment_order_create_params.rbi +14 -9
  77. data/rbi/modern_treasury/models/payment_order_list_params.rbi +14 -0
  78. data/rbi/modern_treasury/models/payment_order_update_params.rbi +19 -9
  79. data/rbi/modern_treasury/models/payment_reference.rbi +20 -5
  80. data/rbi/modern_treasury/models/return_create_params.rbi +114 -0
  81. data/rbi/modern_treasury/models/return_object.rbi +131 -5
  82. data/rbi/modern_treasury/models/routing_detail.rbi +5 -0
  83. data/rbi/modern_treasury/models/routing_detail_create_params.rbi +5 -0
  84. data/rbi/modern_treasury/models/transaction.rbi +5 -0
  85. data/rbi/modern_treasury/models/transaction_create_params.rbi +8 -0
  86. data/rbi/modern_treasury/models/transactions/transaction_line_item.rbi +8 -0
  87. data/rbi/modern_treasury/models/validation_validate_routing_number_params.rbi +5 -0
  88. data/rbi/modern_treasury/models/virtual_account_create_params.rbi +5 -0
  89. data/rbi/modern_treasury/models.rbi +0 -25
  90. data/rbi/modern_treasury/resources/bulk_requests.rbi +1 -0
  91. data/rbi/modern_treasury/resources/internal_accounts/balance_reports.rbi +7 -3
  92. data/rbi/modern_treasury/resources/internal_accounts.rbi +7 -0
  93. data/rbi/modern_treasury/resources/ledger_account_categories.rbi +2 -0
  94. data/rbi/modern_treasury/resources/ledger_accounts.rbi +4 -0
  95. data/rbi/modern_treasury/resources/ledger_event_handlers.rbi +0 -97
  96. data/rbi/modern_treasury/resources/ledgerable_events.rbi +0 -38
  97. data/rbi/modern_treasury/resources/payment_orders.rbi +11 -9
  98. data/rbi/modern_treasury/resources/returns.rbi +6 -0
  99. data/rbi/modern_treasury/resources/transactions.rbi +3 -0
  100. data/sig/modern_treasury/errors.rbs +9 -0
  101. data/sig/modern_treasury/internal/type/converter.rbs +7 -1
  102. data/sig/modern_treasury/models/bulk_request_create_params.rbs +101 -0
  103. data/sig/modern_treasury/models/bulk_result.rbs +1 -0
  104. data/sig/modern_treasury/models/counterparty_create_params.rbs +2 -0
  105. data/sig/modern_treasury/models/external_account_create_params.rbs +2 -0
  106. data/sig/modern_treasury/models/incoming_payment_detail.rbs +2 -0
  107. data/sig/modern_treasury/models/internal_account.rbs +147 -3
  108. data/sig/modern_treasury/models/internal_account_create_params.rbs +143 -0
  109. data/sig/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbs +10 -0
  110. data/sig/modern_treasury/models/invoice.rbs +5 -0
  111. data/sig/modern_treasury/models/ledger_account.rbs +5 -0
  112. data/sig/modern_treasury/models/ledger_account_category.rbs +5 -0
  113. data/sig/modern_treasury/models/ledger_account_category_list_params.rbs +7 -0
  114. data/sig/modern_treasury/models/ledger_account_list_params.rbs +16 -0
  115. data/sig/modern_treasury/models/payment_order.rbs +15 -2
  116. data/sig/modern_treasury/models/payment_order_create_async_params.rbs +2 -0
  117. data/sig/modern_treasury/models/payment_order_create_params.rbs +2 -0
  118. data/sig/modern_treasury/models/payment_order_list_params.rbs +9 -0
  119. data/sig/modern_treasury/models/payment_order_update_params.rbs +4 -0
  120. data/sig/modern_treasury/models/payment_reference.rbs +8 -2
  121. data/sig/modern_treasury/models/return_create_params.rbs +47 -0
  122. data/sig/modern_treasury/models/return_object.rbs +55 -2
  123. data/sig/modern_treasury/models/routing_detail.rbs +2 -0
  124. data/sig/modern_treasury/models/routing_detail_create_params.rbs +2 -0
  125. data/sig/modern_treasury/models/transaction.rbs +2 -0
  126. data/sig/modern_treasury/models/transaction_create_params.rbs +5 -0
  127. data/sig/modern_treasury/models/transactions/transaction_line_item.rbs +5 -0
  128. data/sig/modern_treasury/models/validation_validate_routing_number_params.rbs +2 -0
  129. data/sig/modern_treasury/models/virtual_account_create_params.rbs +2 -0
  130. data/sig/modern_treasury/models.rbs +0 -18
  131. data/sig/modern_treasury/resources/internal_accounts/balance_reports.rbs +1 -1
  132. data/sig/modern_treasury/resources/internal_accounts.rbs +1 -0
  133. data/sig/modern_treasury/resources/ledger_account_categories.rbs +1 -0
  134. data/sig/modern_treasury/resources/ledger_accounts.rbs +2 -0
  135. data/sig/modern_treasury/resources/ledger_event_handlers.rbs +0 -30
  136. data/sig/modern_treasury/resources/ledgerable_events.rbs +0 -13
  137. data/sig/modern_treasury/resources/payment_orders.rbs +1 -0
  138. data/sig/modern_treasury/resources/returns.rbs +1 -0
  139. data/sig/modern_treasury/resources/transactions.rbs +1 -0
  140. metadata +2 -29
  141. data/lib/modern_treasury/models/ledger_event_handler.rb +0 -222
  142. data/lib/modern_treasury/models/ledger_event_handler_create_params.rb +0 -177
  143. data/lib/modern_treasury/models/ledger_event_handler_delete_params.rb +0 -14
  144. data/lib/modern_treasury/models/ledger_event_handler_list_params.rb +0 -58
  145. data/lib/modern_treasury/models/ledger_event_handler_retrieve_params.rb +0 -14
  146. data/lib/modern_treasury/models/ledger_event_handler_variable.rb +0 -59
  147. data/lib/modern_treasury/models/ledgerable_event.rb +0 -92
  148. data/lib/modern_treasury/models/ledgerable_event_create_params.rb +0 -50
  149. data/lib/modern_treasury/models/ledgerable_event_retrieve_params.rb +0 -14
  150. data/rbi/modern_treasury/models/ledger_event_handler.rbi +0 -322
  151. data/rbi/modern_treasury/models/ledger_event_handler_create_params.rbi +0 -303
  152. data/rbi/modern_treasury/models/ledger_event_handler_delete_params.rbi +0 -32
  153. data/rbi/modern_treasury/models/ledger_event_handler_list_params.rbi +0 -92
  154. data/rbi/modern_treasury/models/ledger_event_handler_retrieve_params.rbi +0 -32
  155. data/rbi/modern_treasury/models/ledger_event_handler_variable.rbi +0 -98
  156. data/rbi/modern_treasury/models/ledgerable_event.rbi +0 -108
  157. data/rbi/modern_treasury/models/ledgerable_event_create_params.rbi +0 -75
  158. data/rbi/modern_treasury/models/ledgerable_event_retrieve_params.rbi +0 -32
  159. data/sig/modern_treasury/models/ledger_event_handler.rbs +0 -149
  160. data/sig/modern_treasury/models/ledger_event_handler_create_params.rbs +0 -127
  161. data/sig/modern_treasury/models/ledger_event_handler_delete_params.rbs +0 -15
  162. data/sig/modern_treasury/models/ledger_event_handler_list_params.rbs +0 -54
  163. data/sig/modern_treasury/models/ledger_event_handler_retrieve_params.rbs +0 -15
  164. data/sig/modern_treasury/models/ledger_event_handler_variable.rbs +0 -36
  165. data/sig/modern_treasury/models/ledgerable_event.rbs +0 -65
  166. data/sig/modern_treasury/models/ledgerable_event_create_params.rbs +0 -43
  167. data/sig/modern_treasury/models/ledgerable_event_retrieve_params.rbs +0 -15
@@ -3,57 +3,6 @@
3
3
  module ModernTreasury
4
4
  module Resources
5
5
  class LedgerableEvents
6
- # Some parameter documentations has been truncated, see
7
- # {ModernTreasury::Models::LedgerableEventCreateParams} for more details.
8
- #
9
- # Create a ledgerable event.
10
- #
11
- # @overload create(name:, custom_data: nil, description: nil, metadata: nil, request_options: {})
12
- #
13
- # @param name [String] Name of the ledgerable event.
14
- #
15
- # @param custom_data [Object, nil] Additionally data to be used by the Ledger Event Handler.
16
- #
17
- # @param description [String, nil] Description of the ledgerable event.
18
- #
19
- # @param metadata [Hash{Symbol=>String}] Additional data represented as key-value pairs. Both the key and value must be s
20
- #
21
- # @param request_options [ModernTreasury::RequestOptions, Hash{Symbol=>Object}, nil]
22
- #
23
- # @return [ModernTreasury::Models::LedgerableEvent]
24
- #
25
- # @see ModernTreasury::Models::LedgerableEventCreateParams
26
- def create(params)
27
- parsed, options = ModernTreasury::LedgerableEventCreateParams.dump_request(params)
28
- @client.request(
29
- method: :post,
30
- path: "api/ledgerable_events",
31
- body: parsed,
32
- model: ModernTreasury::LedgerableEvent,
33
- options: options
34
- )
35
- end
36
-
37
- # Get details on a single ledgerable event.
38
- #
39
- # @overload retrieve(id, request_options: {})
40
- #
41
- # @param id [String] id
42
- #
43
- # @param request_options [ModernTreasury::RequestOptions, Hash{Symbol=>Object}, nil]
44
- #
45
- # @return [ModernTreasury::Models::LedgerableEvent]
46
- #
47
- # @see ModernTreasury::Models::LedgerableEventRetrieveParams
48
- def retrieve(id, params = {})
49
- @client.request(
50
- method: :get,
51
- path: ["api/ledgerable_events/%1$s", id],
52
- model: ModernTreasury::LedgerableEvent,
53
- options: params[:request_options]
54
- )
55
- end
56
-
57
6
  # @api private
58
7
  #
59
8
  # @param client [ModernTreasury::Client]
@@ -27,7 +27,7 @@ module ModernTreasury
27
27
  #
28
28
  # @param accounting_ledger_class_id [String, nil] The ID of one of your accounting ledger classes. Note that these will only be ac
29
29
  #
30
- # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderCreateParams::ChargeBearer, nil] The party that will pay the fees for the payment order. Only applies to wire pay
30
+ # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderCreateParams::ChargeBearer, nil] The party that will pay the fees for the payment order. See https://docs.modernt
31
31
  #
32
32
  # @param currency [Symbol, ModernTreasury::Models::Currency] Defaults to the currency of the originating account.
33
33
  #
@@ -137,7 +137,7 @@ module ModernTreasury
137
137
  #
138
138
  # @param amount [Integer] Value in specified currency's smallest unit. e.g. $10 would be represented as 10
139
139
  #
140
- # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderUpdateParams::ChargeBearer, nil] The party that will pay the fees for the payment order. Only applies to wire pay
140
+ # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderUpdateParams::ChargeBearer, nil] The party that will pay the fees for the payment order. See https://docs.modernt
141
141
  #
142
142
  # @param counterparty_id [String, nil] Required when receiving_account_id is passed the ID of an external account.
143
143
  #
@@ -218,7 +218,7 @@ module ModernTreasury
218
218
  #
219
219
  # Get a list of all payment orders
220
220
  #
221
- # @overload list(after_cursor: nil, counterparty_id: nil, created_at_end: nil, created_at_start: nil, direction: nil, effective_date_end: nil, effective_date_start: nil, metadata: nil, originating_account_id: nil, per_page: nil, priority: nil, process_after_end: nil, process_after_start: nil, reference_number: nil, status: nil, transaction_id: nil, type: nil, request_options: {})
221
+ # @overload list(after_cursor: nil, counterparty_id: nil, created_at_end: nil, created_at_start: nil, direction: nil, effective_date_end: nil, effective_date_start: nil, external_id: nil, metadata: nil, originating_account_id: nil, per_page: nil, priority: nil, process_after_end: nil, process_after_start: nil, reference_number: nil, status: nil, transaction_id: nil, type: nil, request_options: {})
222
222
  #
223
223
  # @param after_cursor [String, nil]
224
224
  #
@@ -234,6 +234,8 @@ module ModernTreasury
234
234
  #
235
235
  # @param effective_date_start [Date] An inclusive lower bound for searching effective_date
236
236
  #
237
+ # @param external_id [String]
238
+ #
237
239
  # @param metadata [Hash{Symbol=>String}] For example, if you want to query for records with metadata key `Type` and value
238
240
  #
239
241
  # @param originating_account_id [String]
@@ -292,7 +294,7 @@ module ModernTreasury
292
294
  #
293
295
  # @param accounting_ledger_class_id [String, nil] The ID of one of your accounting ledger classes. Note that these will only be ac
294
296
  #
295
- # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderCreateAsyncParams::ChargeBearer, nil] The party that will pay the fees for the payment order. Only applies to wire pay
297
+ # @param charge_bearer [Symbol, ModernTreasury::Models::PaymentOrderCreateAsyncParams::ChargeBearer, nil] The party that will pay the fees for the payment order. See https://docs.modernt
296
298
  #
297
299
  # @param currency [Symbol, ModernTreasury::Models::Currency] Defaults to the currency of the originating account.
298
300
  #
@@ -8,7 +8,7 @@ module ModernTreasury
8
8
  #
9
9
  # Create a return.
10
10
  #
11
- # @overload create(returnable_id:, returnable_type:, additional_information: nil, code: nil, data: nil, date_of_death: nil, reason: nil, request_options: {})
11
+ # @overload create(returnable_id:, returnable_type:, additional_information: nil, code: nil, corrections: nil, data: nil, date_of_death: nil, reason: nil, request_options: {})
12
12
  #
13
13
  # @param returnable_id [String, nil] The ID of the object being returned or `null`.
14
14
  #
@@ -18,6 +18,8 @@ module ModernTreasury
18
18
  #
19
19
  # @param code [Symbol, ModernTreasury::Models::ReturnCreateParams::Code, nil] The return code. For ACH returns, this is the required ACH return code.
20
20
  #
21
+ # @param corrections [ModernTreasury::Models::ReturnCreateParams::Corrections, nil] Only relevant for ACH NOC returns. This is an object containing all of the new a
22
+ #
21
23
  # @param data [Object, nil] The raw data from the return file that we get from the bank.
22
24
  #
23
25
  # @param date_of_death [Date, nil] If the return code is `R14` or `R15` this is the date the deceased counterparty
@@ -11,7 +11,7 @@ module ModernTreasury
11
11
  #
12
12
  # create transaction
13
13
  #
14
- # @overload create(amount:, as_of_date:, direction:, internal_account_id:, vendor_code:, vendor_code_type:, metadata: nil, posted: nil, type: nil, vendor_description: nil, request_options: {})
14
+ # @overload create(amount:, as_of_date:, direction:, internal_account_id:, vendor_code:, vendor_code_type:, metadata: nil, posted: nil, type: nil, vendor_customer_id: nil, vendor_description: nil, request_options: {})
15
15
  #
16
16
  # @param amount [Integer] Value in specified currency's smallest unit. e.g. $10 would be represented as 10
17
17
  #
@@ -31,6 +31,8 @@ module ModernTreasury
31
31
  #
32
32
  # @param type [Symbol, ModernTreasury::Models::TransactionCreateParams::Type, nil] The type of the transaction. Examples could be `card, `ach`, `wire`, `check`, `r
33
33
  #
34
+ # @param vendor_customer_id [String, nil] An identifier given to this transaction by the bank, often `null`.
35
+ #
34
36
  # @param vendor_description [String, nil] The transaction detail text that often appears in on your bank statement and in
35
37
  #
36
38
  # @param request_options [ModernTreasury::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ModernTreasury
4
- VERSION = "0.1.0.pre.alpha.21"
4
+ VERSION = "0.1.0.pre.alpha.22"
5
5
  end
@@ -144,9 +144,6 @@ require_relative "modern_treasury/models/invoices/line_item_retrieve_params"
144
144
  require_relative "modern_treasury/models/invoices/line_item_update_params"
145
145
  require_relative "modern_treasury/models/invoice_update_params"
146
146
  require_relative "modern_treasury/models/ledger"
147
- require_relative "modern_treasury/models/ledgerable_event"
148
- require_relative "modern_treasury/models/ledgerable_event_create_params"
149
- require_relative "modern_treasury/models/ledgerable_event_retrieve_params"
150
147
  require_relative "modern_treasury/models/ledger_account"
151
148
  require_relative "modern_treasury/models/ledger_account_balance_monitor"
152
149
  require_relative "modern_treasury/models/ledger_account_balance_monitor_create_params"
@@ -186,12 +183,6 @@ require_relative "modern_treasury/models/ledger_entry"
186
183
  require_relative "modern_treasury/models/ledger_entry_list_params"
187
184
  require_relative "modern_treasury/models/ledger_entry_retrieve_params"
188
185
  require_relative "modern_treasury/models/ledger_entry_update_params"
189
- require_relative "modern_treasury/models/ledger_event_handler"
190
- require_relative "modern_treasury/models/ledger_event_handler_create_params"
191
- require_relative "modern_treasury/models/ledger_event_handler_delete_params"
192
- require_relative "modern_treasury/models/ledger_event_handler_list_params"
193
- require_relative "modern_treasury/models/ledger_event_handler_retrieve_params"
194
- require_relative "modern_treasury/models/ledger_event_handler_variable"
195
186
  require_relative "modern_treasury/models/ledger_list_params"
196
187
  require_relative "modern_treasury/models/ledger_retrieve_params"
197
188
  require_relative "modern_treasury/models/ledger_transaction"
@@ -8,6 +8,22 @@ module ModernTreasury
8
8
  end
9
9
 
10
10
  class ConversionError < ModernTreasury::Errors::Error
11
+ sig { returns(T.nilable(StandardError)) }
12
+ def cause
13
+ end
14
+
15
+ # @api private
16
+ sig do
17
+ params(
18
+ on: T::Class[StandardError],
19
+ method: Symbol,
20
+ target: T.anything,
21
+ value: T.anything,
22
+ cause: T.nilable(StandardError)
23
+ ).returns(T.attached_class)
24
+ end
25
+ def self.new(on:, method:, target:, value:, cause: nil)
26
+ end
11
27
  end
12
28
 
13
29
  class APIError < ModernTreasury::Errors::Error
@@ -22,6 +22,8 @@ module ModernTreasury
22
22
 
23
23
  class << self
24
24
  # @api private
25
+ #
26
+ # Coerce value to Boolean if possible, otherwise return the original value.
25
27
  sig do
26
28
  override
27
29
  .params(
@@ -18,12 +18,14 @@ module ModernTreasury
18
18
  CoerceState =
19
19
  T.type_alias do
20
20
  {
21
- strictness: T.any(T::Boolean, Symbol),
21
+ translate_names: T::Boolean,
22
+ strictness: T::Boolean,
22
23
  exactness: {
23
24
  yes: Integer,
24
25
  no: Integer,
25
26
  maybe: Integer
26
27
  },
28
+ error: T::Class[StandardError],
27
29
  branched: Integer
28
30
  }
29
31
  end
@@ -93,6 +95,15 @@ module ModernTreasury
93
95
  def self.type_info(spec)
94
96
  end
95
97
 
98
+ # @api private
99
+ sig do
100
+ params(translate_names: T::Boolean).returns(
101
+ ModernTreasury::Internal::Type::Converter::CoerceState
102
+ )
103
+ end
104
+ def self.new_coerce_state(translate_names: true)
105
+ end
106
+
96
107
  # @api private
97
108
  #
98
109
  # Based on `target`, transform `value` into `target`, to the extent possible:
@@ -114,14 +125,11 @@ module ModernTreasury
114
125
  def self.coerce(
115
126
  target,
116
127
  value,
117
- # The `strictness` is one of `true`, `false`, or `:strong`. This informs the
118
- # coercion strategy when we have to decide between multiple possible conversion
119
- # targets:
128
+ # The `strictness` is one of `true`, `false`. This informs the coercion strategy
129
+ # when we have to decide between multiple possible conversion targets:
120
130
  #
121
131
  # - `true`: the conversion must be exact, with minimum coercion.
122
132
  # - `false`: the conversion can be approximate, with some coercion.
123
- # - `:strong`: the conversion must be exact, with no coercion, and raise an error
124
- # if not possible.
125
133
  #
126
134
  # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
127
135
  # any given conversion attempt, the exactness will be updated based on how closely
@@ -133,15 +141,7 @@ module ModernTreasury
133
141
  # - `no`: the value cannot be converted to the target type.
134
142
  #
135
143
  # See implementation below for more details.
136
- state: {
137
- strictness: true,
138
- exactness: {
139
- yes: 0,
140
- no: 0,
141
- maybe: 0
142
- },
143
- branched: 0
144
- }
144
+ state: ModernTreasury::Internal::Type::Converter.new_coerce_state
145
145
  )
146
146
  end
147
147
 
@@ -78,6 +78,11 @@ module ModernTreasury
78
78
  end
79
79
 
80
80
  # @api private
81
+ #
82
+ # Tries to efficiently coerce the given value to one of the known variants.
83
+ #
84
+ # If the value cannot match any of the known variants, the coercion is considered
85
+ # non-viable and returns the original value.
81
86
  sig do
82
87
  override
83
88
  .params(
@@ -22,6 +22,8 @@ module ModernTreasury
22
22
 
23
23
  class << self
24
24
  # @api private
25
+ #
26
+ # No coercion needed for Unknown type.
25
27
  sig do
26
28
  override
27
29
  .params(
@@ -35,6 +35,7 @@ module ModernTreasury
35
35
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest,
36
36
  ModernTreasury::BulkRequestCreateParams::Resource::ExpectedPaymentCreateRequest,
37
37
  ModernTreasury::BulkRequestCreateParams::Resource::LedgerTransactionCreateRequest,
38
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest,
38
39
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest,
39
40
  ModernTreasury::BulkRequestCreateParams::Resource::ID,
40
41
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID,
@@ -67,6 +68,7 @@ module ModernTreasury
67
68
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest::OrHash,
68
69
  ModernTreasury::BulkRequestCreateParams::Resource::ExpectedPaymentCreateRequest::OrHash,
69
70
  ModernTreasury::BulkRequestCreateParams::Resource::LedgerTransactionCreateRequest::OrHash,
71
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::OrHash,
70
72
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest::OrHash,
71
73
  ModernTreasury::BulkRequestCreateParams::Resource::ID::OrHash,
72
74
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID::OrHash,
@@ -107,6 +109,7 @@ module ModernTreasury
107
109
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest,
108
110
  ModernTreasury::BulkRequestCreateParams::Resource::ExpectedPaymentCreateRequest,
109
111
  ModernTreasury::BulkRequestCreateParams::Resource::LedgerTransactionCreateRequest,
112
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest,
110
113
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest,
111
114
  ModernTreasury::BulkRequestCreateParams::Resource::ID,
112
115
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID,
@@ -226,6 +229,7 @@ module ModernTreasury
226
229
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest,
227
230
  ModernTreasury::BulkRequestCreateParams::Resource::ExpectedPaymentCreateRequest,
228
231
  ModernTreasury::BulkRequestCreateParams::Resource::LedgerTransactionCreateRequest,
232
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest,
229
233
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest,
230
234
  ModernTreasury::BulkRequestCreateParams::Resource::ID,
231
235
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID,
@@ -297,9 +301,9 @@ module ModernTreasury
297
301
  sig { returns(T.nilable(String)) }
298
302
  attr_accessor :accounting_ledger_class_id
299
303
 
300
- # The party that will pay the fees for the payment order. Only applies to wire
301
- # payment orders. Can be one of shared, sender, or receiver, which correspond
302
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
304
+ # The party that will pay the fees for the payment order. See
305
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
306
+ # differences between the options.
303
307
  sig do
304
308
  returns(
305
309
  T.nilable(
@@ -638,9 +642,9 @@ module ModernTreasury
638
642
  # The ID of one of your accounting ledger classes. Note that these will only be
639
643
  # accessible if your accounting system has been connected.
640
644
  accounting_ledger_class_id: nil,
641
- # The party that will pay the fees for the payment order. Only applies to wire
642
- # payment orders. Can be one of shared, sender, or receiver, which correspond
643
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
645
+ # The party that will pay the fees for the payment order. See
646
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
647
+ # differences between the options.
644
648
  charge_bearer: nil,
645
649
  # Defaults to the currency of the originating account.
646
650
  currency: nil,
@@ -885,9 +889,9 @@ module ModernTreasury
885
889
  end
886
890
  end
887
891
 
888
- # The party that will pay the fees for the payment order. Only applies to wire
889
- # payment orders. Can be one of shared, sender, or receiver, which correspond
890
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
892
+ # The party that will pay the fees for the payment order. See
893
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
894
+ # differences between the options.
891
895
  module ChargeBearer
892
896
  extend ModernTreasury::Internal::Type::Enum
893
897
 
@@ -2458,6 +2462,11 @@ module ModernTreasury
2458
2462
  :id_sknbi_code,
2459
2463
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest::ReceivingAccount::RoutingDetail::RoutingNumberType::TaggedSymbol
2460
2464
  )
2465
+ IL_BANK_CODE =
2466
+ T.let(
2467
+ :il_bank_code,
2468
+ ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderAsyncCreateRequest::ReceivingAccount::RoutingDetail::RoutingNumberType::TaggedSymbol
2469
+ )
2461
2470
  IN_IFSC =
2462
2471
  T.let(
2463
2472
  :in_ifsc,
@@ -3908,6 +3917,195 @@ module ModernTreasury
3908
3917
  end
3909
3918
  end
3910
3919
 
3920
+ class LedgerAccountCreateRequest < ModernTreasury::Internal::Type::BaseModel
3921
+ OrHash =
3922
+ T.type_alias do
3923
+ T.any(
3924
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest,
3925
+ ModernTreasury::Internal::AnyHash
3926
+ )
3927
+ end
3928
+
3929
+ # The currency of the ledger account.
3930
+ sig { returns(String) }
3931
+ attr_accessor :currency
3932
+
3933
+ # The id of the ledger that this account belongs to.
3934
+ sig { returns(String) }
3935
+ attr_accessor :ledger_id
3936
+
3937
+ # The name of the ledger account.
3938
+ sig { returns(String) }
3939
+ attr_accessor :name
3940
+
3941
+ # The normal balance of the ledger account.
3942
+ sig { returns(ModernTreasury::TransactionDirection::OrSymbol) }
3943
+ attr_accessor :normal_balance
3944
+
3945
+ # The currency exponent of the ledger account.
3946
+ sig { returns(T.nilable(Integer)) }
3947
+ attr_accessor :currency_exponent
3948
+
3949
+ # The description of the ledger account.
3950
+ sig { returns(T.nilable(String)) }
3951
+ attr_accessor :description
3952
+
3953
+ # The array of ledger account category ids that this ledger account should be a
3954
+ # child of.
3955
+ sig { returns(T.nilable(T::Array[String])) }
3956
+ attr_reader :ledger_account_category_ids
3957
+
3958
+ sig { params(ledger_account_category_ids: T::Array[String]).void }
3959
+ attr_writer :ledger_account_category_ids
3960
+
3961
+ # If the ledger account links to another object in Modern Treasury, the id will be
3962
+ # populated here, otherwise null.
3963
+ sig { returns(T.nilable(String)) }
3964
+ attr_reader :ledgerable_id
3965
+
3966
+ sig { params(ledgerable_id: String).void }
3967
+ attr_writer :ledgerable_id
3968
+
3969
+ # If the ledger account links to another object in Modern Treasury, the type will
3970
+ # be populated here, otherwise null. The value is one of internal_account or
3971
+ # external_account.
3972
+ sig do
3973
+ returns(
3974
+ T.nilable(
3975
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::OrSymbol
3976
+ )
3977
+ )
3978
+ end
3979
+ attr_reader :ledgerable_type
3980
+
3981
+ sig do
3982
+ params(
3983
+ ledgerable_type:
3984
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::OrSymbol
3985
+ ).void
3986
+ end
3987
+ attr_writer :ledgerable_type
3988
+
3989
+ # Additional data represented as key-value pairs. Both the key and value must be
3990
+ # strings.
3991
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
3992
+ attr_reader :metadata
3993
+
3994
+ sig { params(metadata: T::Hash[Symbol, String]).void }
3995
+ attr_writer :metadata
3996
+
3997
+ sig do
3998
+ params(
3999
+ currency: String,
4000
+ ledger_id: String,
4001
+ name: String,
4002
+ normal_balance: ModernTreasury::TransactionDirection::OrSymbol,
4003
+ currency_exponent: T.nilable(Integer),
4004
+ description: T.nilable(String),
4005
+ ledger_account_category_ids: T::Array[String],
4006
+ ledgerable_id: String,
4007
+ ledgerable_type:
4008
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::OrSymbol,
4009
+ metadata: T::Hash[Symbol, String]
4010
+ ).returns(T.attached_class)
4011
+ end
4012
+ def self.new(
4013
+ # The currency of the ledger account.
4014
+ currency:,
4015
+ # The id of the ledger that this account belongs to.
4016
+ ledger_id:,
4017
+ # The name of the ledger account.
4018
+ name:,
4019
+ # The normal balance of the ledger account.
4020
+ normal_balance:,
4021
+ # The currency exponent of the ledger account.
4022
+ currency_exponent: nil,
4023
+ # The description of the ledger account.
4024
+ description: nil,
4025
+ # The array of ledger account category ids that this ledger account should be a
4026
+ # child of.
4027
+ ledger_account_category_ids: nil,
4028
+ # If the ledger account links to another object in Modern Treasury, the id will be
4029
+ # populated here, otherwise null.
4030
+ ledgerable_id: nil,
4031
+ # If the ledger account links to another object in Modern Treasury, the type will
4032
+ # be populated here, otherwise null. The value is one of internal_account or
4033
+ # external_account.
4034
+ ledgerable_type: nil,
4035
+ # Additional data represented as key-value pairs. Both the key and value must be
4036
+ # strings.
4037
+ metadata: nil
4038
+ )
4039
+ end
4040
+
4041
+ sig do
4042
+ override.returns(
4043
+ {
4044
+ currency: String,
4045
+ ledger_id: String,
4046
+ name: String,
4047
+ normal_balance: ModernTreasury::TransactionDirection::OrSymbol,
4048
+ currency_exponent: T.nilable(Integer),
4049
+ description: T.nilable(String),
4050
+ ledger_account_category_ids: T::Array[String],
4051
+ ledgerable_id: String,
4052
+ ledgerable_type:
4053
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::OrSymbol,
4054
+ metadata: T::Hash[Symbol, String]
4055
+ }
4056
+ )
4057
+ end
4058
+ def to_hash
4059
+ end
4060
+
4061
+ # If the ledger account links to another object in Modern Treasury, the type will
4062
+ # be populated here, otherwise null. The value is one of internal_account or
4063
+ # external_account.
4064
+ module LedgerableType
4065
+ extend ModernTreasury::Internal::Type::Enum
4066
+
4067
+ TaggedSymbol =
4068
+ T.type_alias do
4069
+ T.all(
4070
+ Symbol,
4071
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType
4072
+ )
4073
+ end
4074
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4075
+
4076
+ COUNTERPARTY =
4077
+ T.let(
4078
+ :counterparty,
4079
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::TaggedSymbol
4080
+ )
4081
+ EXTERNAL_ACCOUNT =
4082
+ T.let(
4083
+ :external_account,
4084
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::TaggedSymbol
4085
+ )
4086
+ INTERNAL_ACCOUNT =
4087
+ T.let(
4088
+ :internal_account,
4089
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::TaggedSymbol
4090
+ )
4091
+ VIRTUAL_ACCOUNT =
4092
+ T.let(
4093
+ :virtual_account,
4094
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::TaggedSymbol
4095
+ )
4096
+
4097
+ sig do
4098
+ override.returns(
4099
+ T::Array[
4100
+ ModernTreasury::BulkRequestCreateParams::Resource::LedgerAccountCreateRequest::LedgerableType::TaggedSymbol
4101
+ ]
4102
+ )
4103
+ end
4104
+ def self.values
4105
+ end
4106
+ end
4107
+ end
4108
+
3911
4109
  class TransactionCreateRequest < ModernTreasury::Internal::Type::BaseModel
3912
4110
  OrHash =
3913
4111
  T.type_alias do
@@ -3972,6 +4170,10 @@ module ModernTreasury
3972
4170
  end
3973
4171
  attr_accessor :type
3974
4172
 
4173
+ # An identifier given to this transaction by the bank, often `null`.
4174
+ sig { returns(T.nilable(String)) }
4175
+ attr_accessor :vendor_customer_id
4176
+
3975
4177
  # The transaction detail text that often appears in on your bank statement and in
3976
4178
  # your banking portal.
3977
4179
  sig { returns(T.nilable(String)) }
@@ -3991,6 +4193,7 @@ module ModernTreasury
3991
4193
  T.nilable(
3992
4194
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest::Type::OrSymbol
3993
4195
  ),
4196
+ vendor_customer_id: T.nilable(String),
3994
4197
  vendor_description: T.nilable(String)
3995
4198
  ).returns(T.attached_class)
3996
4199
  end
@@ -4020,6 +4223,8 @@ module ModernTreasury
4020
4223
  # The type of the transaction. Examples could be
4021
4224
  # `card, `ach`, `wire`, `check`, `rtp`, `book`, or `sen`.
4022
4225
  type: nil,
4226
+ # An identifier given to this transaction by the bank, often `null`.
4227
+ vendor_customer_id: nil,
4023
4228
  # The transaction detail text that often appears in on your bank statement and in
4024
4229
  # your banking portal.
4025
4230
  vendor_description: nil
@@ -4041,6 +4246,7 @@ module ModernTreasury
4041
4246
  T.nilable(
4042
4247
  ModernTreasury::BulkRequestCreateParams::Resource::TransactionCreateRequest::Type::OrSymbol
4043
4248
  ),
4249
+ vendor_customer_id: T.nilable(String),
4044
4250
  vendor_description: T.nilable(String)
4045
4251
  }
4046
4252
  )
@@ -4324,9 +4530,9 @@ module ModernTreasury
4324
4530
  sig { params(amount: Integer).void }
4325
4531
  attr_writer :amount
4326
4532
 
4327
- # The party that will pay the fees for the payment order. Only applies to wire
4328
- # payment orders. Can be one of shared, sender, or receiver, which correspond
4329
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
4533
+ # The party that will pay the fees for the payment order. See
4534
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
4535
+ # differences between the options.
4330
4536
  sig do
4331
4537
  returns(
4332
4538
  T.nilable(
@@ -4685,9 +4891,9 @@ module ModernTreasury
4685
4891
  # Value in specified currency's smallest unit. e.g. $10 would be represented as
4686
4892
  # 1000 (cents). For RTP, the maximum amount allowed by the network is $100,000.
4687
4893
  amount: nil,
4688
- # The party that will pay the fees for the payment order. Only applies to wire
4689
- # payment orders. Can be one of shared, sender, or receiver, which correspond
4690
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
4894
+ # The party that will pay the fees for the payment order. See
4895
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
4896
+ # differences between the options.
4691
4897
  charge_bearer: nil,
4692
4898
  # Required when receiving_account_id is passed the ID of an external account.
4693
4899
  counterparty_id: nil,
@@ -4906,9 +5112,9 @@ module ModernTreasury
4906
5112
  end
4907
5113
  end
4908
5114
 
4909
- # The party that will pay the fees for the payment order. Only applies to wire
4910
- # payment orders. Can be one of shared, sender, or receiver, which correspond
4911
- # respectively with the SWIFT 71A values `SHA`, `OUR`, `BEN`.
5115
+ # The party that will pay the fees for the payment order. See
5116
+ # https://docs.moderntreasury.com/payments/docs/charge-bearer to understand the
5117
+ # differences between the options.
4912
5118
  module ChargeBearer
4913
5119
  extend ModernTreasury::Internal::Type::Enum
4914
5120
 
@@ -6107,6 +6313,11 @@ module ModernTreasury
6107
6313
  :id_sknbi_code,
6108
6314
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID::ReceivingAccount::RoutingDetail::RoutingNumberType::TaggedSymbol
6109
6315
  )
6316
+ IL_BANK_CODE =
6317
+ T.let(
6318
+ :il_bank_code,
6319
+ ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID::ReceivingAccount::RoutingDetail::RoutingNumberType::TaggedSymbol
6320
+ )
6110
6321
  IN_IFSC =
6111
6322
  T.let(
6112
6323
  :in_ifsc,
@@ -6435,6 +6646,11 @@ module ModernTreasury
6435
6646
  :sent,
6436
6647
  ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID::Status::TaggedSymbol
6437
6648
  )
6649
+ STOPPED =
6650
+ T.let(
6651
+ :stopped,
6652
+ ModernTreasury::BulkRequestCreateParams::Resource::PaymentOrderUpdateRequestWithID::Status::TaggedSymbol
6653
+ )
6438
6654
 
6439
6655
  sig do
6440
6656
  override.returns(