moov_ruby 26.7.0.pre.dev.2 → 26.7.0.pre.dev.4

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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/account_terminal_applications.rb +16 -16
  3. data/lib/moov/accounts.rb +52 -54
  4. data/lib/moov/adjustments.rb +8 -8
  5. data/lib/moov/apple_pay.rb +20 -20
  6. data/lib/moov/authentication.rb +8 -8
  7. data/lib/moov/avatars.rb +4 -4
  8. data/lib/moov/bank_accounts.rb +37 -37
  9. data/lib/moov/branding.rb +12 -12
  10. data/lib/moov/capabilities.rb +20 -20
  11. data/lib/moov/card_issuing.rb +25 -25
  12. data/lib/moov/cards.rb +24 -24
  13. data/lib/moov/client.rb +2 -1
  14. data/lib/moov/deposit_view.rb +213 -0
  15. data/lib/moov/disputes.rb +44 -44
  16. data/lib/moov/end_to_end_encryption.rb +8 -8
  17. data/lib/moov/enriched_address.rb +4 -4
  18. data/lib/moov/enriched_profile.rb +4 -4
  19. data/lib/moov/fee_plans.rb +40 -40
  20. data/lib/moov/files.rb +12 -12
  21. data/lib/moov/google_pay.rb +4 -4
  22. data/lib/moov/images.rb +28 -28
  23. data/lib/moov/industries.rb +4 -4
  24. data/lib/moov/institutions.rb +8 -8
  25. data/lib/moov/invoices.rb +28 -28
  26. data/lib/moov/issuing_transactions.rb +20 -20
  27. data/lib/moov/models/components/addcapabilities.rb +5 -1
  28. data/lib/moov/models/components/amountdecimalrange.rb +11 -5
  29. data/lib/moov/models/components/amountdecimalrangeupdate.rb +7 -1
  30. data/lib/moov/models/components/billingaddress.rb +52 -0
  31. data/lib/moov/models/components/billingaddress.rbi +23 -0
  32. data/lib/moov/models/components/capability.rb +7 -1
  33. data/lib/moov/models/components/capabilityid.rb +8 -1
  34. data/lib/moov/models/components/cardtransactiondetails.rb +10 -2
  35. data/lib/moov/models/components/cardtransactiondetails.rbi +4 -0
  36. data/lib/moov/models/components/cardtransactionstatus.rb +1 -0
  37. data/lib/moov/models/components/createaccount.rb +5 -1
  38. data/lib/moov/models/components/createpaymentlink.rb +10 -6
  39. data/lib/moov/models/components/createpaymentlink.rbi +2 -0
  40. data/lib/moov/models/components/createtransferdestinationcard.rb +6 -2
  41. data/lib/moov/models/components/createtransferdestinationcard.rbi +2 -0
  42. data/lib/moov/models/components/customamountpaymentdetailserror.rb +52 -0
  43. data/lib/moov/models/components/customamountpaymentdetailserror.rbi +23 -0
  44. data/lib/moov/models/components/depositaccountingestedresponse.rb +44 -0
  45. data/lib/moov/models/components/depositaccountingestedresponse.rbi +19 -0
  46. data/lib/moov/models/components/fullissuedcard.rb +23 -13
  47. data/lib/moov/models/components/fullissuedcard.rbi +10 -4
  48. data/lib/moov/models/components/invoice.rb +6 -2
  49. data/lib/moov/models/components/invoice.rbi +2 -0
  50. data/lib/moov/models/components/issuedcard.rb +23 -13
  51. data/lib/moov/models/components/issuedcard.rbi +10 -4
  52. data/lib/moov/models/components/issuedcardstate.rb +1 -5
  53. data/lib/moov/models/components/manualtermsofservice.rb +1 -1
  54. data/lib/moov/models/components/manualtermsofserviceupdate.rb +1 -1
  55. data/lib/moov/models/components/onboardinginvite.rb +1 -1
  56. data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
  57. data/lib/moov/models/components/patchtransfer.rb +6 -6
  58. data/lib/moov/models/components/patchtransfer.rbi +2 -2
  59. data/lib/moov/models/components/patchwallet.rb +1 -1
  60. data/lib/moov/models/components/paymentlink.rb +12 -5
  61. data/lib/moov/models/components/paymentlink.rbi +2 -0
  62. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +59 -0
  63. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rbi +23 -0
  64. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +59 -0
  65. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rbi +23 -0
  66. data/lib/moov/models/components/paymentlinkpaymentdetails.rb +2 -14
  67. data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +0 -6
  68. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +2 -14
  69. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +0 -6
  70. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +9 -2
  71. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +2 -0
  72. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +9 -2
  73. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +2 -0
  74. data/lib/moov/models/components/paymentlinktype.rb +1 -0
  75. data/lib/moov/models/components/paymentmethodscard.rb +7 -2
  76. data/lib/moov/models/components/paymentmethodscard.rbi +2 -0
  77. data/lib/moov/models/components/payoutdetailserror.rb +6 -2
  78. data/lib/moov/models/components/payoutdetailserror.rbi +2 -0
  79. data/lib/moov/models/components/pushdeliveryspeed.rb +19 -0
  80. data/lib/moov/models/components/pushdeliveryspeed.rbi +11 -0
  81. data/lib/moov/models/components/pushoptions.rb +38 -0
  82. data/lib/moov/models/components/pushoptions.rbi +15 -0
  83. data/lib/moov/models/components/pushoptionserror.rb +36 -0
  84. data/lib/moov/models/components/pushoptionserror.rbi +15 -0
  85. data/lib/moov/models/components/pushoptionsupdate.rb +38 -0
  86. data/lib/moov/models/components/pushoptionsupdate.rbi +15 -0
  87. data/lib/moov/models/components/requestcard.rb +17 -17
  88. data/lib/moov/models/components/requestcard.rbi +8 -8
  89. data/lib/moov/models/components/sourcesystem.rb +23 -0
  90. data/lib/moov/models/components/sourcesystem.rbi +11 -0
  91. data/lib/moov/models/components/surcharge.rb +38 -0
  92. data/lib/moov/models/components/surcharge.rbi +15 -0
  93. data/lib/moov/models/components/tax.rb +38 -0
  94. data/lib/moov/models/components/tax.rbi +15 -0
  95. data/lib/moov/models/components/termsofservice.rb +1 -1
  96. data/lib/moov/models/components/updateissuedcard.rb +13 -9
  97. data/lib/moov/models/components/updateissuedcard.rbi +6 -4
  98. data/lib/moov/models/components/updatepaymentlink.rb +6 -2
  99. data/lib/moov/models/components/updatepaymentlink.rbi +2 -0
  100. data/lib/moov/models/components/updatepaymentlinkamountdetails.rb +3 -3
  101. data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +44 -0
  102. data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +19 -0
  103. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +7 -1
  104. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +7 -1
  105. data/lib/moov/models/components/webhookdatasweepcreated.rb +6 -2
  106. data/lib/moov/models/components/webhookdatasweepcreated.rbi +2 -0
  107. data/lib/moov/models/components/webhookdatasweepupdated.rb +6 -2
  108. data/lib/moov/models/components/webhookdatasweepupdated.rbi +2 -0
  109. data/lib/moov/models/components/webhookevent.rb +2 -2
  110. data/lib/moov/models/components/webhookeventtype.rb +1 -0
  111. data/lib/moov/models/components.rb +13 -6
  112. data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -2
  113. data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -0
  114. data/lib/moov/models/errors/depositaccountvalidationerror.rb +40 -0
  115. data/lib/moov/models/errors/depositaccountvalidationerror.rbi +17 -0
  116. data/lib/moov/models/errors/requestcarderror.rb +14 -14
  117. data/lib/moov/models/errors/requestcarderror.rbi +8 -8
  118. data/lib/moov/models/errors/updateissuedcarderror.rb +12 -8
  119. data/lib/moov/models/errors/updateissuedcarderror.rbi +6 -4
  120. data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -2
  121. data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -0
  122. data/lib/moov/models/errors.rb +1 -0
  123. data/lib/moov/models/operations/createdepositaccount_request.rb +40 -0
  124. data/lib/moov/models/operations/createdepositaccount_request.rbi +17 -0
  125. data/lib/moov/models/operations/createdepositaccount_response.rb +48 -0
  126. data/lib/moov/models/operations/createdepositaccount_response.rbi +21 -0
  127. data/lib/moov/models/operations/disablecapability_request.rb +7 -1
  128. data/lib/moov/models/operations/getcapability_request.rb +7 -1
  129. data/lib/moov/models/operations/linkbankaccount_request.rb +1 -1
  130. data/lib/moov/models/operations/listcancellations_request.rb +36 -0
  131. data/lib/moov/models/operations/listcancellations_request.rbi +15 -0
  132. data/lib/moov/models/operations/listcancellations_response.rb +48 -0
  133. data/lib/moov/models/operations/listcancellations_response.rbi +21 -0
  134. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  135. data/lib/moov/models/operations.rb +4 -0
  136. data/lib/moov/onboarding.rb +16 -16
  137. data/lib/moov/payment_links.rb +24 -24
  138. data/lib/moov/payment_methods.rb +8 -8
  139. data/lib/moov/ping.rb +4 -4
  140. data/lib/moov/products.rb +20 -20
  141. data/lib/moov/receipts.rb +8 -8
  142. data/lib/moov/representatives.rb +20 -20
  143. data/lib/moov/resolution_links.rb +16 -16
  144. data/lib/moov/scheduling.rb +24 -24
  145. data/lib/moov/sdkconfiguration.rb +3 -3
  146. data/lib/moov/statements.rb +8 -8
  147. data/lib/moov/support.rb +20 -20
  148. data/lib/moov/sweeps.rb +24 -24
  149. data/lib/moov/terminal_applications.rb +20 -20
  150. data/lib/moov/transfer_config.rb +12 -12
  151. data/lib/moov/transfers.rb +171 -48
  152. data/lib/moov/underwriting.rb +12 -12
  153. data/lib/moov/utils/retries.rb +4 -1
  154. data/lib/moov/wallet_transactions.rb +8 -8
  155. data/lib/moov/wallets.rb +16 -16
  156. data/lib/moov/webhooks.rb +32 -32
  157. data/lib/moov_ruby.rb +1 -0
  158. metadata +41 -16
  159. data/lib/moov/models/components/authorizeduser.rb +0 -36
  160. data/lib/moov/models/components/authorizeduser.rbi +0 -15
  161. data/lib/moov/models/components/createauthorizeduser.rb +0 -40
  162. data/lib/moov/models/components/createauthorizeduser.rbi +0 -17
  163. data/lib/moov/models/components/createauthorizedusererror.rb +0 -40
  164. data/lib/moov/models/components/createauthorizedusererror.rbi +0 -17
  165. data/lib/moov/models/components/createauthorizeduserupdate.rb +0 -40
  166. data/lib/moov/models/components/createauthorizeduserupdate.rbi +0 -17
  167. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +0 -19
  168. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +0 -11
  169. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +0 -19
  170. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +0 -11
