moov_ruby 26.10.0.pre.dev.1 → 26.10.0.pre.dev.2

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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/avatars.rb +4 -4
  3. data/lib/moov/card_issuing.rb +116 -0
  4. data/lib/moov/client.rb +2 -2
  5. data/lib/moov/enriched_address.rb +1 -1
  6. data/lib/moov/enriched_profile.rb +1 -1
  7. data/lib/moov/institutions.rb +1 -1
  8. data/lib/moov/models/components/achcreditoptions.rb +40 -0
  9. data/lib/moov/models/components/achcreditoptions.rbi +17 -0
  10. data/lib/moov/models/components/achcredittransferprocessingdetails.rb +40 -0
  11. data/lib/moov/models/components/achcredittransferprocessingdetails.rbi +17 -0
  12. data/lib/moov/models/components/achdebitoptions.rb +48 -0
  13. data/lib/moov/models/components/achdebitoptions.rbi +21 -0
  14. data/lib/moov/models/components/achdebittransferprocessingdetails.rb +40 -0
  15. data/lib/moov/models/components/achdebittransferprocessingdetails.rbi +17 -0
  16. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  17. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  18. data/lib/moov/models/components/asynccreatedrefund.rb +7 -3
  19. data/lib/moov/models/components/asynccreatedrefund.rbi +2 -0
  20. data/lib/moov/models/components/capture.rb +77 -0
  21. data/lib/moov/models/components/capture.rbi +35 -0
  22. data/lib/moov/models/components/{refundcardstatus.rb → capturestatus.rb} +5 -4
  23. data/lib/moov/models/components/{refundcardstatus.rbi → capturestatus.rbi} +2 -2
  24. data/lib/moov/models/components/cardacquiringrefund.rb +11 -7
  25. data/lib/moov/models/components/cardacquiringrefund.rbi +4 -2
  26. data/lib/moov/models/components/cardpaymentoptions.rb +39 -0
  27. data/lib/moov/models/components/cardpaymentoptions.rbi +15 -0
  28. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +32 -0
  29. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +13 -0
  30. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +44 -0
  31. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +19 -0
  32. data/lib/moov/models/components/createcancellation.rb +32 -0
  33. data/lib/moov/models/components/createcancellation.rbi +13 -0
  34. data/lib/moov/models/components/createcapture.rb +65 -0
  35. data/lib/moov/models/components/createcapture.rbi +29 -0
  36. data/lib/moov/models/components/createdtransfer.rb +22 -22
  37. data/lib/moov/models/components/createdtransfer.rbi +8 -8
  38. data/lib/moov/models/components/createrefund.rb +9 -5
  39. data/lib/moov/models/components/createrefund.rbi +2 -0
  40. data/lib/moov/models/components/createreversal.rb +3 -3
  41. data/lib/moov/models/components/createtransfer.rb +4 -4
  42. data/lib/moov/models/components/createtransferfacilitatorfee.rb +36 -0
  43. data/lib/moov/models/components/createtransferfacilitatorfee.rbi +15 -0
  44. data/lib/moov/models/components/createtransferoptions.rb +2 -2
  45. data/lib/moov/models/components/fullissuedcard.rb +3 -3
  46. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +44 -0
  47. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rbi +19 -0
  48. data/lib/moov/models/components/issuedcard.rb +3 -3
  49. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  50. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  51. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  52. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  53. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  54. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  55. data/lib/moov/models/components/issuingcontrols.rb +18 -2
  56. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  57. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  58. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  59. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  60. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  61. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
  62. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  63. data/lib/moov/models/components/issuingintervallimit.rb +3 -0
  64. data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
  65. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  66. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  67. data/lib/moov/models/components/{achtransactionstatus.rbi → issuingscheduleday.rbi} +2 -2
  68. data/lib/moov/models/components/issuingvelocitylimit.rb +10 -6
  69. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  70. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  71. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  72. data/lib/moov/models/components/merchantcategories.rb +32 -0
  73. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  74. data/lib/moov/models/components/merchantcategory.rb +37 -0
  75. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  76. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  77. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  78. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  79. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  80. data/lib/moov/models/components/merchantentry.rb +40 -0
  81. data/lib/moov/models/components/merchantentry.rbi +17 -0
  82. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  83. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  84. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  85. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  86. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  87. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  88. data/lib/moov/models/components/moovfeedetails.rb +5 -5
  89. data/lib/moov/models/components/paymentmethodswallet.rb +1 -0
  90. data/lib/moov/models/components/pullfromcardoptions.rb +39 -0
  91. data/lib/moov/models/components/pullfromcardoptions.rbi +15 -0
  92. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +44 -0
  93. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +19 -0
  94. data/lib/moov/models/components/pushtocardoptions.rb +32 -0
  95. data/lib/moov/models/components/pushtocardoptions.rbi +13 -0
  96. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +44 -0
  97. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +19 -0
  98. data/lib/moov/models/components/refundprocessingdetails.rb +32 -0
  99. data/lib/moov/models/components/refundprocessingdetails.rbi +13 -0
  100. data/lib/moov/models/components/schedulewindow.rb +40 -0
  101. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  102. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  103. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  104. data/lib/moov/models/components/sendfunds.rb +6 -2
  105. data/lib/moov/models/components/sendfunds.rbi +2 -0
  106. data/lib/moov/models/components/sendfundserror.rb +6 -2
  107. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  108. data/lib/moov/models/components/sendfundswire.rb +32 -0
  109. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  110. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  111. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  112. data/lib/moov/models/components/transfer.rb +22 -22
  113. data/lib/moov/models/components/transfer.rbi +8 -8
  114. data/lib/moov/models/components/transferauthorization.rb +52 -0
  115. data/lib/moov/models/components/transferauthorization.rbi +23 -0
  116. data/lib/moov/models/components/transferdestination.rb +5 -17
  117. data/lib/moov/models/components/transferdestination.rbi +0 -6
  118. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -0
  119. data/lib/moov/models/components/transferprocessingdetails.rb +52 -0
  120. data/lib/moov/models/components/transferprocessingdetails.rbi +23 -0
  121. data/lib/moov/models/components/transferrailoptions.rb +48 -0
  122. data/lib/moov/models/components/transferrailoptions.rbi +21 -0
  123. data/lib/moov/models/components/transfersource.rb +9 -17
  124. data/lib/moov/models/components/transfersource.rbi +2 -6
  125. data/lib/moov/models/components/transferstatus.rb +1 -0
  126. data/lib/moov/models/components/transfertype.rb +25 -0
  127. data/lib/moov/models/components/{cardtransactionstatus.rbi → transfertype.rbi} +2 -2
  128. data/lib/moov/models/components/updateissuedcard.rb +6 -2
  129. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  130. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  131. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  132. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  133. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  134. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  135. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  136. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  137. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  138. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  139. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  140. data/lib/moov/models/components/wallet.rb +1 -0
  141. data/lib/moov/models/components/wallettype.rb +2 -0
  142. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  143. data/lib/moov/models/components.rb +47 -9
  144. data/lib/moov/models/errors/capturevalidationerror.rb +68 -0
  145. data/lib/moov/models/errors/capturevalidationerror.rbi +31 -0
  146. data/lib/moov/models/errors/cardacquiringrefund_error.rb +11 -7
  147. data/lib/moov/models/errors/cardacquiringrefund_error.rbi +4 -2
  148. data/lib/moov/models/errors/transfer_error.rb +22 -22
  149. data/lib/moov/models/errors/transfer_error.rbi +8 -8
  150. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  151. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  152. data/lib/moov/models/errors.rb +1 -0
  153. data/lib/moov/models/operations/createcancellation_request.rb +6 -2
  154. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  155. data/lib/moov/models/operations/createcapture_request.rb +44 -0
  156. data/lib/moov/models/operations/createcapture_request.rbi +19 -0
  157. data/lib/moov/models/operations/createcapture_response.rb +48 -0
  158. data/lib/moov/models/operations/createcapture_response.rbi +21 -0
  159. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  160. data/lib/moov/models/operations/getcapture_request.rb +40 -0
  161. data/lib/moov/models/operations/getcapture_request.rbi +17 -0
  162. data/lib/moov/models/operations/getcapture_response.rb +48 -0
  163. data/lib/moov/models/operations/getcapture_response.rbi +21 -0
  164. data/lib/moov/models/operations/initiaterefund_request.rb +6 -6
  165. data/lib/moov/models/operations/initiaterefund_request.rbi +2 -2
  166. data/lib/moov/models/operations/listcaptures_request.rb +36 -0
  167. data/lib/moov/models/operations/listcaptures_request.rbi +15 -0
  168. data/lib/moov/models/operations/listcaptures_response.rb +48 -0
  169. data/lib/moov/models/operations/listcaptures_response.rbi +21 -0
  170. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  171. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  172. data/lib/moov/models/operations/listtransfers_request.rb +14 -2
  173. data/lib/moov/models/operations/listtransfers_request.rbi +6 -0
  174. data/lib/moov/models/operations.rb +7 -0
  175. data/lib/moov/sdkconfiguration.rb +2 -2
  176. data/lib/moov/transfers.rb +434 -5
  177. data/lib/moov_ruby.rb +1 -1
  178. metadata +112 -20
  179. data/lib/moov/models/components/achtransactiondetails.rb +0 -92
  180. data/lib/moov/models/components/achtransactiondetails.rbi +0 -43
  181. data/lib/moov/models/components/achtransactionstatus.rb +0 -24
  182. data/lib/moov/models/components/cardacquiringdispute.rb +0 -40
  183. data/lib/moov/models/components/cardacquiringdispute.rbi +0 -17
  184. data/lib/moov/models/components/cardtransactiondetails.rb +0 -93
  185. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -41
  186. data/lib/moov/models/components/cardtransactionstatus.rb +0 -24
  187. data/lib/moov/models/components/instantbanktransactiondetails.rb +0 -64
  188. data/lib/moov/models/components/instantbanktransactiondetails.rbi +0 -29
  189. data/lib/moov/models/components/instantbanktransactionstatus.rb +0 -21
  190. data/lib/moov/models/components/instantbanktransactionstatus.rbi +0 -11
  191. data/lib/moov/models/components/refundcarddetails.rb +0 -56
  192. data/lib/moov/models/components/refundcarddetails.rbi +0 -25
