moov_ruby 26.10.0.pre.dev.7 → 26.10.0.pre.dev.9

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/card_issuing.rb +538 -0
  3. data/lib/moov/files.rb +186 -0
  4. data/lib/moov/invoices.rb +180 -0
  5. data/lib/moov/issuing_transactions.rb +246 -0
  6. data/lib/moov/models/components/applicationscope.rb +1 -0
  7. data/lib/moov/models/components/authorizationsimulationasyncresponse.rb +32 -0
  8. data/lib/moov/models/components/authorizationsimulationasyncresponse.rbi +13 -0
  9. data/lib/moov/models/components/bankaccount.rb +7 -2
  10. data/lib/moov/models/components/bankaccount.rbi +2 -0
  11. data/lib/moov/models/components/bankaccountpayload.rb +7 -2
  12. data/lib/moov/models/components/bankaccountpayload.rbi +2 -0
  13. data/lib/moov/models/components/capturestatus.rb +1 -0
  14. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +6 -2
  15. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +2 -0
  16. data/lib/moov/models/components/createauthorizationsimulation.rb +40 -0
  17. data/lib/moov/models/components/createauthorizationsimulation.rbi +17 -0
  18. data/lib/moov/models/components/{createcancellation.rb → createclearingsimulation.rb} +5 -7
  19. data/lib/moov/models/components/{createcancellation.rbi → createclearingsimulation.rbi} +2 -2
  20. data/lib/moov/models/components/createdtransfer.rb +2 -1
  21. data/lib/moov/models/components/createinvoice.rb +14 -2
  22. data/lib/moov/models/components/createinvoice.rbi +6 -0
  23. data/lib/moov/models/components/createinvoicenotification.rb +32 -0
  24. data/lib/moov/models/components/createinvoicenotification.rbi +13 -0
  25. data/lib/moov/models/components/createtransfer.rb +6 -2
  26. data/lib/moov/models/components/createtransfer.rbi +2 -0
  27. data/lib/moov/models/components/createtransferdestination.rb +2 -14
  28. data/lib/moov/models/components/createtransferdestination.rbi +0 -6
  29. data/lib/moov/models/components/createtransferrailoptions.rb +48 -0
  30. data/lib/moov/models/components/createtransferrailoptions.rbi +21 -0
  31. data/lib/moov/models/components/createtransferresponse.rb +27 -0
  32. data/lib/moov/models/components/createtransferresponse.rbi +11 -0
  33. data/lib/moov/models/components/createtransfersource.rb +2 -10
  34. data/lib/moov/models/components/createtransfersource.rbi +0 -4
  35. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +1 -0
  36. data/lib/moov/models/components/incurredfee.rb +6 -2
  37. data/lib/moov/models/components/incurredfee.rbi +2 -0
  38. data/lib/moov/models/components/invoice.rb +6 -2
  39. data/lib/moov/models/components/invoice.rbi +2 -0
  40. data/lib/moov/models/components/invoicenotificationlimitedchannel.rb +36 -0
  41. data/lib/moov/models/components/invoicenotificationlimitedchannel.rbi +15 -0
  42. data/lib/moov/models/components/invoicepaymentoptions.rb +40 -0
  43. data/lib/moov/models/components/invoicepaymentoptions.rbi +17 -0
  44. data/lib/moov/models/components/invoicepaymentoptionserror.rb +40 -0
  45. data/lib/moov/models/components/invoicepaymentoptionserror.rbi +17 -0
  46. data/lib/moov/models/components/invoicepaymentoptionsupdate.rb +40 -0
  47. data/lib/moov/models/components/invoicepaymentoptionsupdate.rbi +17 -0
  48. data/lib/moov/models/components/issuedcardactivity.rb +78 -0
  49. data/lib/moov/models/components/issuedcardactivity.rbi +33 -0
  50. data/lib/moov/models/components/{wirecreditpaymentmethod_paymentmethodtype.rb → notificationchannel.rb} +2 -2
  51. data/lib/moov/models/components/{wirefailurecode.rbi → notificationchannel.rbi} +2 -2
  52. data/lib/moov/models/components/paymentmethodsbankaccount.rb +7 -2
  53. data/lib/moov/models/components/paymentmethodsbankaccount.rbi +2 -0
  54. data/lib/moov/models/components/paymentmethodtype.rb +0 -1
  55. data/lib/moov/models/components/product.rb +1 -1
  56. data/lib/moov/models/components/productrequest.rb +1 -1
  57. data/lib/moov/models/components/pushtocardoptions.rb +6 -2
  58. data/lib/moov/models/components/pushtocardoptions.rbi +2 -0
  59. data/lib/moov/models/components/riskverificationoutcome.rb +23 -0
  60. data/lib/moov/models/components/riskverificationoutcome.rbi +11 -0
  61. data/lib/moov/models/components/simulationissuingmerchantdata.rb +56 -0
  62. data/lib/moov/models/components/simulationissuingmerchantdata.rbi +25 -0
  63. data/lib/moov/models/components/simulationissuingmerchantdatavalidationerror.rb +56 -0
  64. data/lib/moov/models/components/simulationissuingmerchantdatavalidationerror.rbi +25 -0
  65. data/lib/moov/models/components/transfer.rb +2 -1
  66. data/lib/moov/models/components/transferauthorization.rb +9 -2
  67. data/lib/moov/models/components/transferauthorization.rbi +2 -0
  68. data/lib/moov/models/components/transferoptions.rb +3 -3
  69. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +7 -2
  70. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rbi +2 -0
  71. data/lib/moov/models/components/transferpaymentmethodtype.rb +0 -1
  72. data/lib/moov/models/components/transferprocessingdetails.rb +2 -6
  73. data/lib/moov/models/components/transferprocessingdetails.rbi +0 -2
  74. data/lib/moov/models/components/transferrailoptions.rb +2 -6
  75. data/lib/moov/models/components/transferrailoptions.rbi +0 -2
  76. data/lib/moov/models/components/transfertype.rb +0 -1
  77. data/lib/moov/models/components/updateinvoice.rb +6 -2
  78. data/lib/moov/models/components/updateinvoice.rbi +2 -0
  79. data/lib/moov/models/components/wallettransactiontype.rb +0 -1
  80. data/lib/moov/models/components/webhookdatatransferstatus.rb +1 -0
  81. data/lib/moov/models/components.rb +15 -10
  82. data/lib/moov/models/errors/authorizationsimulationvalidationerror.rb +44 -0
  83. data/lib/moov/models/errors/authorizationsimulationvalidationerror.rbi +19 -0
  84. data/lib/moov/models/errors/clearingsimulationvalidationerror.rb +36 -0
  85. data/lib/moov/models/errors/clearingsimulationvalidationerror.rbi +15 -0
  86. data/lib/moov/models/errors/createinvoiceerror.rb +14 -2
  87. data/lib/moov/models/errors/createinvoiceerror.rbi +6 -0
  88. data/lib/moov/models/errors/invoicenotificationerror.rb +36 -0
  89. data/lib/moov/models/errors/invoicenotificationerror.rbi +15 -0
  90. data/lib/moov/models/errors/invoicenotificationratelimitederror.rb +44 -0
  91. data/lib/moov/models/errors/invoicenotificationratelimitederror.rbi +19 -0
  92. data/lib/moov/models/errors/transfer_error.rb +2 -1
  93. data/lib/moov/models/errors/updateinvoiceerror.rb +6 -2
  94. data/lib/moov/models/errors/updateinvoiceerror.rbi +2 -0
  95. data/lib/moov/models/errors.rb +4 -0
  96. data/lib/moov/models/operations/createauthorizationsimulation_request.rb +36 -0
  97. data/lib/moov/models/operations/createauthorizationsimulation_request.rbi +15 -0
  98. data/lib/moov/models/operations/createauthorizationsimulation_response.rb +52 -0
  99. data/lib/moov/models/operations/createauthorizationsimulation_response.rbi +23 -0
  100. data/lib/moov/models/operations/createclearingsimulation_request.rb +40 -0
  101. data/lib/moov/models/operations/createclearingsimulation_request.rbi +17 -0
  102. data/lib/moov/models/operations/createclearingsimulation_response.rb +52 -0
  103. data/lib/moov/models/operations/createclearingsimulation_response.rbi +23 -0
  104. data/lib/moov/models/operations/createinvoicenotification_request.rb +40 -0
  105. data/lib/moov/models/operations/createinvoicenotification_request.rbi +17 -0
  106. data/lib/moov/models/operations/{createcancellation_response.rb → createinvoicenotification_response.rb} +3 -7
  107. data/lib/moov/models/operations/{createcancellation_response.rbi → createinvoicenotification_response.rbi} +2 -4
  108. data/lib/moov/models/operations/createreversalsimulation_request.rb +36 -0
  109. data/lib/moov/models/operations/createreversalsimulation_request.rbi +15 -0
  110. data/lib/moov/models/operations/createreversalsimulation_response.rb +52 -0
  111. data/lib/moov/models/operations/createreversalsimulation_response.rbi +23 -0
  112. data/lib/moov/models/operations/createtransfer_response.rb +5 -5
  113. data/lib/moov/models/operations/createtransfer_response.rbi +2 -2
  114. data/lib/moov/models/operations/downloadfile_request.rb +36 -0
  115. data/lib/moov/models/operations/downloadfile_request.rbi +15 -0
  116. data/lib/moov/models/operations/downloadfile_response.rb +64 -0
  117. data/lib/moov/models/operations/downloadfile_response.rbi +29 -0
  118. data/lib/moov/models/operations/getissuedcardactivity_request.rb +36 -0
  119. data/lib/moov/models/operations/getissuedcardactivity_request.rbi +15 -0
  120. data/lib/moov/models/operations/getissuedcardactivity_response.rb +48 -0
  121. data/lib/moov/models/operations/getissuedcardactivity_response.rbi +21 -0
  122. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  123. data/lib/moov/models/operations/initiaterefund_request.rb +1 -1
  124. data/lib/moov/models/operations/listissuedcardactivity_request.rb +60 -0
  125. data/lib/moov/models/operations/listissuedcardactivity_request.rbi +27 -0
  126. data/lib/moov/models/operations/listissuedcardactivity_response.rb +48 -0
  127. data/lib/moov/models/operations/listissuedcardactivity_response.rbi +21 -0
  128. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  129. data/lib/moov/models/operations/listtransfers_request.rb +6 -2
  130. data/lib/moov/models/operations/listtransfers_request.rbi +2 -0
  131. data/lib/moov/models/operations.rb +14 -2
  132. data/lib/moov/payment_methods.rb +2 -2
  133. data/lib/moov/sdkconfiguration.rb +3 -3
  134. data/lib/moov/transfers.rb +3 -156
  135. metadata +68 -26
  136. data/lib/moov/models/components/createtransferdestinationwire.rb +0 -32
  137. data/lib/moov/models/components/createtransferdestinationwire.rbi +0 -13
  138. data/lib/moov/models/components/wirecreditpaymentmethod.rb +0 -40
  139. data/lib/moov/models/components/wirecreditpaymentmethod.rbi +0 -17
  140. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rbi +0 -11
  141. data/lib/moov/models/components/wirecredittransferpaymentmethod.rb +0 -40
  142. data/lib/moov/models/components/wirecredittransferpaymentmethod.rbi +0 -17
  143. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rb +0 -18
  144. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rbi +0 -11
  145. data/lib/moov/models/components/wirefailurecode.rb +0 -28
  146. data/lib/moov/models/components/wireoptions.rb +0 -32
  147. data/lib/moov/models/components/wireoptions.rbi +0 -13
  148. data/lib/moov/models/components/wiretransactionstatus.rb +0 -23
  149. data/lib/moov/models/components/wiretransactionstatus.rbi +0 -11
  150. data/lib/moov/models/components/wiretransferprocessingdetails.rb +0 -40
  151. data/lib/moov/models/components/wiretransferprocessingdetails.rbi +0 -17
  152. data/lib/moov/models/operations/createcancellation_request.rb +0 -40
  153. data/lib/moov/models/operations/createcancellation_request.rbi +0 -17
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::AuthorizationSimulationAsyncResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::AuthorizationSimulationAsyncResponse
11
+ def authorization_id(); end
12
+ def authorization_id=(str_); end
13
+ end
@@ -43,9 +43,12 @@ module Moov
43
43
  #
