moov_ruby 26.4.0 → 26.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/client.rb +2 -1
  3. data/lib/moov/google_pay.rb +3 -1
  4. data/lib/moov/models/components/cardfundingsource.rb +21 -0
  5. data/lib/moov/models/components/cardfundingsource.rbi +11 -0
  6. data/lib/moov/models/components/cardnetwork.rb +24 -0
  7. data/lib/moov/models/components/cardnetwork.rbi +11 -0
  8. data/lib/moov/models/components/createdtransfer.rb +7 -3
  9. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  10. data/lib/moov/models/components/createpaymentlink.rb +8 -3
  11. data/lib/moov/models/components/createtippresets.rb +42 -0
  12. data/lib/moov/models/components/createtippresets.rbi +17 -0
  13. data/lib/moov/models/components/createtransfer.rb +7 -3
  14. data/lib/moov/models/components/createtransfer.rbi +2 -0
  15. data/lib/moov/models/components/createtransferamountdetails.rb +32 -0
  16. data/lib/moov/models/components/createtransferamountdetails.rbi +13 -0
  17. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rb +32 -0
  18. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rbi +13 -0
  19. data/lib/moov/models/components/createtransferconfig.rb +32 -0
  20. data/lib/moov/models/components/createtransferconfig.rbi +13 -0
  21. data/lib/moov/models/components/googlepayassurancedetails.rb +36 -0
  22. data/lib/moov/models/components/googlepayassurancedetails.rbi +15 -0
  23. data/lib/moov/models/components/googlepaybillingaddress.rb +71 -0
  24. data/lib/moov/models/components/googlepaybillingaddress.rbi +31 -0
  25. data/lib/moov/models/components/googlepaycardinfo.rb +52 -0
  26. data/lib/moov/models/components/googlepaycardinfo.rbi +21 -0
  27. data/lib/moov/models/components/googlepaypaymentmethoddata.rb +48 -0
  28. data/lib/moov/models/components/googlepaypaymentmethoddata.rbi +19 -0
  29. data/lib/moov/models/components/{linkedgooglepaypaymentmethod_paymentmethodtype.rb → googlepaypaymentmethoddata_type.rb} +3 -3
  30. data/lib/moov/models/components/googlepaypaymentmethoddata_type.rbi +11 -0
  31. data/lib/moov/models/components/googlepaytokenizationdata.rb +38 -0
  32. data/lib/moov/models/components/googlepaytokenizationdata.rbi +15 -0
  33. data/lib/moov/models/components/googlepaytokenizationdata_type.rb +18 -0
  34. data/lib/moov/models/components/googlepaytokenizationdata_type.rbi +11 -0
  35. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +3 -3
  36. data/lib/moov/models/components/linkgooglepay.rb +17 -12
  37. data/lib/moov/models/components/linkgooglepay.rbi +4 -2
  38. data/lib/moov/models/components/paymentlink.rb +7 -2
  39. data/lib/moov/models/components/paymentlinkcustomeroptions.rb +6 -2
  40. data/lib/moov/models/components/paymentlinkcustomeroptions.rbi +2 -0
  41. data/lib/moov/models/components/puttippresets.rb +42 -0
  42. data/lib/moov/models/components/puttippresets.rbi +17 -0
  43. data/lib/moov/models/components/puttransferconfig.rb +32 -0
  44. data/lib/moov/models/components/puttransferconfig.rbi +13 -0
  45. data/lib/moov/models/components/tipcalculationbasis.rb +21 -0
  46. data/lib/moov/models/components/tipcalculationbasis.rbi +11 -0
  47. data/lib/moov/models/components/tippresets.rb +42 -0
  48. data/lib/moov/models/components/tippresets.rbi +17 -0
  49. data/lib/moov/models/components/transfer.rb +7 -3
  50. data/lib/moov/models/components/transfer.rbi +2 -0
  51. data/lib/moov/models/components/transferamountdetails.rb +32 -0
  52. data/lib/moov/models/components/transferamountdetails.rbi +13 -0
  53. data/lib/moov/models/components/transferconfig.rb +32 -0
  54. data/lib/moov/models/components/transferconfig.rbi +13 -0
  55. data/lib/moov/models/components/transferdestination.rb +6 -2
  56. data/lib/moov/models/components/transferdestination.rbi +2 -0
  57. data/lib/moov/models/components/transfersource.rb +6 -2
  58. data/lib/moov/models/components/transfersource.rbi +2 -0
  59. data/lib/moov/models/components.rb +19 -3
  60. data/lib/moov/models/errors/linkgooglepayerror.rb +10 -6
  61. data/lib/moov/models/errors/linkgooglepayerror.rbi +4 -2
  62. data/lib/moov/models/errors/transfer_error.rb +7 -3
  63. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  64. data/lib/moov/models/errors/transferconfigvalidationerror.rb +44 -0
  65. data/lib/moov/models/errors/transferconfigvalidationerror.rbi +19 -0
  66. data/lib/moov/models/errors/transfervalidationerror.rb +6 -2
  67. data/lib/moov/models/errors/transfervalidationerror.rbi +2 -0
  68. data/lib/moov/models/errors.rb +1 -0
  69. data/lib/moov/models/operations/createtransferconfig_request.rb +36 -0
  70. data/lib/moov/models/operations/createtransferconfig_request.rbi +15 -0
  71. data/lib/moov/models/operations/createtransferconfig_response.rb +48 -0
  72. data/lib/moov/models/operations/createtransferconfig_response.rbi +21 -0
  73. data/lib/moov/models/operations/gettransferconfig_request.rb +32 -0
  74. data/lib/moov/models/operations/gettransferconfig_request.rbi +13 -0
  75. data/lib/moov/models/operations/gettransferconfig_response.rb +48 -0
  76. data/lib/moov/models/operations/gettransferconfig_response.rbi +21 -0
  77. data/lib/moov/models/operations/updatetransferconfig_request.rb +36 -0
  78. data/lib/moov/models/operations/updatetransferconfig_request.rbi +15 -0
  79. data/lib/moov/models/operations/updatetransferconfig_response.rb +48 -0
  80. data/lib/moov/models/operations/updatetransferconfig_response.rbi +21 -0
  81. data/lib/moov/models/operations.rb +6 -0
  82. data/lib/moov/sdkconfiguration.rb +3 -3
  83. data/lib/moov/transfer_config.rb +486 -0
  84. data/lib/moov_ruby.rb +1 -0
  85. metadata +55 -8
  86. data/lib/moov/models/components/googlepayintermediatesigningkey.rb +0 -36
  87. data/lib/moov/models/components/googlepayintermediatesigningkey.rbi +0 -15
  88. data/lib/moov/models/components/googlepaytoken.rb +0 -47
  89. data/lib/moov/models/components/googlepaytoken.rbi +0 -19
  90. data/lib/moov/models/components/linkedgooglepaypaymentmethod_paymentmethodtype.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da361b1bbe6b34cbe22a4401ec37b3a448c78c413fcff437cc1e19119418e339