@@ -14,6 +14,8 @@ module Moov
14
14
 
15
15
 
16
16
  field :transfer_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID'), required: true } }
17
+ # The rail and direction used to move funds for a transfer.
18
+ field :transfer_type, Models::Components::TransferType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferType, false) } }
17
19
 
18
20
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
19
21
 
@@ -23,7 +25,11 @@ module Moov
23
25
  # Status of a transfer.
24
26
  field :status, Models::Components::TransferStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferStatus, false) } }
25
27
 
26
- field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
28
+ field :amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
29
+
30
+ field :options, Models::Components::TransferRailOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options'), required: true } }
31
+
32
+ field :processing_details, Models::Components::TransferProcessingDetails, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('processingDetails'), required: true } }
27
33
 
28
34
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
35
  # Reason for a transfer's failure.
@@ -35,9 +41,7 @@ module Moov
35
41
  # Total or markup fee.
36
42
  field :facilitator_fee, Crystalline::Nilable.new(Models::Components::FacilitatorFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFee') } }
37
43
  # Fees charged to your platform account for transfers.
38
- field :moov_fee, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFee') } }
39
- # Same as `moovFee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
40
- field :moov_fee_decimal, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFeeDecimal') } }
44
+ field :moov_fee, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFee') } }
41
45
  # Processing and pass-through costs that add up to the moovFee.
42
46
  field :moov_fee_details, Crystalline::Nilable.new(Models::Components::MoovFeeDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFeeDetails') } }
43
47
  # Fees charged to accounts involved in the transfer.
@@ -45,15 +49,9 @@ module Moov
45
49
 
46
50
  field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('groupID') } }