44
44
  # **NOTE: This field is only populated for Create BankAccount requests made with the `X-Wait-For` header.**
45
45
  field :payment_methods, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::BasicPaymentMethod)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethods') } }
46
+ # The outcome of a requested risk-verification attempt. `notAttempted` when
47
+ # `requestRiskVerification` was not set, or the calling account was not allowlisted.
48
+ field :risk_verification_outcome, Crystalline::Nilable.new(Models::Components::RiskVerificationOutcome), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('riskVerificationOutcome'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::RiskVerificationOutcome, true) } }
46
49
 
47
- sig { params(bank_account_id: ::String, fingerprint: ::String, status: Models::Components::BankAccountStatus, holder_name: ::String, holder_type: Models::Components::BankAccountHolderType, bank_name: ::String, bank_account_type: Models::Components::BankAccountType, routing_number: ::String, last_four_account_number: ::String, updated_on: ::DateTime, status_reason: T.nilable(Models::Components::BankAccountStatusReason), exception_details: T.nilable(Models::Components::BankAccountException), payment_methods: T.nilable(T::Array[Models::Components::BasicPaymentMethod])).void }
48
- def initialize(bank_account_id:, fingerprint:, status:, holder_name:, holder_type:, bank_name:, bank_account_type:, routing_number:, last_four_account_number:, updated_on:, status_reason: nil, exception_details: nil, payment_methods: nil)
50
+ sig { params(bank_account_id: ::String, fingerprint: ::String, status: Models::Components::BankAccountStatus, holder_name: ::String, holder_type: Models::Components::BankAccountHolderType, bank_name: ::String, bank_account_type: Models::Components::BankAccountType, routing_number: ::String, last_four_account_number: ::String, updated_on: ::DateTime, status_reason: T.nilable(Models::Components::BankAccountStatusReason), exception_details: T.nilable(Models::Components::BankAccountException), payment_methods: T.nilable(T::Array[Models::Components::BasicPaymentMethod]), risk_verification_outcome: T.nilable(Models::Components::RiskVerificationOutcome)).void }
51
+ def initialize(bank_account_id:, fingerprint:, status:, holder_name:, holder_type:, bank_name:, bank_account_type:, routing_number:, last_four_account_number:, updated_on:, status_reason: nil, exception_details: nil, payment_methods: nil, risk_verification_outcome: nil)
49
52
  @bank_account_id = bank_account_id