4
- data.tar.gz: 75f547060ac576808a21fec384091a4ca1f6b52248fc4da6b9ec0306f0e58527
3
+ metadata.gz: 0730013675eb0919f88c6903f2c428af6746259c5f38f2b55de32dc7fd7834ca
4
+ data.tar.gz: b85bacf05317fdf10abee22ad5bfbedaa78a2c0519ad7330ff4b27156aeb7fa9
5
5
  SHA512:
6
- metadata.gz: f41ea9350f713981e9874e3dd2b4f11e0582eed51caa1a97e5a121fa19075c3b78e943132b18e544e408b5ac783723422a2538a2131a5f02a3e1dbfad0d3e643
7
- data.tar.gz: 2ae6d6bbc38a6ba241d03c1d443f4f23706d6f94005b66464c1d636b7934145d82bdb36d40fe8478326b604258432138a56b827326cc891914b47c77780b15dc
6
+ metadata.gz: 8eb75292b6868f0eb6bb37a59db441827229139f6dd99364084d4a32382cb9ff46b0a8844c3c130d572850b74b9221f121dee0a406aa3ca2a8f9bc590f3567e1
7
+ data.tar.gz: 94e8c5a96dc65b72221f5c1176d9f9951158490b8b6e5afbb7a232bc61521fe8c1ae2de20a474144bcf0aeef221f89a5974f3c245b25fd3ed4c24277122109a7
data/lib/moov/client.rb CHANGED
@@ -16,7 +16,7 @@ module Moov
16
16
  class Client