47
51
 
48
- field :cancellations, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::Cancellation)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cancellations') } }
49
-
50
- field :refunded_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundedAmount') } }
52
+ field :refunded_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundedAmount') } }
51
53
 
52
- field :refunds, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CardAcquiringRefund)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refunds') } }
53
-
54
- field :disputed_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputedAmount') } }
55
-
56
- field :disputes, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CardAcquiringDispute)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputes') } }
54
+ field :disputed_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputedAmount') } }
57
55
  # ID of the sweep that created this transfer.
58
56
  field :sweep_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sweepID') } }
59
57
 
@@ -72,29 +70,30 @@ module Moov
72
70
 
73
71
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
74
72
 
75
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), invoice_id: T.nilable(::String), amount_details: T.nilable(Models::Components::TransferAmountDetails)).void }
76
- def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, invoice_id: nil, amount_details: nil)
73
+ field :authorization, Crystalline::Nilable.new(Models::Components::TransferAuthorization), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorization') } }
74
+
75
+ sig { params(transfer_id: ::String, transfer_type: Models::Components::TransferType, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::AmountDecimal, options: Models::Components::TransferRailOptions, processing_details: Models::Components::TransferProcessingDetails, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(Models::Components::AmountDecimal), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), refunded_amount: T.nilable(Models::Components::AmountDecimal), disputed_amount: T.nilable(Models::Components::AmountDecimal), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), invoice_id: T.nilable(::String), amount_details: T.nilable(Models::Components::TransferAmountDetails), authorization: T.nilable(Models::Components::TransferAuthorization)).void }
76
+ def initialize(transfer_id:, transfer_type:, created_on:, source:, destination:, status:, amount:, options:, processing_details:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, refunded_amount: nil, disputed_amount: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, invoice_id: nil, amount_details: nil, authorization: nil)
77
77
  @transfer_id = transfer_id