50
53
  @fingerprint = fingerprint
51
54
  @status = status
@@ -59,6 +62,7 @@ module Moov
59
62
  @status_reason = status_reason
60
63
  @exception_details = exception_details
61
64
  @payment_methods = payment_methods
65
+ @risk_verification_outcome = risk_verification_outcome
62
66
  end
63
67
 
64
68
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -77,6 +81,7 @@ module Moov
77
81
  return false unless @status_reason == other.status_reason
78
82
  return false unless @exception_details == other.exception_details
79
83
  return false unless @payment_methods == other.payment_methods
84
+ return false unless @risk_verification_outcome == other.risk_verification_outcome
80
85
  true
81
86
  end
82
87
  end
@@ -34,4 +34,6 @@ class Moov::Models::Components::BankAccount
34
34
  def exception_details=(str_); end
35
35
  def payment_methods(); end
36
36
  def payment_methods=(str_); end
37
+ def risk_verification_outcome(); end
38
+ def risk_verification_outcome=(str_); end
37
39
  end
@@ -14,16 +14,21 @@ module Moov
14
14
 
15
15
 
16
16
  field :account, Models::Components::BankAccountIntegration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
17
+ # Requests a synchronous risk-verification attempt on create or re-link. Only honored for
18
+ # allowlisted calling accounts; ignored otherwise.
19
+ field :request_risk_verification, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('requestRiskVerification') } }
17
20
 