17
17
  extend T::Sig
18
18
 
19
- attr_accessor :accounts, :adjustments, :apple_pay, :bank_accounts, :branding, :capabilities, :cards, :disputes, :fee_plans, :files, :google_pay, :images, :invoices, :payment_links, :payment_methods, :products, :representatives, :resolution_links, :scheduling, :statements, :sweeps, :account_terminal_applications, :support, :transfers, :underwriting, :wallets, :wallet_transactions, :avatars, :end_to_end_encryption, :enriched_address, :enriched_profile, :webhooks, :industries, :institutions, :issuing_transactions, :card_issuing, :authentication, :onboarding, :ping, :receipts, :terminal_applications
19
+ attr_accessor :accounts, :adjustments, :apple_pay, :bank_accounts, :branding, :capabilities, :cards, :disputes, :fee_plans, :files, :google_pay, :images, :invoices, :payment_links, :payment_methods, :products, :representatives, :resolution_links, :scheduling, :statements, :sweeps, :account_terminal_applications, :support, :transfer_config, :transfers, :underwriting, :wallets, :wallet_transactions, :avatars, :end_to_end_encryption, :enriched_address, :enriched_profile, :webhooks, :industries, :institutions, :issuing_transactions, :card_issuing, :authentication, :onboarding, :ping, :receipts, :terminal_applications
20
20
 
21
21
  # Instantiates the SDK, configuring it with the provided parameters.
22
22
  #
@@ -101,6 +101,7 @@ module Moov
101
101
  @sweeps = Sweeps.new(@sdk_configuration)
102
102
  @account_terminal_applications = AccountTerminalApplications.new(@sdk_configuration)
103
103
  @support = Support.new(@sdk_configuration)
104
+ @transfer_config = TransferConfig.new(@sdk_configuration)
104
105
  @transfers = Transfers.new(@sdk_configuration)
105
106
  @underwriting = Underwriting.new(@sdk_configuration)
106
107
  @wallets = Wallets.new(@sdk_configuration)
@@ -45,7 +45,9 @@ module Moov
45
45
  def link_token(link_google_pay:, account_id:, timeout_ms: nil, http_headers: nil)
46
46
  # link_token - Connect a Google Pay token to the specified account.
47
47
  #
48
- # The `token` data is defined by Google Pay and should be passed through from Google Pay's response unmodified.
48
+ # The `paymentMethodData` field should contain the `paymentMethodData` property from Google Pay's
49
+ # [PaymentData](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) response,
50
+ # passed through unmodified.
49
51
  #
50
52
  # To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
51
53
  # you'll need to specify the `/accounts/{accountID}/cards.write` scope.
@@ -0,0 +1,21 @@
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
+ # CardFundingSource - The funding source of the card. One of CREDIT, DEBIT, PREPAID, or UNKNOWN.
11
+ class CardFundingSource < T::Enum
12
+ enums do
13
+ CREDIT = new('CREDIT')
14
+ DEBIT = new('DEBIT')
15
+ PREPAID = new('PREPAID')
16
+ UNKNOWN = new('UNKNOWN')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardFundingSource
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardFundingSource
11
+ end
@@ -0,0 +1,24 @@
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
+ # CardNetwork - The card network. One of AMEX, DISCOVER, INTERAC, JCB, MASTERCARD, VISA, or OTHER.
11
+ class CardNetwork < T::Enum
12
+ enums do
13
+ AMEX = new('AMEX')
14
+ DISCOVER = new('DISCOVER')
15
+ INTERAC = new('INTERAC')
16
+ JCB = new('JCB')
17
+ MASTERCARD = new('MASTERCARD')
18
+ VISA = new('VISA')
19
+ OTHER = new('OTHER')
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CardNetwork
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardNetwork
11
+ end
@@ -60,7 +60,7 @@ module Moov
60
60
  field :occurrence_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrenceID') } }
61
61
 
62
62
  field :payment_link_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkCode') } }
63
- # Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged.
63
+ # Optional sales tax amount.
64
64
  field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
65
65
  # Optional alias from a foreign/external system which can be used to reference this resource.