78
+ @transfer_type = transfer_type
78
79
  @created_on = created_on
79
80
  @source = source
80
81
  @destination = destination
81
82
  @status = status
82
83
  @amount = amount
84
+ @options = options
85
+ @processing_details = processing_details
83
86
  @completed_on = completed_on
84
87
  @failure_reason = failure_reason
85
88
  @description = description
86
89
  @metadata = metadata
87
90
  @facilitator_fee = facilitator_fee
88
91
  @moov_fee = moov_fee
89
- @moov_fee_decimal = moov_fee_decimal
90
92
  @moov_fee_details = moov_fee_details
91
93
  @moov_fees = moov_fees
92
94
  @group_id = group_id
93
- @cancellations = cancellations
94
95
  @refunded_amount = refunded_amount
95
- @refunds = refunds
96
96
  @disputed_amount = disputed_amount
97
- @disputes = disputes
98
97
  @sweep_id = sweep_id
99
98
  @schedule_id = schedule_id
100
99
  @occurrence_id = occurrence_id
@@ -103,32 +102,32 @@ module Moov
103
102
  @line_items = line_items
104
103
  @invoice_id = invoice_id
105
104
  @amount_details = amount_details
105
+ @authorization = authorization
106
106
  end
107
107
 
108
108
  sig { params(other: T.untyped).returns(T::Boolean) }
109
109
  def ==(other)
110
110
  return false unless other.is_a? self.class
111
111
  return false unless @transfer_id == other.transfer_id
112
+ return false unless @transfer_type == other.transfer_type
112
113
  return false unless @created_on == other.created_on
113
114
  return false unless @source == other.source
114
115
  return false unless @destination == other.destination
115
116
  return false unless @status == other.status
116
117
  return false unless @amount == other.amount
118
+ return false unless @options == other.options
119
+ return false unless @processing_details == other.processing_details
117
120
  return false unless @completed_on == other.completed_on
118
121
  return false unless @failure_reason == other.failure_reason
119
122
  return false unless @description == other.description
120
123
  return false unless @metadata == other.metadata
121
124
  return false unless @facilitator_fee == other.facilitator_fee
122
125
  return false unless @moov_fee == other.moov_fee
123
- return false unless @moov_fee_decimal == other.moov_fee_decimal
124
126
  return false unless @moov_fee_details == other.moov_fee_details
125
127
  return false unless @moov_fees == other.moov_fees
126
128
  return false unless @group_id == other.group_id
127
- return false unless @cancellations == other.cancellations
128
129
  return false unless @refunded_amount == other.refunded_amount
129
- return false unless @refunds == other.refunds
130
130
  return false unless @disputed_amount == other.disputed_amount
131
- return false unless @disputes == other.disputes
132
131
  return false unless @sweep_id == other.sweep_id
133
132
  return false unless @schedule_id == other.schedule_id
134
133
  return false unless @occurrence_id == other.occurrence_id
@@ -137,6 +136,7 @@ module Moov
137
136
  return false unless @line_items == other.line_items
138
137
  return false unless @invoice_id == other.invoice_id
139
138
  return false unless @amount_details == other.amount_details