18
- sig { params(account: Models::Components::BankAccountIntegration).void }
19
- def initialize(account:)
21
+ sig { params(account: Models::Components::BankAccountIntegration, request_risk_verification: T.nilable(T::Boolean)).void }
22
+ def initialize(account:, request_risk_verification: nil)
20
23
  @account = account
24
+ @request_risk_verification = request_risk_verification
21
25
  end
22
26
 
23
27
  sig { params(other: T.untyped).returns(T::Boolean) }
24
28
  def ==(other)
25
29
  return false unless other.is_a? self.class
26
30
  return false unless @account == other.account
31
+ return false unless @request_risk_verification == other.request_risk_verification
27
32
  true
28
33
  end
29
34
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::BankAccountPayload
11
11
  def account(); end
12
12
  def account=(str_); end
13
+ def request_risk_verification(); end
14
+ def request_risk_verification=(str_); end
13
15
  end
@@ -11,6 +11,7 @@ module Moov
11
11
  class CaptureStatus
12
12
  include ::Crystalline::Enum
13
13
  enums do
14
+ CREATED = new('created')
14
15
  PENDING = new('pending')
15
16
  COMPLETED = new('completed')
16
17
  FAILED = new('failed')
@@ -13,16 +13,20 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
+ field :network_transaction_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('networkTransactionID') } }
17
+
16
18
  field :failure_code, Crystalline::Nilable.new(Models::Components::CardTransactionFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardTransactionFailureCode, true) } }