66
66
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
@@ -68,8 +68,10 @@ module Moov
68
68
  # When line items are provided, their total plus sales tax must equal the transfer amount.
69
69
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
70
70
 
71
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), 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), 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), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems)).void }
72
- def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: 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, sales_tax_amount: nil, foreign_id: nil, line_items: nil)
71
+ field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
72
+
73
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), 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), 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), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), amount_details: T.nilable(Models::Components::TransferAmountDetails)).void }
74
+ def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: 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, sales_tax_amount: nil, foreign_id: nil, line_items: nil, amount_details: nil)
73
75
  @transfer_id = transfer_id
74
76
  @created_on = created_on
75
77
  @source = source
@@ -97,6 +99,7 @@ module Moov
97
99
  @sales_tax_amount = sales_tax_amount
98
100
  @foreign_id = foreign_id
99
101
  @line_items = line_items
102
+ @amount_details = amount_details
100
103
  end
101
104
 
102
105
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -129,6 +132,7 @@ module Moov
129
132
  return false unless @sales_tax_amount == other.sales_tax_amount
130
133
  return false unless @foreign_id == other.foreign_id
131
134
  return false unless @line_items == other.line_items
135
+ return false unless @amount_details == other.amount_details
132
136
  true
133
137
  end
134
138
  end
@@ -62,4 +62,6 @@ class Moov::Models::Components::CreatedTransfer
62
62
  def foreign_id=(str_); end
63
63
  def line_items(); end
64
64
  def line_items=(str_); end
65
+ def amount_details(); end
66
+ def amount_details=(str_); end
65
67
  end
@@ -21,13 +21,18 @@ module Moov
21
21
  field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
22
22
  # The merchant's preferred payment method ID. Must be a wallet payment method.
23
23
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
24
-
24
+ # The fixed amount of the payment link.
25
+ #
26
+ # In API versions before `2026.07.00`, this was a required field.
27
+ #
28
+ # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
29
+ # for `open` payment amount types.
25
30
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
26
31
  # Customizable display options for a payment link.
27
32
  field :display, Models::Components::PaymentLinkDisplayOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('display'), required: true } }
28
-
33
+ # Optional sales tax amount.
29
34
  field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
30
- # An optional limit on the number of times this payment link can be used.
35
+ # An optional limit on the number of times this payment link can be used.
31
36
  #
32
37
  # **For payouts, `maxUses` is always 1.**
33
38
  field :max_uses, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('maxUses') } }
@@ -0,0 +1,42 @@
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 CreateTipPresets
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Defines which amount should be used when calculating the final payment total. This calculation applies for percentage tip values.
16
+ # - `pre-tax`: Tip amounts are calculated using the subtotal amount before taxes
17
+ # - `post-tax`: Tip amounts are calculated using the subtotal amount + taxes
18
+ field :calculation_basis, Crystalline::Nilable.new(Models::Components::TipCalculationBasis), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('calculationBasis'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TipCalculationBasis, true) } }
19
+ # Defines the set of suggested tip preset values presented to customers. Percentages must be between 0 and 100 (exclusive) and must be unique. A maximum of 3 values are allowed.
20
+ field :percentage_options, Crystalline::Nilable.new(Crystalline::Array.new(::Integer)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('percentageOptions') } }
21
+ # Defines the set of suggested tip preset values presented to customers. Fixed amounts must be positive and unique. A maximum of 3 values are allowed.
22
+ field :fixed_amount_options, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::AmountDecimal)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fixedAmountOptions') } }
23
+
24
+ sig { params(calculation_basis: T.nilable(Models::Components::TipCalculationBasis), percentage_options: T.nilable(T::Array[::Integer]), fixed_amount_options: T.nilable(T::Array[Models::Components::AmountDecimal])).void }
25
+ def initialize(calculation_basis: nil, percentage_options: nil, fixed_amount_options: nil)
26
+ @calculation_basis = calculation_basis
27
+ @percentage_options = percentage_options
28
+ @fixed_amount_options = fixed_amount_options
29
+ end
30
+
31
+ sig { params(other: T.untyped).returns(T::Boolean) }
32
+ def ==(other)
33
+ return false unless other.is_a? self.class
34
+ return false unless @calculation_basis == other.calculation_basis
35
+ return false unless @percentage_options == other.percentage_options
36
+ return false unless @fixed_amount_options == other.fixed_amount_options
37
+ true
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTipPresets
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTipPresets
11
+ def calculation_basis(); end
12
+ def calculation_basis=(str_); end
13
+ def percentage_options(); end
14
+ def percentage_options=(str_); end
15
+ def fixed_amount_options(); end
16
+ def fixed_amount_options=(str_); end
17
+ end
@@ -24,7 +24,7 @@ module Moov
24
24
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
25
25
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
26
26
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
27
- # Optional sales tax amount. `transfer.amount.value` should be inclusive of any sales tax and represents the total amount charged.
27
+
28
28
  field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