139
+ return false unless @authorization == other.authorization
140
140
  true
141
141
  end
142
142
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::Transfer
11
11
  def transfer_id(); end
12
12
  def transfer_id=(str_); end
13
+ def transfer_type(); end
14
+ def transfer_type=(str_); end
13
15
  def created_on(); end
14
16
  def created_on=(str_); end
15
17
  def source(); end
@@ -20,6 +22,10 @@ class Moov::Models::Components::Transfer
20
22
  def status=(str_); end
21
23
  def amount(); end
22
24
  def amount=(str_); end
25
+ def options(); end
26
+ def options=(str_); end
27
+ def processing_details(); end
28
+ def processing_details=(str_); end
23
29
  def completed_on(); end
24
30
  def completed_on=(str_); end
25
31
  def failure_reason(); end
@@ -32,24 +38,16 @@ class Moov::Models::Components::Transfer
32
38
  def facilitator_fee=(str_); end
33
39
  def moov_fee(); end
34
40
  def moov_fee=(str_); end
35
- def moov_fee_decimal(); end
36
- def moov_fee_decimal=(str_); end
37
41
  def moov_fee_details(); end
38
42
  def moov_fee_details=(str_); end
39
43
  def moov_fees(); end
40
44
  def moov_fees=(str_); end
41
45
  def group_id(); end
42
46
  def group_id=(str_); end
43
- def cancellations(); end
44
- def cancellations=(str_); end
45
47
  def refunded_amount(); end
46
48
  def refunded_amount=(str_); end
47
- def refunds(); end
48
- def refunds=(str_); end
49
49
  def disputed_amount(); end
50
50
  def disputed_amount=(str_); end
51
- def disputes(); end
52
- def disputes=(str_); end
53
51
  def sweep_id(); end
54
52
  def sweep_id=(str_); end
55
53
  def schedule_id(); end
@@ -66,4 +64,6 @@ class Moov::Models::Components::Transfer
66
64
  def invoice_id=(str_); end
67
65
  def amount_details(); end
68
66
  def amount_details=(str_); end
67
+ def authorization(); end
68
+ def authorization=(str_); end
69
69
  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 TransferAuthorization
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :authorization_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationID'), required: true } }
17
+
18
+ field :requested_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('requestedAmount'), required: true } }
19
+
20
+ field :authorized_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedAmount'), required: true } }
21
+
22
+ field :captured_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capturedAmount'), required: true } }
23
+
24
+ field :capturable_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capturableAmount'), required: true } }
25
+
26
+ field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
27
+
28
+ sig { params(authorization_id: ::String, requested_amount: Models::Components::AmountDecimal, authorized_amount: Models::Components::AmountDecimal, captured_amount: Models::Components::AmountDecimal, capturable_amount: Models::Components::AmountDecimal, expires_on: T.nilable(::DateTime)).void }
29
+ def initialize(authorization_id:, requested_amount:, authorized_amount:, captured_amount:, capturable_amount:, expires_on: nil)
30
+ @authorization_id = authorization_id
31
+ @requested_amount = requested_amount
32
+ @authorized_amount = authorized_amount
33
+ @captured_amount = captured_amount
34
+ @capturable_amount = capturable_amount
35
+ @expires_on = expires_on
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 @authorization_id == other.authorization_id
42
+ return false unless @requested_amount == other.requested_amount
43
+ return false unless @authorized_amount == other.authorized_amount
44
+ return false unless @captured_amount == other.captured_amount
45
+ return false unless @capturable_amount == other.capturable_amount
46
+ return false unless @expires_on == other.expires_on
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::TransferAuthorization
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferAuthorization
11
+ def authorization_id(); end
12
+ def authorization_id=(str_); end
13
+ def requested_amount(); end
14
+ def requested_amount=(str_); end
15
+ def authorized_amount(); end
16
+ def authorized_amount=(str_); end
17
+ def captured_amount(); end
18
+ def captured_amount=(str_); end
19
+ def capturable_amount(); end
20
+ def capturable_amount=(str_); end
21
+ def expires_on(); end
22
+ def expires_on=(str_); end
23
+ end
@@ -13,41 +13,32 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
16
+ field :payment_method_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID') } }
17
17
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
18
+ field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
19
19
 