17
19
 
18
- sig { params(failure_code: T.nilable(Models::Components::CardTransactionFailureCode)).void }
19
- def initialize(failure_code: nil)
20
+ sig { params(network_transaction_id: T.nilable(::String), failure_code: T.nilable(Models::Components::CardTransactionFailureCode)).void }
21
+ def initialize(network_transaction_id: nil, failure_code: nil)
22
+ @network_transaction_id = network_transaction_id
20
23
  @failure_code = failure_code
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
29
+ return false unless @network_transaction_id == other.network_transaction_id
26
30
  return false unless @failure_code == other.failure_code
27
31
  true
28
32
  end
@@ -8,6 +8,8 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::CardPaymentRefundProcessingDetails
11
+ def network_transaction_id(); end
12
+ def network_transaction_id=(str_); end
11
13
  def failure_code(); end
12
14
  def failure_code=(str_); end
13
15
  end
@@ -0,0 +1,40 @@
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 CreateAuthorizationSimulation
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :issued_card_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuedCardID'), required: true } }
17
+ # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
18
+ field :amount, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
19
+
20
+ field :merchant_data, Crystalline::Nilable.new(Models::Components::SimulationIssuingMerchantData), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantData') } }
21
+
22
+ sig { params(issued_card_id: ::String, amount: ::String, merchant_data: T.nilable(Models::Components::SimulationIssuingMerchantData)).void }
23
+ def initialize(issued_card_id:, amount:, merchant_data: nil)
24
+ @issued_card_id = issued_card_id
25
+ @amount = amount
26
+ @merchant_data = merchant_data
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @issued_card_id == other.issued_card_id
33
+ return false unless @amount == other.amount
34
+ return false unless @merchant_data == other.merchant_data
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateAuthorizationSimulation
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateAuthorizationSimulation
11
+ def issued_card_id(); end
12
+ def issued_card_id=(str_); end
13
+ def amount(); end
14
+ def amount=(str_); end
15
+ def merchant_data(); end
16
+ def merchant_data=(str_); end
17
+ end
@@ -7,17 +7,15 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # Cancellation request.
11
- class CreateCancellation
10
+
11
+ class CreateClearingSimulation
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # Amount to void. This field can only be set for an auth-capture `card-payment` transfer.
16
- # This cannot exceed `capturableAmount`.
17
- # Omit this field to void the entire `capturableAmount`.
18
- field :amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
15
+ # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
16
+ field :amount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
19
17
 
20
- sig { params(amount: T.nilable(Models::Components::AmountDecimal)).void }
18
+ sig { params(amount: T.nilable(::String)).void }
21
19
  def initialize(amount: nil)
22
20
  @amount = amount
23
21
  end
@@ -2,12 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::CreateCancellation
5
+ class Moov::Models::Components::CreateClearingSimulation
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::CreateCancellation
10
+ class Moov::Models::Components::CreateClearingSimulation
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
13
  end
@@ -66,7 +66,8 @@ module Moov
66
66
  # An optional collection of line items for a transfer.