@@ -65,7 +65,7 @@ module Moov
65
65
 
66
66
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
67
67
  timeout ||= @sdk_configuration.timeout
68
-
68
+
69
69
 
70
70
  connection = @sdk_configuration.client
71
71
 
@@ -80,7 +80,7 @@ module Moov
80
80
  error = T.let(nil, T.nilable(StandardError))
81
81
  http_response = T.let(nil, T.nilable(Faraday::Response))
82
82
 
83
-
83
+
84
84
  begin
85
85
  http_response = T.must(connection).get(url) do |req|
86
86
  req.headers.merge!(headers)
@@ -117,13 +117,13 @@ module Moov
117
117
  response: http_response
118
118
  )
119
119
  end
120
-
120
+
121
121
  if http_response.nil?
122
122
  raise error if !error.nil?
123
123
  raise 'no response'
124
124
  end
125
125
  end
126
-
126
+
127
127
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
128
128
  if Utils.match_status_code(http_response.status, ['200'])
129
129
  if Utils.match_content_type(content_type, 'application/json')
@@ -189,7 +189,7 @@ module Moov
189
189
 
190
190
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
191
191
  timeout ||= @sdk_configuration.timeout
192
-
192
+
193
193
 
194
194
  connection = @sdk_configuration.client
195
195
 