20
- field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
20
+ field :account, Crystalline::Nilable.new(Models::Components::TransferAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account') } }
21
21
  # A bank account as contained within a payment method.
22
22
  field :bank_account, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsBankAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount') } }
23
23
 
24
24
  field :wallet, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsWallet), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wallet') } }
25
25
  # A card as contained within a payment method.
26
26
  field :card, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('card') } }
27
- # ACH specific details about the transaction.
28
- field :ach_details, Crystalline::Nilable.new(Models::Components::ACHTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
29
27
  # Describes an Apple Pay token on a Moov account.
30
28
  field :apple_pay, Crystalline::Nilable.new(Models::Components::ApplePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay') } }
31
29
  # Describes a Google Pay token on a Moov account.
32
30
  field :google_pay, Crystalline::Nilable.new(Models::Components::GooglePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay') } }
33
- # Card-specific details about the transaction.
34
- field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
35
- # Instant-bank specific details about the transaction.
36
- field :instant_bank_details, Crystalline::Nilable.new(Models::Components::InstantBankTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankDetails') } }
37
31
 
38
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
39
- def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, google_pay: nil, card_details: nil, instant_bank_details: nil)
32
+ sig { params(payment_method_id: T.nilable(::String), payment_method_type: T.nilable(Models::Components::TransferPaymentMethodType), account: T.nilable(Models::Components::TransferAccount), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse)).void }
33
+ def initialize(payment_method_id: nil, payment_method_type: nil, account: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, google_pay: nil)
40
34
  @payment_method_id = payment_method_id
41
35
  @payment_method_type = payment_method_type
42
36
  @account = account
43
37
  @bank_account = bank_account
44
38
  @wallet = wallet
45
39
  @card = card
46
- @ach_details = ach_details
47
40
  @apple_pay = apple_pay
48
41
  @google_pay = google_pay
49
- @card_details = card_details
50
- @instant_bank_details = instant_bank_details
51
42
  end
52
43
 
53
44
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -59,11 +50,8 @@ module Moov
59
50
  return false unless @bank_account == other.bank_account
60
51
  return false unless @wallet == other.wallet
61
52
  return false unless @card == other.card
62
- return false unless @ach_details == other.ach_details
63
53
  return false unless @apple_pay == other.apple_pay
64
54
  return false unless @google_pay == other.google_pay
65
- return false unless @card_details == other.card_details
66
- return false unless @instant_bank_details == other.instant_bank_details
67
55
  true
68
56
  end
69
57
  end
@@ -20,14 +20,8 @@ class Moov::Models::Components::TransferDestination
20
20
  def wallet=(str_); end
21
21
  def card(); end
22
22
  def card=(str_); end
23
- def ach_details(); end
24
- def ach_details=(str_); end
25
23
  def apple_pay(); end
26
24
  def apple_pay=(str_); end
27
25
  def google_pay(); end
28
26
  def google_pay=(str_); end
29
- def card_details(); end
30
- def card_details=(str_); end
31
- def instant_bank_details(); end
32
- def instant_bank_details=(str_); end
33
27
  end
@@ -19,6 +19,7 @@ module Moov
19
19
  # Type of a wallet.
20
20
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
21
21
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
22
+ # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
22
23
  field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletType, false) } }
23
24
 
24
25
  sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