67
67
  # When line items are provided, their total plus tax must equal the transfer amount.
68
68
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
69
-
69
+ # The tip, tax, and surcharge portion of the transfer amount.
70
+ # For an auth-capture `card-payment` transfer, this is the aggregate of all captures' `amountDetails`.
70
71
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
71
72
  # Authorization amounts.
72
73
  # This field is present only for an auth-capture `card-payment` transfer.
@@ -16,22 +16,31 @@ module Moov
16
16
  field :customer_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerAccountID'), required: true } }
17
17
  # A collection of line items for an invoice.
18
18
  field :line_items, Models::Components::CreateInvoiceLineItems, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems'), required: true } }
19
+ # Email address to use for invoice checkout OTP verification instead of the customer account email.
20
+ field :customer_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerEmail') } }
21
+ # Optional merchant-defined invoice number, up to 64 characters. Must be unique for the account. If omitted, empty, or whitespace-only, the next number in the INV-<n> sequence is assigned automatically.
22
+ field :invoice_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceNumber') } }
19
23
 
20
24
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
21
25
 
22
26
  field :invoice_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceDate'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
23
27
 
24
28
  field :due_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
+ # Payment options for the invoice.
30
+ field :payment, Crystalline::Nilable.new(Models::Components::InvoicePaymentOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
25
31
 
26
32
  field :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
27
33
 
28
- sig { params(customer_account_id: ::String, line_items: Models::Components::CreateInvoiceLineItems, description: T.nilable(::String), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), amount_details: T.nilable(Models::Components::AmountDetails)).void }
29
- def initialize(customer_account_id:, line_items:, description: nil, invoice_date: nil, due_date: nil, amount_details: nil)
34
+ sig { params(customer_account_id: ::String, line_items: Models::Components::CreateInvoiceLineItems, customer_email: T.nilable(::String), invoice_number: T.nilable(::String), description: T.nilable(::String), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), payment: T.nilable(Models::Components::InvoicePaymentOptions), amount_details: T.nilable(Models::Components::AmountDetails)).void }
35
+ def initialize(customer_account_id:, line_items:, customer_email: nil, invoice_number: nil, description: nil, invoice_date: nil, due_date: nil, payment: nil, amount_details: nil)
30
36
  @customer_account_id = customer_account_id
31
37
  @line_items = line_items
38
+ @customer_email = customer_email
39
+ @invoice_number = invoice_number
32
40
  @description = description
33
41
  @invoice_date = invoice_date
34
42
  @due_date = due_date
43
+ @payment = payment
35
44
  @amount_details = amount_details
36
45
  end
37
46
 
@@ -40,9 +49,12 @@ module Moov
40
49
  return false unless other.is_a? self.class
41
50
  return false unless @customer_account_id == other.customer_account_id
42
51
  return false unless @line_items == other.line_items
52
+ return false unless @customer_email == other.customer_email
53
+ return false unless @invoice_number == other.invoice_number
43
54
  return false unless @description == other.description
44
55
  return false unless @invoice_date == other.invoice_date
45
56
  return false unless @due_date == other.due_date
57
+ return false unless @payment == other.payment
46
58
  return false unless @amount_details == other.amount_details
47
59
  true
48
60
  end
@@ -12,12 +12,18 @@ class Moov::Models::Components::CreateInvoice
12
12
  def customer_account_id=(str_); end
13
13
  def line_items(); end
14
14
  def line_items=(str_); end
15
+ def customer_email(); end
16
+ def customer_email=(str_); end
17
+ def invoice_number(); end
18
+ def invoice_number=(str_); end
15
19
  def description(); end
16
20
  def description=(str_); end
17
21
  def invoice_date(); end
18
22
  def invoice_date=(str_); end
19
23
  def due_date(); end
20
24
  def due_date=(str_); end
25
+ def payment(); end
26
+ def payment=(str_); end
21
27
  def amount_details(); end
22
28
  def amount_details=(str_); end
23
29
  end