@@ -204,7 +204,7 @@ module Moov
204
204
  error = T.let(nil, T.nilable(StandardError))
205
205
  http_response = T.let(nil, T.nilable(Faraday::Response))
206
206
 
207
-
207
+
208
208
  begin
209
209
  http_response = T.must(connection).get(url) do |req|
210
210
  req.headers.merge!(headers)
@@ -240,13 +240,13 @@ module Moov
240
240
  response: http_response
241
241
  )
242
242
  end
243
-
243
+
244
244
  if http_response.nil?
245
245
  raise error if !error.nil?
246
246
  raise 'no response'
247
247
  end
248
248
  end
249
-
249
+
250
250
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
251
251
  if Utils.match_status_code(http_response.status, ['200'])
252
252
  if Utils.match_content_type(content_type, 'application/json')
@@ -315,7 +315,7 @@ module Moov
315
315
 
316
316
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
317
317
  timeout ||= @sdk_configuration.timeout
318
-
318
+
319
319
 
320
320
  connection = @sdk_configuration.client
321
321
 
@@ -330,7 +330,7 @@ module Moov
330
330
  error = T.let(nil, T.nilable(StandardError))
331
331
  http_response = T.let(nil, T.nilable(Faraday::Response))
332
332
 
333
-
333
+
334
334
  begin