@@ -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 TransferProcessingDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :card_payment, Crystalline::Nilable.new(Models::Components::CardPaymentTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardPayment') } }
17
+
18
+ field :push_to_card, Crystalline::Nilable.new(Models::Components::PushToCardTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushToCard') } }
19
+
20
+ field :pull_from_card, Crystalline::Nilable.new(Models::Components::PullFromCardTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pullFromCard') } }
21
+
22
+ field :ach_debit, Crystalline::Nilable.new(Models::Components::ACHDebitTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
+
24
+ field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+
26
+ field :instant_bank_credit, Crystalline::Nilable.new(Models::Components::InstantBankCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankCredit') } }
27
+
28
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentTransferProcessingDetails), push_to_card: T.nilable(Models::Components::PushToCardTransferProcessingDetails), pull_from_card: T.nilable(Models::Components::PullFromCardTransferProcessingDetails), ach_debit: T.nilable(Models::Components::ACHDebitTransferProcessingDetails), ach_credit: T.nilable(Models::Components::ACHCreditTransferProcessingDetails), instant_bank_credit: T.nilable(Models::Components::InstantBankCreditTransferProcessingDetails)).void }
29
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, instant_bank_credit: nil)
30
+ @card_payment = card_payment
31
+ @push_to_card = push_to_card
32
+ @pull_from_card = pull_from_card
33
+ @ach_debit = ach_debit
34
+ @ach_credit = ach_credit
35
+ @instant_bank_credit = instant_bank_credit
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 @card_payment == other.card_payment
42
+ return false unless @push_to_card == other.push_to_card
43
+ return false unless @pull_from_card == other.pull_from_card
44
+ return false unless @ach_debit == other.ach_debit
45
+ return false unless @ach_credit == other.ach_credit
46
+ return false unless @instant_bank_credit == other.instant_bank_credit
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::TransferProcessingDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferProcessingDetails
11
+ def card_payment(); end
12
+ def card_payment=(str_); end
13
+ def push_to_card(); end
14
+ def push_to_card=(str_); end
15
+ def pull_from_card(); end
16
+ def pull_from_card=(str_); end
17
+ def ach_debit(); end
18
+ def ach_debit=(str_); end
19
+ def ach_credit(); end
20
+ def ach_credit=(str_); end
21
+ def instant_bank_credit(); end
22
+ def instant_bank_credit=(str_); end
23
+ end
@@ -0,0 +1,48 @@
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 TransferRailOptions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :card_payment, Crystalline::Nilable.new(Models::Components::CardPaymentOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardPayment') } }
17
+
18
+ field :push_to_card, Crystalline::Nilable.new(Models::Components::PushToCardOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushToCard') } }
19
+
20
+ field :pull_from_card, Crystalline::Nilable.new(Models::Components::PullFromCardOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pullFromCard') } }
21
+
22
+ field :ach_debit, Crystalline::Nilable.new(Models::Components::ACHDebitOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
+
24
+ field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+
26
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentOptions), push_to_card: T.nilable(Models::Components::PushToCardOptions), pull_from_card: T.nilable(Models::Components::PullFromCardOptions), ach_debit: T.nilable(Models::Components::ACHDebitOptions), ach_credit: T.nilable(Models::Components::ACHCreditOptions)).void }
27
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil)
28
+ @card_payment = card_payment
29
+ @push_to_card = push_to_card
30
+ @pull_from_card = pull_from_card
31
+ @ach_debit = ach_debit
32
+ @ach_credit = ach_credit
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @card_payment == other.card_payment
39
+ return false unless @push_to_card == other.push_to_card
40
+ return false unless @pull_from_card == other.pull_from_card
41
+ return false unless @ach_debit == other.ach_debit
42
+ return false unless @ach_credit == other.ach_credit
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferRailOptions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferRailOptions
11
+ def card_payment(); end
12
+ def card_payment=(str_); end
13
+ def push_to_card(); end
14
+ def push_to_card=(str_); end
15
+ def pull_from_card(); end
16
+ def pull_from_card=(str_); end
17
+ def ach_debit(); end
18
+ def ach_debit=(str_); end
19
+ def ach_credit(); end
20
+ def ach_credit=(str_); end
21
+ end
@@ -12,14 +12,14 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
+ # String present only if the transfer is part of a transfer group.
16
+ field :transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID') } }
15
17
 
16
- field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
18
+ field :payment_method_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID') } }
17
19
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
20
+ field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
19
21
 
20
- field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
21
- # String present only if the transfer is part of a transfer group.
22
- field :transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID') } }
22
+ field :account, Crystalline::Nilable.new(Models::Components::TransferAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account') } }
23
23
  # A bank account as contained within a payment method.
24
24
  field :bank_account, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsBankAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount') } }
25
25
 
@@ -32,42 +32,34 @@ module Moov
32
32
  field :google_pay, Crystalline::Nilable.new(Models::Components::GooglePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay') } }
33
33
  # Describes payment card details captured with tap or in-person payment.
34
34
  field :terminal_card, Crystalline::Nilable.new(Models::Components::TransferTerminalCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('terminalCard') } }
35
- # Card-specific details about the transaction.
36
- field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
37
- # ACH specific details about the transaction.
38
- field :ach_details, Crystalline::Nilable.new(Models::Components::ACHTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
39
35
 
40
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, transfer_id: T.nilable(::String), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), terminal_card: T.nilable(Models::Components::TransferTerminalCard), card_details: T.nilable(Models::Components::CardTransactionDetails), ach_details: T.nilable(Models::Components::ACHTransactionDetails)).void }
41
- def initialize(payment_method_id:, payment_method_type:, account:, transfer_id: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, google_pay: nil, terminal_card: nil, card_details: nil, ach_details: nil)
36
+ sig { params(transfer_id: T.nilable(::String), payment_method_id: T.nilable(::String), payment_method_type: T.nilable(Models::Components::TransferPaymentMethodType), account: T.nilable(Models::Components::TransferAccount), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), terminal_card: T.nilable(Models::Components::TransferTerminalCard)).void }
37
+ def initialize(transfer_id: nil, payment_method_id: nil, payment_method_type: nil, account: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, google_pay: nil, terminal_card: nil)
38
+ @transfer_id = transfer_id
42
39
  @payment_method_id = payment_method_id