@@ -0,0 +1,32 @@
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 CreateInvoiceNotification
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The channels to send the notification on. Required, must contain at least one channel.
16
+ field :channels, Crystalline::Array.new(Models::Components::NotificationChannel), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('channels'), required: true } }
17
+
18
+ sig { params(channels: T::Array[Models::Components::NotificationChannel]).void }
19
+ def initialize(channels:)
20
+ @channels = channels
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @channels == other.channels
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateInvoiceNotification
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateInvoiceNotification
11
+ def channels(); end
12
+ def channels=(str_); end
13
+ end
@@ -18,6 +18,8 @@ module Moov
18
18
  field :destination, Models::Components::CreateTransferDestination, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
19
19
 
20
20
  field :amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
+ # Rail-specific options for a new transfer. Set only the key that matches the transfer's rail.
22
+ field :options, Crystalline::Nilable.new(Models::Components::CreateTransferRailOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options') } }
21
23
  # Total or markup fee to apply when creating a transfer.
22
24
  field :facilitator_fee, Crystalline::Nilable.new(Models::Components::CreateTransferFacilitatorFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFee') } }
23
25
  # An optional description of the transfer that is used on receipts and for your own internal use.
@@ -34,11 +36,12 @@ module Moov
34
36
  # Indicates which party bears fees for a transfer, keyed by fee type.
35
37
  field :fee_paid_by, Crystalline::Nilable.new(Models::Components::TransferFeePaidBy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('feePaidBy') } }
36
38
 
37
- sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::AmountDecimal, facilitator_fee: T.nilable(Models::Components::CreateTransferFacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails), fee_paid_by: T.nilable(Models::Components::TransferFeePaidBy)).void }
38
- def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, fee_paid_by: nil)
39
+ sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::AmountDecimal, options: T.nilable(Models::Components::CreateTransferRailOptions), facilitator_fee: T.nilable(Models::Components::CreateTransferFacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails), fee_paid_by: T.nilable(Models::Components::TransferFeePaidBy)).void }
40
+ def initialize(source:, destination:, amount:, options: nil, facilitator_fee: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, fee_paid_by: nil)
39
41
  @source = source
40
42
  @destination = destination
41
43
  @amount = amount
44
+ @options = options
42
45
  @facilitator_fee = facilitator_fee
43
46
  @description = description
44
47
  @metadata = metadata
@@ -54,6 +57,7 @@ module Moov
54
57
  return false unless @source == other.source
55
58
  return false unless @destination == other.destination
56
59
  return false unless @amount == other.amount
60
+ return false unless @options == other.options
57
61
  return false unless @facilitator_fee == other.facilitator_fee
58
62
  return false unless @description == other.description
59
63
  return false unless @metadata == other.metadata
@@ -14,6 +14,8 @@ class Moov::Models::Components::CreateTransfer
14
14
  def destination=(str_); end
15
15
  def amount(); end
16
16
  def amount=(str_); end
17
+ def options(); end
18
+ def options=(str_); end
17
19
  def facilitator_fee(); end
18
20
  def facilitator_fee=(str_); end
19
21
  def description(); end
@@ -15,27 +15,15 @@ module Moov
15
15
 
16
16
  field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
17
 
18
- field :card_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
-
20
- field :ach_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationACH), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
- # Wire-specific options supplied when creating a transfer.
22
- field :wire_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationWire), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wireDetails') } }
23
-
24
- sig { params(payment_method_id: ::String, card_details: T.nilable(Models::Components::CreateTransferDestinationCard), ach_details: T.nilable(Models::Components::CreateTransferDestinationACH), wire_details: T.nilable(Models::Components::CreateTransferDestinationWire)).void }
25
- def initialize(payment_method_id:, card_details: nil, ach_details: nil, wire_details: nil)
18
+ sig { params(payment_method_id: ::String).void }
19
+ def initialize(payment_method_id:)
26
20
  @payment_method_id = payment_method_id
27
- @card_details = card_details
28
- @ach_details = ach_details
29
- @wire_details = wire_details
30
21
  end
31
22
 
32
23
  sig { params(other: T.untyped).returns(T::Boolean) }
33
24
  def ==(other)
34
25
  return false unless other.is_a? self.class
35
26
  return false unless @payment_method_id == other.payment_method_id