335
335
  http_response = T.must(connection).get(url) do |req|
336
336
  req.headers.merge!(headers)
@@ -367,13 +367,13 @@ module Moov
367
367
  response: http_response
368
368
  )
369
369
  end
370
-
370
+
371
371
  if http_response.nil?
372
372
  raise error if !error.nil?
373
373
  raise 'no response'
374
374
  end
375
375
  end
376
-
376
+
377
377
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
378
378
  if Utils.match_status_code(http_response.status, ['200'])
379
379
  if Utils.match_content_type(content_type, 'application/json')
@@ -436,7 +436,7 @@ module Moov
436
436
 
437
437
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
438
438
  timeout ||= @sdk_configuration.timeout
439
-
439
+
440
440
 
441
441
  connection = @sdk_configuration.client
442
442
 
@@ -451,7 +451,7 @@ module Moov
451
451
  error = T.let(nil, T.nilable(StandardError))
452
452
  http_response = T.let(nil, T.nilable(Faraday::Response))
453
453
 
454
-
454
+
455
455
  begin
456
456
  http_response = T.must(connection).get(url) do |req|
457
457
  req.headers.merge!(headers)
@@ -488,13 +488,13 @@ module Moov
488
488
  response: http_response
489
489
  )
490
490
  end
491
-
491
+
492
492
  if http_response.nil?
493
493
  raise error if !error.nil?
494
494
  raise 'no response'
495
495
  end
496
496
  end
497
-
497
+
498
498
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
499
499
  if Utils.match_status_code(http_response.status, ['200'])
500
500
  if Utils.match_content_type(content_type, 'application/json')
@@ -560,7 +560,7 @@ module Moov
560
560
 
561
561
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
562
562
  timeout ||= @sdk_configuration.timeout
563
-
563
+
564
564
 
565
565
  connection = @sdk_configuration.client
566
566
 
@@ -575,7 +575,7 @@ module Moov
575
575
  error = T.let(nil, T.nilable(StandardError))
576
576
  http_response = T.let(nil, T.nilable(Faraday::Response))
577
577
 
578
-
578
+
579
579
  begin
580
580
  http_response = T.must(connection).get(url) do |req|
581
581
  req.headers.merge!(headers)
@@ -611,13 +611,13 @@ module Moov
611
611
  response: http_response
612
612
  )
613
613
  end
614
-
614
+
615
615
  if http_response.nil?
616
616
  raise error if !error.nil?
617
617
  raise 'no response'
618
618
  end
619
619
  end
620
-
620
+
621
621
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
622
622
  if Utils.match_status_code(http_response.status, ['200'])
623
623
  if Utils.match_content_type(content_type, 'application/json')
@@ -12,7 +12,11 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Capabilities to request for the account. Request granular capability IDs that match your use case.
16
+ #
17
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
18
+ #
19
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
16
20
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
17
21
 
18
22
  sig { params(capabilities: T::Array[Models::Components::CapabilityID]).void }
@@ -7,18 +7,24 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # A range of values that an AmountDecimal can take.
11
+ #
12
+ # If either `minimum` or `maximum` is omitted, the range is "open" on that end:
13
+ #
14
+ # `minimum` specified: `amt >= minimum`
15
+ # `maximum` specified: `amt <= maximum`
16
+ # both specified: `minimum <= amt <= maximum`
11
17
  class AmountDecimalRange
12
18
  extend T::Sig
13
19
  include Crystalline::MetadataFields
14
20
 
15
21
  # Minimum amount allowed in the range
16
- field :minimum, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimum'), required: true } }
22
+ field :minimum, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimum') } }
17
23
  # Maximum amount allowed in the range
18
- field :maximum, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('maximum'), required: true } }
24
+ field :maximum, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('maximum') } }
19
25
 
20
- sig { params(minimum: Models::Components::AmountDecimal, maximum: Models::Components::AmountDecimal).void }
21
- def initialize(minimum:, maximum:)
26
+ sig { params(minimum: T.nilable(Models::Components::AmountDecimal), maximum: T.nilable(Models::Components::AmountDecimal)).void }
27
+ def initialize(minimum: nil, maximum: nil)
22
28
  @minimum = minimum
23
29
  @maximum = maximum
24
30
  end