29
29
  # Optional alias from a foreign/external system which can be used to reference this resource.
30
30
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
@@ -32,8 +32,10 @@ module Moov
32
32
  # When line items are provided, their total plus sales tax must equal the transfer amount.
33
33
  field :line_items, Crystalline::Nilable.new(Models::Components::CreateTransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
34
34
 
35
- sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::Amount, facilitator_fee: T.nilable(Models::Components::FacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems)).void }
36
- def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil)
35
+ field :amount_details, Crystalline::Nilable.new(Models::Components::CreateTransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
36
+
37
+ sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::Amount, facilitator_fee: T.nilable(Models::Components::FacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails)).void }
38
+ def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, amount_details: nil)
37
39
  @source = source
38
40
  @destination = destination
39
41
  @amount = amount
@@ -43,6 +45,7 @@ module Moov
43
45
  @sales_tax_amount = sales_tax_amount
44
46
  @foreign_id = foreign_id
45
47
  @line_items = line_items
48
+ @amount_details = amount_details
46
49
  end
47
50
 
48
51
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -57,6 +60,7 @@ module Moov
57
60
  return false unless @sales_tax_amount == other.sales_tax_amount
58
61
  return false unless @foreign_id == other.foreign_id
59
62
  return false unless @line_items == other.line_items
63
+ return false unless @amount_details == other.amount_details
60
64
  true
61
65
  end
62
66
  end
@@ -26,4 +26,6 @@ class Moov::Models::Components::CreateTransfer
26
26
  def foreign_id=(str_); end
27
27
  def line_items(); end
28
28
  def line_items=(str_); end
29
+ def amount_details(); end
30
+ def amount_details=(str_); end
29
31
  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 CreateTransferAmountDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The amount of tip applied to the transfer.