36
- return false unless @card_details == other.card_details
37
- return false unless @ach_details == other.ach_details
38
- return false unless @wire_details == other.wire_details
39
27
  true
40
28
  end
41
29
  end
@@ -10,10 +10,4 @@ end
10
10
  class Moov::Models::Components::CreateTransferDestination
11
11
  def payment_method_id(); end
12
12
  def payment_method_id=(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 wire_details(); end
18
- def wire_details=(str_); end
19
13
  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
+ # Rail-specific options for a new transfer. Set only the key that matches the transfer's rail.
11
+ class CreateTransferRailOptions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :card_payment, Crystalline::Nilable.new(Models::Components::CreateTransferSourceCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardPayment') } }
17
+
18
+ field :push_to_card, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushToCard') } }
19
+
20
+ field :pull_from_card, Crystalline::Nilable.new(Models::Components::CreateTransferSourceCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pullFromCard') } }
21
+
22
+ field :ach_debit, Crystalline::Nilable.new(Models::Components::CreateTransferSourceACH), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
+
24
+ field :ach_credit, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationACH), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+
26
+ sig { params(card_payment: T.nilable(Models::Components::CreateTransferSourceCard), push_to_card: T.nilable(Models::Components::CreateTransferDestinationCard), pull_from_card: T.nilable(Models::Components::CreateTransferSourceCard), ach_debit: T.nilable(Models::Components::CreateTransferSourceACH), ach_credit: T.nilable(Models::Components::CreateTransferDestinationACH)).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::CreateTransferRailOptions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferRailOptions
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
@@ -0,0 +1,27 @@
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 CreateTransferResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+
17
+ def initialize; end
18
+
19
+ sig { params(other: T.untyped).returns(T::Boolean) }
20
+ def ==(other)
21
+ return false unless other.is_a? self.class
22
+ true
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferResponse
11
+ end
@@ -20,17 +20,11 @@ module Moov
20
20
 
21
21
  field :payment_token, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentToken') } }
22
22
 
23
- field :card_details, Crystalline::Nilable.new(Models::Components::CreateTransferSourceCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
24
-
25
- field :ach_details, Crystalline::Nilable.new(Models::Components::CreateTransferSourceACH), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
26
-
27
- sig { params(transfer_id: T.nilable(::String), payment_method_id: T.nilable(::String), payment_token: T.nilable(::String), card_details: T.nilable(Models::Components::CreateTransferSourceCard), ach_details: T.nilable(Models::Components::CreateTransferSourceACH)).void }
28
- def initialize(transfer_id: nil, payment_method_id: nil, payment_token: nil, card_details: nil, ach_details: nil)
23
+ sig { params(transfer_id: T.nilable(::String), payment_method_id: T.nilable(::String), payment_token: T.nilable(::String)).void }
24
+ def initialize(transfer_id: nil, payment_method_id: nil, payment_token: nil)
29
25
  @transfer_id = transfer_id
30
26
  @payment_method_id = payment_method_id
31
27
  @payment_token = payment_token
32
- @card_details = card_details
33
- @ach_details = ach_details
34
28
  end
35
29
 
36
30
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -39,8 +33,6 @@ module Moov
39
33
  return false unless @transfer_id == other.transfer_id
40
34
  return false unless @payment_method_id == other.payment_method_id
41
35
  return false unless @payment_token == other.payment_token
42
- return false unless @card_details == other.card_details
43
- return false unless @ach_details == other.ach_details
44
36
  true
45
37
  end
46
38
  end
@@ -14,8 +14,4 @@ class Moov::Models::Components::CreateTransferSource
14
14
  def payment_method_id=(str_); end
15
15
  def payment_token(); end
16
16
  def payment_token=(str_); end
17
- def card_details(); end
18
- def card_details=(str_); end
19
- def ach_details(); end
20
- def ach_details=(str_); end
21
17
  end
@@ -17,6 +17,7 @@ module Moov
17
17
  ACH_CREDIT_STANDARD = new('ach-credit-standard')
18
18
  PUSH_TO_APPLE_PAY = new('push-to-apple-pay')
19
19
  PUSH_TO_GOOGLE_PAY = new('push-to-google-pay')
20
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
20
21
  end
21
22
  open!
22
23
  end