@@ -7,7 +7,13 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # A range of values that an AmountDecimal can take.
11
+ #
12
+ # If either `minimum` or `maximum` is omitted, the range is "open" on that end:
13
+ #
14
+ # `minimum` specified: `amt >= minimum`
15
+ # `maximum` specified: `amt <= maximum`
16
+ # both specified: `minimum <= amt <= maximum`
11
17
  class AmountDecimalRangeUpdate
12
18
  extend T::Sig
13
19
  include Crystalline::MetadataFields
@@ -0,0 +1,52 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class BillingAddress
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :address_line1, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1') } }
17
+
18
+ field :address_line2, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine2') } }
19
+
20
+ field :city, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('city') } }
21
+
22
+ field :state_or_province, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('stateOrProvince') } }
23
+
24
+ field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode') } }
25
+
26
+ field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('country') } }
27
+
28
+ sig { params(address_line1: T.nilable(::String), address_line2: T.nilable(::String), city: T.nilable(::String), state_or_province: T.nilable(::String), postal_code: T.nilable(::String), country: T.nilable(::String)).void }
29
+ def initialize(address_line1: nil, address_line2: nil, city: nil, state_or_province: nil, postal_code: nil, country: nil)
30
+ @address_line1 = address_line1
31
+ @address_line2 = address_line2
32
+ @city = city
33
+ @state_or_province = state_or_province
34
+ @postal_code = postal_code
35
+ @country = country
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @address_line1 == other.address_line1
42
+ return false unless @address_line2 == other.address_line2
43
+ return false unless @city == other.city
44
+ return false unless @state_or_province == other.state_or_province
45
+ return false unless @postal_code == other.postal_code
46
+ return false unless @country == other.country
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingAddress
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingAddress
11
+ def address_line1(); end
12
+ def address_line1=(str_); end
13
+ def address_line2(); end
14
+ def address_line2=(str_); end
15
+ def city(); end
16
+ def city=(str_); end
17
+ def state_or_province(); end
18
+ def state_or_province=(str_); end
19
+ def postal_code(); end
20
+ def postal_code=(str_); end
21
+ def country(); end
22
+ def country=(str_); end
23
+ end
@@ -14,7 +14,13 @@ module Moov
14
14
 
15
15
  # Moov account capabilities.
16
16
  #
17
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
17
+ # **Deprecated capabilities**
18
+ #
19
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
20
+ #
21
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
22
+ #
23
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
18
24
  field :capability, Models::Components::CapabilityID, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capability'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CapabilityID, false) } }
19
25
 
20
26
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
@@ -9,7 +9,13 @@ module Moov
9
9
  module Components
10
10
  # CapabilityID - Moov account capabilities.
11
11
  #
12
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
12
+ # **Deprecated capabilities**
13
+ #
14
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
15
+ #
16
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
17
+ #
18
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
13
19
  class CapabilityID < T::Enum
14
20
  enums do
15
21
  TRANSFERS = new('transfers')
@@ -26,6 +32,7 @@ module Moov
26
32
  WALLET = new('wallet')
27
33
  WALLET_BALANCE = new('wallet.balance')
28
34
  CARD_ISSUING = new('card-issuing')
35
+ ISSUING_CARDHOLDER = new('issuing.cardholder')
29
36
  PRODUCTION_APP = new('production-app')
30
37
  PLATFORM_PRODUCTION_APP = new('platform.production-app')
31
38
  PLATFORM_WALLET_TRANSFERS = new('platform.wallet-transfers')
@@ -18,6 +18,8 @@ module Moov
18
18
  field :failure_code, Crystalline::Nilable.new(Models::Components::CardTransactionFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardTransactionFailureCode, true) } }
19
19
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
20
20
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
21
+ # The scheduled date and time for the transfer to be delivered. This field is only valid for push-to-card transfers. Must be between 24 and 48 hours in the future in production. In sandbox mode, any future time up to 48 hours is accepted so integrations can test deferred delivery using the sandbox test cards with relaxed wait times.
22
+ field :scheduled_delivery_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scheduledDeliveryOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
21
23
  # Specifies the nature and initiator of a transaction.
22
24
  #
23
25
  # Crucial for recurring and merchant-initiated transactions as per card scheme rules.