16
+ field :tip, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tip') } }
17
+
18
+ sig { params(tip: T.nilable(Models::Components::AmountDecimal)).void }
19
+ def initialize(tip: nil)
20
+ @tip = tip
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 @tip == other.tip
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::CreateTransferAmountDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferAmountDetails
11
+ def tip(); end
12
+ def tip=(str_); end
13
+ 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 CreateTransferAmountDetailsValidationError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :tip, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tip') } }
17
+
18
+ sig { params(tip: T.nilable(::String)).void }
19
+ def initialize(tip: nil)
20
+ @tip = tip
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 @tip == other.tip
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::CreateTransferAmountDetailsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferAmountDetailsValidationError
11
+ def tip(); end
12
+ def tip=(str_); end
13
+ 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 CreateTransferConfig
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :tip_presets, Crystalline::Nilable.new(Models::Components::CreateTipPresets), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tipPresets') } }
17
+
18
+ sig { params(tip_presets: T.nilable(Models::Components::CreateTipPresets)).void }
19
+ def initialize(tip_presets: nil)
20
+ @tip_presets = tip_presets
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 @tip_presets == other.tip_presets
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::CreateTransferConfig
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferConfig
11
+ def tip_presets(); end
12
+ def tip_presets=(str_); end
13
+ end
@@ -0,0 +1,36 @@
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
+ # 3-D Secure assurance details from Google Pay.
11
+ class GooglePayAssuranceDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the card is verified via 3-D Secure authentication.
16
+ field :card_holder_authenticated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardHolderAuthenticated') } }
17
+ # Whether the returned payment credential can be used for a transaction.
18
+ field :account_verified, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountVerified') } }
19
+
20
+ sig { params(card_holder_authenticated: T.nilable(T::Boolean), account_verified: T.nilable(T::Boolean)).void }
21
+ def initialize(card_holder_authenticated: nil, account_verified: nil)
22
+ @card_holder_authenticated = card_holder_authenticated
23
+ @account_verified = account_verified
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @card_holder_authenticated == other.card_holder_authenticated
30
+ return false unless @account_verified == other.account_verified
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::GooglePayAssuranceDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::GooglePayAssuranceDetails
11
+ def card_holder_authenticated(); end
12
+ def card_holder_authenticated=(str_); end
13
+ def account_verified(); end
14
+ def account_verified=(str_); end
15
+ end
@@ -0,0 +1,71 @@
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
+ # Billing address as returned by Google Pay.
11
+ #
12
+ # Refer to [Google's documentation](https://developers.google.com/pay/api/web/reference/response-objects#Address)
13
+ # for more information.
14
+ class GooglePayBillingAddress
15
+ extend T::Sig
16
+ include Crystalline::MetadataFields
17
+
18
+ # First line of the street address.
19
+ field :address1, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address1') } }
20
+ # Second line of the street address.
21
+ field :address2, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address2') } }
22
+ # Third line of the street address.
23
+ field :address3, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address3') } }
24
+ # City, town, neighborhood, or suburb.
25
+ field :locality, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('locality') } }
26
+ # State, province, or region.
27
+ field :administrative_area, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('administrativeArea') } }
28
+ # Postal or ZIP code.
29
+ field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode') } }
30
+ # ISO 3166-1 alpha-2 country code.
31
+ field :country_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('countryCode') } }
32
+ # Name of the cardholder.
33
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name') } }
34
+ # Phone number.
35
+ field :phone_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('phoneNumber') } }
36
+ # Sorting code (used in some countries).
37
+ field :sorting_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sortingCode') } }
38
+
39
+ sig { params(address1: T.nilable(::String), address2: T.nilable(::String), address3: T.nilable(::String), locality: T.nilable(::String), administrative_area: T.nilable(::String), postal_code: T.nilable(::String), country_code: T.nilable(::String), name: T.nilable(::String), phone_number: T.nilable(::String), sorting_code: T.nilable(::String)).void }
40
+ def initialize(address1: nil, address2: nil, address3: nil, locality: nil, administrative_area: nil, postal_code: nil, country_code: nil, name: nil, phone_number: nil, sorting_code: nil)
41
+ @address1 = address1
42
+ @address2 = address2
43
+ @address3 = address3
44
+ @locality = locality
45
+ @administrative_area = administrative_area
46
+ @postal_code = postal_code
47
+ @country_code = country_code
48
+ @name = name
49
+ @phone_number = phone_number
50
+ @sorting_code = sorting_code
51
+ end
52
+
53
+ sig { params(other: T.untyped).returns(T::Boolean) }
54
+ def ==(other)
55
+ return false unless other.is_a? self.class
56
+ return false unless @address1 == other.address1
57
+ return false unless @address2 == other.address2
58
+ return false unless @address3 == other.address3
59
+ return false unless @locality == other.locality
60
+ return false unless @administrative_area == other.administrative_area
61
+ return false unless @postal_code == other.postal_code
62
+ return false unless @country_code == other.country_code
63
+ return false unless @name == other.name
64
+ return false unless @phone_number == other.phone_number
65
+ return false unless @sorting_code == other.sorting_code
66
+ true
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::GooglePayBillingAddress
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::GooglePayBillingAddress
11
+ def address1(); end
12
+ def address1=(str_); end
13
+ def address2(); end
14
+ def address2=(str_); end
15
+ def address3(); end
16
+ def address3=(str_); end
17
+ def locality(); end
18
+ def locality=(str_); end
19
+ def administrative_area(); end
20
+ def administrative_area=(str_); end
21
+ def postal_code(); end
22
+ def postal_code=(str_); end
23
+ def country_code(); end
24
+ def country_code=(str_); end
25
+ def name(); end
26
+ def name=(str_); end
27
+ def phone_number(); end
28
+ def phone_number=(str_); end
29
+ def sorting_code(); end
30
+ def sorting_code=(str_); end
31
+ end