43
40
  @payment_method_type = payment_method_type
44
41
  @account = account
45
- @transfer_id = transfer_id
46
42
  @bank_account = bank_account
47
43
  @wallet = wallet
48
44
  @card = card
49
45
  @apple_pay = apple_pay
50
46
  @google_pay = google_pay
51
47
  @terminal_card = terminal_card
52
- @card_details = card_details
53
- @ach_details = ach_details
54
48
  end
55
49
 
56
50
  sig { params(other: T.untyped).returns(T::Boolean) }
57
51
  def ==(other)
58
52
  return false unless other.is_a? self.class
53
+ return false unless @transfer_id == other.transfer_id
59
54
  return false unless @payment_method_id == other.payment_method_id
60
55
  return false unless @payment_method_type == other.payment_method_type
61
56
  return false unless @account == other.account
62
- return false unless @transfer_id == other.transfer_id
63
57
  return false unless @bank_account == other.bank_account
64
58
  return false unless @wallet == other.wallet
65
59
  return false unless @card == other.card
66
60
  return false unless @apple_pay == other.apple_pay
67
61
  return false unless @google_pay == other.google_pay
68
62
  return false unless @terminal_card == other.terminal_card
69
- return false unless @card_details == other.card_details
70
- return false unless @ach_details == other.ach_details
71
63
  true
72
64
  end
73
65
  end
@@ -8,14 +8,14 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::TransferSource
11
+ def transfer_id(); end
12
+ def transfer_id=(str_); end
11
13
  def payment_method_id(); end
12
14
  def payment_method_id=(str_); end
13
15
  def payment_method_type(); end
14
16
  def payment_method_type=(str_); end
15
17
  def account(); end
16
18
  def account=(str_); end
17
- def transfer_id(); end
18
- def transfer_id=(str_); end
19
19
  def bank_account(); end
20
20
  def bank_account=(str_); end
21
21
  def wallet(); end
@@ -28,8 +28,4 @@ class Moov::Models::Components::TransferSource
28
28
  def google_pay=(str_); end
29
29
  def terminal_card(); end
30
30
  def terminal_card=(str_); end
31
- def card_details(); end
32
- def card_details=(str_); end
33
- def ach_details(); end
34
- def ach_details=(str_); end
35
31
  end
@@ -16,6 +16,7 @@ module Moov
16
16
  FAILED = new('failed')
17
17
  REVERSED = new('reversed')
18
18
  QUEUED = new('queued')
19
+ AWAITING_CAPTURE = new('awaiting-capture')
19
20
  CANCELED = new('canceled')
20
21
  end
21
22
  end
@@ -0,0 +1,25 @@
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
+ # TransferType - The rail and direction used to move funds for a transfer.
11
+ class TransferType < T::Enum
12
+ enums do
13
+ CARD_PAYMENT = new('card-payment')
14
+ PUSH_TO_CARD = new('push-to-card')
15
+ PULL_FROM_CARD = new('pull-from-card')
16
+ ACH_DEBIT = new('ach-debit')
17
+ ACH_CREDIT = new('ach-credit')
18
+ ACH_DEBIT_TO_ACH_CREDIT = new('ach-debit-to-ach-credit')
19
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
20
+ WALLET = new('wallet')
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end