@@ -35,6 +37,8 @@ module Moov
35
37
  field :canceled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('canceledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
36
38
 
37
39
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
40
+
41
+ field :deferred_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('deferredOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
38
42
  # The program assigned by the card network that determines the interchange rate for the transfer.
39
43
  #
40
44
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
@@ -44,11 +48,12 @@ module Moov
44
48
  # An alphanumeric code generated by the card network to demonstrate approval for the transaction.
45
49
  field :authorization_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationCode') } }
46
50
 
47
- sig { params(status: T.nilable(Models::Components::CardTransactionStatus), failure_code: T.nilable(Models::Components::CardTransactionFailureCode), dynamic_descriptor: T.nilable(::String), transaction_source: T.nilable(Models::Components::TransactionSource), initiated_on: T.nilable(::DateTime), confirmed_on: T.nilable(::DateTime), settled_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), interchange_qualification: T.nilable(::String), fee_program: T.nilable(::String), authorization_code: T.nilable(::String)).void }
48
- def initialize(status: nil, failure_code: nil, dynamic_descriptor: nil, transaction_source: nil, initiated_on: nil, confirmed_on: nil, settled_on: nil, failed_on: nil, canceled_on: nil, completed_on: nil, interchange_qualification: nil, fee_program: nil, authorization_code: nil)
51
+ sig { params(status: T.nilable(Models::Components::CardTransactionStatus), failure_code: T.nilable(Models::Components::CardTransactionFailureCode), dynamic_descriptor: T.nilable(::String), scheduled_delivery_on: T.nilable(::DateTime), transaction_source: T.nilable(Models::Components::TransactionSource), initiated_on: T.nilable(::DateTime), confirmed_on: T.nilable(::DateTime), settled_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), deferred_on: T.nilable(::DateTime), interchange_qualification: T.nilable(::String), fee_program: T.nilable(::String), authorization_code: T.nilable(::String)).void }
52
+ def initialize(status: nil, failure_code: nil, dynamic_descriptor: nil, scheduled_delivery_on: nil, transaction_source: nil, initiated_on: nil, confirmed_on: nil, settled_on: nil, failed_on: nil, canceled_on: nil, completed_on: nil, deferred_on: nil, interchange_qualification: nil, fee_program: nil, authorization_code: nil)
49
53
  @status = status
50
54
  @failure_code = failure_code
51
55
  @dynamic_descriptor = dynamic_descriptor
56
+ @scheduled_delivery_on = scheduled_delivery_on
52
57
  @transaction_source = transaction_source
53
58
  @initiated_on = initiated_on
54
59
  @confirmed_on = confirmed_on
@@ -56,6 +61,7 @@ module Moov
56
61
  @failed_on = failed_on
57
62
  @canceled_on = canceled_on
58
63
  @completed_on = completed_on
64
+ @deferred_on = deferred_on
59
65
  @interchange_qualification = interchange_qualification
60
66
  @fee_program = fee_program
61
67
  @authorization_code = authorization_code
@@ -67,6 +73,7 @@ module Moov
67
73
  return false unless @status == other.status
68
74
  return false unless @failure_code == other.failure_code
69
75
  return false unless @dynamic_descriptor == other.dynamic_descriptor
76
+ return false unless @scheduled_delivery_on == other.scheduled_delivery_on
70
77
  return false unless @transaction_source == other.transaction_source
71
78
  return false unless @initiated_on == other.initiated_on
72
79
  return false unless @confirmed_on == other.confirmed_on
@@ -74,6 +81,7 @@ module Moov
74
81
  return false unless @failed_on == other.failed_on
75
82
  return false unless @canceled_on == other.canceled_on
76
83
  return false unless @completed_on == other.completed_on
84
+ return false unless @deferred_on == other.deferred_on
77
85
  return false unless @interchange_qualification == other.interchange_qualification
78
86
  return false unless @fee_program == other.fee_program
79
87
  return false unless @authorization_code == other.authorization_code
@@ -14,6 +14,8 @@ class Moov::Models::Components::CardTransactionDetails
14
14
  def failure_code=(str_); end
15
15
  def dynamic_descriptor(); end
16
16
  def dynamic_descriptor=(str_); end
17
+ def scheduled_delivery_on(); end
18
+ def scheduled_delivery_on=(str_); end
17
19
  def transaction_source(); end
18
20
  def transaction_source=(str_); end
19
21
  def initiated_on(); end
@@ -28,6 +30,8 @@ class Moov::Models::Components::CardTransactionDetails
28
30
  def canceled_on=(str_); end
29
31
  def completed_on(); end
30
32
  def completed_on=(str_); end
33
+ def deferred_on(); end
34
+ def deferred_on=(str_); end
31
35
  def interchange_qualification(); end
32
36
  def interchange_qualification=(str_); end
33
37
  def fee_program(); end
@@ -16,6 +16,7 @@ module Moov
16
16
  SETTLED = new('settled')
17
17
  FAILED = new('failed')
18
18
  COMPLETED = new('completed')
19
+ DEFERRED = new('deferred')
19
20
  end
20
21
  end
21
22
  end
@@ -27,7 +27,11 @@ module Moov
27
27
  field :customer_support, Crystalline::Nilable.new(Models::Components::CustomerSupport), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerSupport') } }
28
28
  # User provided settings to manage an account.
29
29
  field :settings, Crystalline::Nilable.new(Models::Components::Settings), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('settings') } }
30
-
30
+ # Capabilities to request when the account is created. Request granular capability IDs that match your use case.
31
+ #
32
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
33
+ #
34
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
31
35
  field :capabilities, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CapabilityID)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities') } }
32
36
  # The operating mode for an account.
33
37
  field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
@@ -9,7 +9,7 @@ module Moov
9
9
  module Components
10
10
  # Request to create a new payment link.
11
11
  #
12
- # A payment link must include either `payment` or `payout` details, but not both. For payout payment links,
12
+ # A payment link must include exactly one of `payment`, `payout`, or `customAmountPayment` details. For payout payment links,
13
13
  # `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement
14
14
  # to a specific recipient.
15
15
  #
@@ -23,12 +23,12 @@ module Moov
23
23
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
24
24
  # Customizable display options for a payment link.
25
25
  field :display, Models::Components::PaymentLinkDisplayOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('display'), required: true } }
26
- # The fixed amount of the payment link.
26
+ # The fixed amount of the payment link.
27
27
  #
28
28
  # In API versions before `2026.07.00`, this was a required field.
29
29
  #
30
- # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
31
- # for `open` payment amount types.
30
+ # In API version `2026.07.00` and beyond, this field is required for `payment` and `payout` links and must be
31
+ # omitted for `customAmountPayment` links, where the payor chooses the amount.
32
32
  field :amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
33
33
  # An optional limit on the number of times this payment link can be used.
34
34
  #
@@ -42,14 +42,16 @@ module Moov
42
42
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
43
43
 
44
44
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
45
+ # Options for a custom amount payment link. Mutually exclusive with `payment` and `payout`.
46
+ field :custom_amount_payment, Crystalline::Nilable.new(Models::Components::PaymentLinkCustomAmountPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customAmountPayment') } }
45
47
  # An optional collection of line items for a payment link.
46
48
  # When line items are provided, their total plus tax must equal the payment link amount.
47
49
  field :line_items, Crystalline::Nilable.new(Models::Components::CreatePaymentLinkLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
48
50
 
49
51
  field :amount_details, Crystalline::Nilable.new(Models::Components::CreatePaymentLinkAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
50
52
 
51
- sig { params(partner_account_id: ::String, merchant_payment_method_id: ::String, display: Models::Components::PaymentLinkDisplayOptions, amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), expires_on: T.nilable(::DateTime), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), line_items: T.nilable(Models::Components::CreatePaymentLinkLineItems), amount_details: T.nilable(Models::Components::CreatePaymentLinkAmountDetails)).void }
52
- def initialize(partner_account_id:, merchant_payment_method_id:, display:, amount: nil, max_uses: nil, expires_on: nil, customer: nil, payment: nil, payout: nil, line_items: nil, amount_details: nil)
53
+ sig { params(partner_account_id: ::String, merchant_payment_method_id: ::String, display: Models::Components::PaymentLinkDisplayOptions, amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), expires_on: T.nilable(::DateTime), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), custom_amount_payment: T.nilable(Models::Components::PaymentLinkCustomAmountPaymentDetails), line_items: T.nilable(Models::Components::CreatePaymentLinkLineItems), amount_details: T.nilable(Models::Components::CreatePaymentLinkAmountDetails)).void }
54
+ def initialize(partner_account_id:, merchant_payment_method_id:, display:, amount: nil, max_uses: nil, expires_on: nil, customer: nil, payment: nil, payout: nil, custom_amount_payment: nil, line_items: nil, amount_details: nil)
53
55
  @partner_account_id = partner_account_id
54
56
  @merchant_payment_method_id = merchant_payment_method_id
55
57
  @display = display
@@ -59,6 +61,7 @@ module Moov
59
61
  @customer = customer
60
62
  @payment = payment
61
63
  @payout = payout
64
+ @custom_amount_payment = custom_amount_payment
62
65
  @line_items = line_items
63
66
  @amount_details = amount_details
64
67
  end
@@ -75,6 +78,7 @@ module Moov
75
78
  return false unless @customer == other.customer
76
79
  return false unless @payment == other.payment
77
80
  return false unless @payout == other.payout
81
+ return false unless @custom_amount_payment == other.custom_amount_payment
78
82
  return false unless @line_items == other.line_items
79
83
  return false unless @amount_details == other.amount_details
80
84
  true
@@ -26,6 +26,8 @@ class Moov::Models::Components::CreatePaymentLink
26
26
  def payment=(str_); end
27
27
  def payout(); end
28
28
  def payout=(str_); end
29
+ def custom_amount_payment(); end
30
+ def custom_amount_payment=(str_); end
29
31
  def line_items(); end
30
32
  def line_items=(str_); end
31
33
  def amount_details(); end
@@ -14,12 +14,15 @@ module Moov
14
14
 
15
15
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
16
16
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
17
+ # The scheduled date and time for the transfer to be delivered. This field is only valid for push-to-card transfers. Must be between 24 and 48 hours in the future in production. In sandbox mode, any future time up to 48 hours is accepted so integrations can test deferred delivery using the sandbox test cards with relaxed wait times.
18
+ field :scheduled_delivery_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scheduledDeliveryOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
17
19
  # An optional field to specify the type of card payout, used to route the transfer with the appropriate business application identifier (BAI).
18
20
  field :payout_type, Crystalline::Nilable.new(Models::Components::CardPayoutType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payoutType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardPayoutType, true) } }
19
21
 
20
- sig { params(dynamic_descriptor: T.nilable(::String), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
21
- def initialize(dynamic_descriptor: nil, payout_type: nil)
22
+ sig { params(dynamic_descriptor: T.nilable(::String), scheduled_delivery_on: T.nilable(::DateTime), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
23
+ def initialize(dynamic_descriptor: nil, scheduled_delivery_on: nil, payout_type: nil)
22
24
  @dynamic_descriptor = dynamic_descriptor
25
+ @scheduled_delivery_on = scheduled_delivery_on
23
26
  @payout_type = payout_type
24
27
  end
25
28
 
@@ -27,6 +30,7 @@ module Moov
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @dynamic_descriptor == other.dynamic_descriptor
33
+ return false unless @scheduled_delivery_on == other.scheduled_delivery_on
30
34
  return false unless @payout_type == other.payout_type
31
35
  true
32
36
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::CreateTransferDestinationCard
11
11
  def dynamic_descriptor(); end
12
12
  def dynamic_descriptor=(str_); end
13
+ def scheduled_delivery_on(); end
14
+ def scheduled_delivery_on=(str_); end
13
15
  def payout_type(); end
14
16
  def payout_type=(str_); end
15
17
  end
@@ -0,0 +1,52 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class CustomAmountPaymentDetailsError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :allowed_methods, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedMethods') } }
17
+
18
+ field :card_details, Crystalline::Nilable.new(Models::Components::CardPaymentDetailsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
+
20
+ field :ach_details, Crystalline::Nilable.new(Models::Components::ACHPaymentDetailsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
+
22
+ field :metadata, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
23
+
24
+ field :amount_range, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountRange') } }
25
+
26
+ field :suggested_amounts, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('suggestedAmounts') } }
27
+
28
+ sig { params(allowed_methods: T.nilable(::String), card_details: T.nilable(Models::Components::CardPaymentDetailsError), ach_details: T.nilable(Models::Components::ACHPaymentDetailsError), metadata: T.nilable(::String), amount_range: T.nilable(::String), suggested_amounts: T.nilable(::String)).void }
29
+ def initialize(allowed_methods: nil, card_details: nil, ach_details: nil, metadata: nil, amount_range: nil, suggested_amounts: nil)
30
+ @allowed_methods = allowed_methods
31
+ @card_details = card_details
32
+ @ach_details = ach_details
33
+ @metadata = metadata
34
+ @amount_range = amount_range
35
+ @suggested_amounts = suggested_amounts
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @allowed_methods == other.allowed_methods
42
+ return false unless @card_details == other.card_details
43
+ return false unless @ach_details == other.ach_details
44
+ return false unless @metadata == other.metadata
45
+ return false unless @amount_range == other.amount_range
46
+ return false unless @suggested_amounts == other.suggested_amounts
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CustomAmountPaymentDetailsError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CustomAmountPaymentDetailsError
11
+ def allowed_methods(); end
12
+ def allowed_methods=(str_); end
13
+ def card_details(); end
14
+ def card_details=(str_); end
15
+ def ach_details(); end
16
+ def ach_details=(str_); end
17
+ def metadata(); end
18
+ def metadata=(str_); end
19
+ def amount_range(); end
20
+ def amount_range=(str_); end
21
+ def suggested_amounts(); end
22
+ def suggested_amounts=(str_); end
23
+ end