moov_ruby 26.4.8 → 26.7.0.pre.dev.0

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/account_terminal_applications.rb +16 -16
  3. data/lib/moov/accounts.rb +54 -52
  4. data/lib/moov/adjustments.rb +8 -8
  5. data/lib/moov/apple_pay.rb +20 -20
  6. data/lib/moov/authentication.rb +8 -8
  7. data/lib/moov/avatars.rb +4 -4
  8. data/lib/moov/bank_accounts.rb +36 -36
  9. data/lib/moov/branding.rb +12 -12
  10. data/lib/moov/capabilities.rb +20 -20
  11. data/lib/moov/card_issuing.rb +25 -25
  12. data/lib/moov/cards.rb +178 -20
  13. data/lib/moov/disputes.rb +44 -44
  14. data/lib/moov/end_to_end_encryption.rb +8 -8
  15. data/lib/moov/enriched_address.rb +4 -4
  16. data/lib/moov/enriched_profile.rb +4 -4
  17. data/lib/moov/fee_plans.rb +40 -40
  18. data/lib/moov/files.rb +12 -12
  19. data/lib/moov/google_pay.rb +4 -4
  20. data/lib/moov/images.rb +28 -28
  21. data/lib/moov/industries.rb +4 -4
  22. data/lib/moov/institutions.rb +8 -8
  23. data/lib/moov/invoices.rb +28 -28
  24. data/lib/moov/issuing_transactions.rb +20 -20
  25. data/lib/moov/models/components/addcapabilities.rb +1 -5
  26. data/lib/moov/models/components/amountdecimalrange.rb +36 -0
  27. data/lib/moov/models/components/amountdecimalrange.rbi +15 -0
  28. data/lib/moov/models/components/amountdecimalrangeupdate.rb +36 -0
  29. data/lib/moov/models/components/amountdecimalrangeupdate.rbi +15 -0
  30. data/lib/moov/models/components/authorizeduser.rb +36 -0
  31. data/lib/moov/models/components/authorizeduser.rbi +15 -0
  32. data/lib/moov/models/components/capability.rb +1 -7
  33. data/lib/moov/models/components/capabilityid.rb +1 -7
  34. data/lib/moov/models/components/cardmetadata.rb +79 -0
  35. data/lib/moov/models/components/cardmetadata.rbi +35 -0
  36. data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
  37. data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
  38. data/lib/moov/models/components/createaccount.rb +1 -5
  39. data/lib/moov/models/components/createauthorizeduser.rb +40 -0
  40. data/lib/moov/models/components/createauthorizeduser.rbi +17 -0
  41. data/lib/moov/models/components/createauthorizedusererror.rb +40 -0
  42. data/lib/moov/models/components/createauthorizedusererror.rbi +17 -0
  43. data/lib/moov/models/components/createauthorizeduserupdate.rb +40 -0
  44. data/lib/moov/models/components/createauthorizeduserupdate.rbi +17 -0
  45. data/lib/moov/models/components/createdtransfer.rb +2 -6
  46. data/lib/moov/models/components/createdtransfer.rbi +0 -2
  47. data/lib/moov/models/components/createpaymentlink.rb +15 -15
  48. data/lib/moov/models/components/createpaymentlink.rbi +4 -4
  49. data/lib/moov/models/components/createpaymentlinkamountdetails.rb +32 -0
  50. data/lib/moov/models/components/createpaymentlinkamountdetails.rbi +13 -0
  51. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rb +32 -0
  52. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rbi +13 -0
  53. data/lib/moov/models/components/createtransfer.rb +2 -6
  54. data/lib/moov/models/components/createtransfer.rbi +0 -2
  55. data/lib/moov/models/components/createtransferamountdetails.rb +6 -2
  56. data/lib/moov/models/components/createtransferamountdetails.rbi +2 -0
  57. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rb +6 -2
  58. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rbi +2 -0
  59. data/lib/moov/models/components/fullissuedcard.rb +10 -22
  60. data/lib/moov/models/components/fullissuedcard.rbi +4 -10
  61. data/lib/moov/models/components/invoice.rb +1 -1
  62. data/lib/moov/models/components/issuedcard.rb +10 -22
  63. data/lib/moov/models/components/issuedcard.rbi +4 -10
  64. data/lib/moov/models/components/onboardinginvite.rb +1 -1
  65. data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
  66. data/lib/moov/models/components/paymentlink.rb +15 -15
  67. data/lib/moov/models/components/paymentlink.rbi +4 -4
  68. data/lib/moov/models/components/paymentlinkamountdetails.rb +32 -0
  69. data/lib/moov/models/components/paymentlinkamountdetails.rbi +13 -0
  70. data/lib/moov/models/components/paymentlinkpaymentdetails.rb +14 -2
  71. data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +6 -0
  72. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +19 -0
  73. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +11 -0
  74. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +14 -2
  75. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +6 -0
  76. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +19 -0
  77. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +11 -0
  78. data/lib/moov/models/components/requestcard.rb +17 -17
  79. data/lib/moov/models/components/requestcard.rbi +8 -8
  80. data/lib/moov/models/components/transfer.rb +2 -6
  81. data/lib/moov/models/components/transfer.rbi +0 -2
  82. data/lib/moov/models/components/transferamountdetails.rb +6 -2
  83. data/lib/moov/models/components/transferamountdetails.rbi +2 -0
  84. data/lib/moov/models/components/transferconfig.rb +2 -6
  85. data/lib/moov/models/components/transferconfig.rbi +0 -2
  86. data/lib/moov/models/components/transferdestination.rb +2 -8
  87. data/lib/moov/models/components/transferdestination.rbi +0 -2
  88. data/lib/moov/models/components/updateinvoice.rb +6 -6
  89. data/lib/moov/models/components/updateissuedcard.rb +9 -13
  90. data/lib/moov/models/components/updateissuedcard.rbi +4 -6
  91. data/lib/moov/models/components/updatepaymentlink.rb +6 -6
  92. data/lib/moov/models/components/updatepaymentlink.rbi +2 -2
  93. data/lib/moov/models/components/updatepaymentlinkamountdetails.rb +32 -0
  94. data/lib/moov/models/components/updatepaymentlinkamountdetails.rbi +13 -0
  95. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rb +32 -0
  96. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rbi +13 -0
  97. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +2 -6
  98. data/lib/moov/models/components/webhookdatabankaccountdeleted.rbi +0 -2
  99. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -7
  100. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +1 -7
  101. data/lib/moov/models/components/webhookdatasweepcreated.rb +2 -6
  102. data/lib/moov/models/components/webhookdatasweepcreated.rbi +0 -2
  103. data/lib/moov/models/components/webhookdatasweepupdated.rb +2 -6
  104. data/lib/moov/models/components/webhookdatasweepupdated.rbi +0 -2
  105. data/lib/moov/models/components/webhookevent.rb +2 -2
  106. data/lib/moov/models/components/webhookeventtype.rb +0 -1
  107. data/lib/moov/models/components.rb +15 -6
  108. data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
  109. data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
  110. data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -6
  111. data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -2
  112. data/lib/moov/models/errors/requestcarderror.rb +14 -14
  113. data/lib/moov/models/errors/requestcarderror.rbi +8 -8
  114. data/lib/moov/models/errors/transfer_error.rb +2 -6
  115. data/lib/moov/models/errors/transfer_error.rbi +0 -2
  116. data/lib/moov/models/errors/transfervalidationerror.rb +2 -6
  117. data/lib/moov/models/errors/transfervalidationerror.rbi +0 -2
  118. data/lib/moov/models/errors/updateissuedcarderror.rb +8 -12
  119. data/lib/moov/models/errors/updateissuedcarderror.rbi +4 -6
  120. data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -6
  121. data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -2
  122. data/lib/moov/models/errors.rb +1 -0
  123. data/lib/moov/models/operations/disablecapability_request.rb +1 -7
  124. data/lib/moov/models/operations/getcapability_request.rb +1 -7
  125. data/lib/moov/models/operations/{listcancellations_response.rb → getcardmetadata_response.rb} +6 -6
  126. data/lib/moov/models/operations/{listcancellations_response.rbi → getcardmetadata_response.rbi} +4 -4
  127. data/lib/moov/models/operations.rb +1 -2
  128. data/lib/moov/onboarding.rb +16 -16
  129. data/lib/moov/payment_links.rb +24 -24
  130. data/lib/moov/payment_methods.rb +8 -8
  131. data/lib/moov/ping.rb +4 -4
  132. data/lib/moov/products.rb +20 -20
  133. data/lib/moov/receipts.rb +8 -8
  134. data/lib/moov/representatives.rb +20 -20
  135. data/lib/moov/resolution_links.rb +16 -16
  136. data/lib/moov/scheduling.rb +24 -24
  137. data/lib/moov/sdkconfiguration.rb +4 -4
  138. data/lib/moov/statements.rb +8 -8
  139. data/lib/moov/support.rb +20 -20
  140. data/lib/moov/sweeps.rb +24 -24
  141. data/lib/moov/terminal_applications.rb +20 -20
  142. data/lib/moov/transfer_config.rb +12 -12
  143. data/lib/moov/transfers.rb +48 -171
  144. data/lib/moov/underwriting.rb +12 -12
  145. data/lib/moov/utils/retries.rb +1 -4
  146. data/lib/moov/wallet_transactions.rb +8 -8
  147. data/lib/moov/wallets.rb +16 -16
  148. data/lib/moov/webhooks.rb +32 -32
  149. metadata +38 -20
  150. data/lib/moov/models/components/billingaddress.rb +0 -52
  151. data/lib/moov/models/components/billingaddress.rbi +0 -23
  152. data/lib/moov/models/components/rtpfailurecode.rb +0 -27
  153. data/lib/moov/models/components/rtpfailurecode.rbi +0 -11
  154. data/lib/moov/models/components/rtptransactiondetails.rb +0 -58
  155. data/lib/moov/models/components/rtptransactiondetails.rbi +0 -25
  156. data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
  157. data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
  158. data/lib/moov/models/components/transfercontrols.rb +0 -48
  159. data/lib/moov/models/components/transfercontrols.rbi +0 -21
  160. data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +0 -44
  161. data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +0 -19
  162. data/lib/moov/models/operations/listcancellations_request.rb +0 -36
  163. data/lib/moov/models/operations/listcancellations_request.rbi +0 -15
@@ -16,6 +16,8 @@ class Moov::Models::Components::IssuedCard
16
16
  def last_four_card_number=(str_); end
17
17
  def expiration(); end
18
18
  def expiration=(str_); end
19
+ def authorized_user(); end
20
+ def authorized_user=(str_); end
19
21
  def funding_wallet_id(); end
20
22
  def funding_wallet_id=(str_); end
21
23
  def state(); end
@@ -24,16 +26,8 @@ class Moov::Models::Components::IssuedCard
24
26
  def form_factor=(str_); end
25
27
  def created_on(); end
26
28
  def created_on=(str_); end
27
- def updated_on(); end
28
- def updated_on=(str_); end
29
- def authorized_user_account_id(); end
30
- def authorized_user_account_id=(str_); end
31
- def nickname(); end
32
- def nickname=(str_); end
33
- def metadata(); end
34
- def metadata=(str_); end
35
- def billing_address(); end
36
- def billing_address=(str_); end
29
+ def memo(); end
30
+ def memo=(str_); end
37
31
  def controls(); end
38
32
  def controls=(str_); end
39
33
  end
@@ -19,7 +19,7 @@ module Moov
19
19
  # List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this
20
20
  # account. These values are used to determine what can be done with the account onboarded.
21
21
  field :scopes, Crystalline::Array.new(Models::Components::ApplicationScope), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scopes'), required: true } }
22
- # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this
22
+ # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this
23
23
  # account. These values are used to determine what information to collect from the user during onboarding.
24
24
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
25
25
  # List of fee plan codes to assign the account created by the invitee.
@@ -15,7 +15,7 @@ module Moov
15
15
  # List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this
16
16
  # account. These values are used to determine what can be done with the account onboarded.
17
17
  field :scopes, Crystalline::Array.new(Models::Components::ApplicationScope), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scopes'), required: true } }
18
- # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this
18
+ # List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/) you intend to request for this
19
19
  # account. These values are used to determine what information to collect from the user during onboarding.
20
20
  field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
21
21
  # List of fee plan codes to assign the account created by the invitee.
@@ -30,13 +30,6 @@ module Moov
30
30
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
31
31
  # Link to the payment landing page for this payment link.
32
32
  field :link, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('link'), required: true } }
33
- # The fixed amount of the payment link.
34
- #
35
- # In API versions before `2026.07.00`, this was a required field.
36
- #
37
- # In API version `2026.07.00` and beyond, this field is present for `payment` and `payout` links and omitted
38
- # for `customAmountPayment` links, where the payor chooses the amount.
39
- field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
40
33
  # The number of times this payment link has been used.
41
34
  field :uses, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('uses'), required: true } }
42
35
  # Customizable display options for a payment link.
@@ -47,8 +40,13 @@ module Moov
47
40
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
48
41
 
49
42
  field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
50
- # Optional sales tax amount.
51
- field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
43
+ # The fixed amount of the payment link.
44
+ #
45
+ # In API versions before `2026.07.00`, this was a required field.
46
+ #
47
+ # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
48
+ # for `open` payment amount types.
49
+ field :amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
52
50
  # An optional limit on the number of times this payment link can be used.
53
51
  #
54
52
  # **For payouts, `maxUses` is always 1.**
@@ -67,8 +65,10 @@ module Moov
67
65
 
68
66
  field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
69
67
 
70
- sig { params(code: ::String, payment_link_type: Models::Components::PaymentLinkType, mode: Models::Components::Mode, status: Models::Components::PaymentLinkStatus, partner_account_id: ::String, merchant_account_id: ::String, owner_account_id: ::String, merchant_payment_method_id: ::String, link: ::String, amount: Models::Components::Amount, uses: ::Integer, display: Models::Components::PaymentLinkDisplayOptions, customer: Models::Components::PaymentLinkCustomerOptions, created_on: ::DateTime, updated_on: ::DateTime, sales_tax_amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), last_used_on: T.nilable(::DateTime), expires_on: T.nilable(::DateTime), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), line_items: T.nilable(Models::Components::PaymentLinkLineItems), disabled_on: T.nilable(::DateTime)).void }
71
- def initialize(code:, payment_link_type:, mode:, status:, partner_account_id:, merchant_account_id:, owner_account_id:, merchant_payment_method_id:, link:, amount:, uses:, display:, customer:, created_on:, updated_on:, sales_tax_amount: nil, max_uses: nil, last_used_on: nil, expires_on: nil, payment: nil, payout: nil, line_items: nil, disabled_on: nil)
68
+ field :amount_details, Crystalline::Nilable.new(Models::Components::PaymentLinkAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
69
+
70
+ sig { params(code: ::String, payment_link_type: Models::Components::PaymentLinkType, mode: Models::Components::Mode, status: Models::Components::PaymentLinkStatus, partner_account_id: ::String, merchant_account_id: ::String, owner_account_id: ::String, merchant_payment_method_id: ::String, link: ::String, uses: ::Integer, display: Models::Components::PaymentLinkDisplayOptions, customer: Models::Components::PaymentLinkCustomerOptions, created_on: ::DateTime, updated_on: ::DateTime, amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), last_used_on: T.nilable(::DateTime), expires_on: T.nilable(::DateTime), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), line_items: T.nilable(Models::Components::PaymentLinkLineItems), disabled_on: T.nilable(::DateTime), amount_details: T.nilable(Models::Components::PaymentLinkAmountDetails)).void }
71
+ def initialize(code:, payment_link_type:, mode:, status:, partner_account_id:, merchant_account_id:, owner_account_id:, merchant_payment_method_id:, link:, uses:, display:, customer:, created_on:, updated_on:, amount: nil, max_uses: nil, last_used_on: nil, expires_on: nil, payment: nil, payout: nil, line_items: nil, disabled_on: nil, amount_details: nil)
72
72
  @code = code
73
73
  @payment_link_type = payment_link_type
74
74
  @mode = mode
@@ -78,13 +78,12 @@ module Moov
78
78
  @owner_account_id = owner_account_id
79
79
  @merchant_payment_method_id = merchant_payment_method_id
80
80
  @link = link
81
- @amount = amount
82
81
  @uses = uses
83
82
  @display = display
84
83
  @customer = customer
85
84
  @created_on = created_on
86
85
  @updated_on = updated_on
87
- @sales_tax_amount = sales_tax_amount
86
+ @amount = amount
88
87
  @max_uses = max_uses
89
88
  @last_used_on = last_used_on
90
89
  @expires_on = expires_on
@@ -92,6 +91,7 @@ module Moov
92
91
  @payout = payout
93
92
  @line_items = line_items
94
93
  @disabled_on = disabled_on
94
+ @amount_details = amount_details
95
95
  end
96
96
 
97
97
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -106,13 +106,12 @@ module Moov
106
106
  return false unless @owner_account_id == other.owner_account_id
107
107
  return false unless @merchant_payment_method_id == other.merchant_payment_method_id
108
108
  return false unless @link == other.link
109
- return false unless @amount == other.amount
110
109
  return false unless @uses == other.uses
111
110
  return false unless @display == other.display
112
111
  return false unless @customer == other.customer
113
112
  return false unless @created_on == other.created_on
114
113
  return false unless @updated_on == other.updated_on
115
- return false unless @sales_tax_amount == other.sales_tax_amount
114
+ return false unless @amount == other.amount
116
115
  return false unless @max_uses == other.max_uses
117
116
  return false unless @last_used_on == other.last_used_on
118
117
  return false unless @expires_on == other.expires_on
@@ -120,6 +119,7 @@ module Moov
120
119
  return false unless @payout == other.payout
121
120
  return false unless @line_items == other.line_items
122
121
  return false unless @disabled_on == other.disabled_on
122
+ return false unless @amount_details == other.amount_details
123
123
  true
124
124
  end
125
125
  end
@@ -26,8 +26,6 @@ class Moov::Models::Components::PaymentLink
26
26
  def merchant_payment_method_id=(str_); end
27
27
  def link(); end
28
28
  def link=(str_); end
29
- def amount(); end
30
- def amount=(str_); end
31
29
  def uses(); end
32
30
  def uses=(str_); end
33
31
  def display(); end
@@ -38,8 +36,8 @@ class Moov::Models::Components::PaymentLink
38
36
  def created_on=(str_); end
39
37
  def updated_on(); end
40
38
  def updated_on=(str_); end
41
- def sales_tax_amount(); end
42
- def sales_tax_amount=(str_); end
39
+ def amount(); end
40
+ def amount=(str_); end
43
41
  def max_uses(); end
44
42
  def max_uses=(str_); end
45
43
  def last_used_on(); end
@@ -54,4 +52,6 @@ class Moov::Models::Components::PaymentLink
54
52
  def line_items=(str_); end
55
53
  def disabled_on(); end
56
54
  def disabled_on=(str_); end
55
+ def amount_details(); end
56
+ def amount_details=(str_); end
57
57
  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 PaymentLinkAmountDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The amount of tax applied to the payment link.
16
+ field :tax, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tax') } }
17
+
18
+ sig { params(tax: T.nilable(Models::Components::AmountDecimal)).void }
19
+ def initialize(tax: nil)
20
+ @tax = tax
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 @tax == other.tax
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::PaymentLinkAmountDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PaymentLinkAmountDetails
11
+ def tax(); end
12
+ def tax=(str_); end
13
+ end
@@ -14,28 +14,40 @@ module Moov
14
14
 
15
15
  # A list of payment methods that should be supported for this payment link.
16
16
  field :allowed_methods, Crystalline::Array.new(Models::Components::CollectionPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedMethods'), required: true } }
17
+ # The minimum and maximum amounts the buyer can specify when `amountType` is `open`.
18
+ field :amount_range, Crystalline::Nilable.new(Models::Components::AmountDecimalRange), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountRange') } }
19
+ # Optional preset amounts displayed to the buyer when `amountType` is `open`.
20
+ field :suggested_amounts, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::AmountDecimal)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('suggestedAmounts') } }
17
21
  # Options for payment links used to collect a card payment.
18
22
  field :card_details, Crystalline::Nilable.new(Models::Components::CardPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
23
  # Options for payment links used to collect an ACH payment.
20
24
  field :ach_details, Crystalline::Nilable.new(Models::Components::ACHPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
25
  # Optional free-form metadata for the transfer.
22
26
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
27
+ # Indicates whether the payment amount is fixed by the merchant or open for the buyer to choose.
28
+ field :amount_type, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetailsAmountType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkPaymentDetailsAmountType, true) } }
23
29
 
24
- sig { params(allowed_methods: T::Array[Models::Components::CollectionPaymentMethodType], card_details: T.nilable(Models::Components::CardPaymentDetails), ach_details: T.nilable(Models::Components::ACHPaymentDetails), metadata: T.nilable(T::Hash[Symbol, ::String])).void }
25
- def initialize(allowed_methods:, card_details: nil, ach_details: nil, metadata: nil)
30
+ sig { params(allowed_methods: T::Array[Models::Components::CollectionPaymentMethodType], amount_range: T.nilable(Models::Components::AmountDecimalRange), suggested_amounts: T.nilable(T::Array[Models::Components::AmountDecimal]), card_details: T.nilable(Models::Components::CardPaymentDetails), ach_details: T.nilable(Models::Components::ACHPaymentDetails), metadata: T.nilable(T::Hash[Symbol, ::String]), amount_type: T.nilable(Models::Components::PaymentLinkPaymentDetailsAmountType)).void }
31
+ def initialize(allowed_methods:, amount_range: nil, suggested_amounts: nil, card_details: nil, ach_details: nil, metadata: nil, amount_type: Models::Components::PaymentLinkPaymentDetailsAmountType::FIXED)
26
32
  @allowed_methods = allowed_methods
33
+ @amount_range = amount_range
34
+ @suggested_amounts = suggested_amounts
27
35
  @card_details = card_details
28
36
  @ach_details = ach_details
29
37
  @metadata = metadata
38
+ @amount_type = amount_type
30
39
  end
31
40
 
32
41
  sig { params(other: T.untyped).returns(T::Boolean) }
33
42
  def ==(other)
34
43
  return false unless other.is_a? self.class
35
44
  return false unless @allowed_methods == other.allowed_methods
45
+ return false unless @amount_range == other.amount_range
46
+ return false unless @suggested_amounts == other.suggested_amounts
36
47
  return false unless @card_details == other.card_details
37
48
  return false unless @ach_details == other.ach_details
38
49
  return false unless @metadata == other.metadata
50
+ return false unless @amount_type == other.amount_type
39
51
  true
40
52
  end
41
53
  end
@@ -10,10 +10,16 @@ end
10
10
  class Moov::Models::Components::PaymentLinkPaymentDetails
11
11
  def allowed_methods(); end
12
12
  def allowed_methods=(str_); end
13
+ def amount_range(); end
14
+ def amount_range=(str_); end
15
+ def suggested_amounts(); end
16
+ def suggested_amounts=(str_); end
13
17
  def card_details(); end
14
18
  def card_details=(str_); end
15
19
  def ach_details(); end
16
20
  def ach_details=(str_); end
17
21
  def metadata(); end
18
22
  def metadata=(str_); end
23
+ def amount_type(); end
24
+ def amount_type=(str_); end
19
25
  end
@@ -0,0 +1,19 @@
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
+ # PaymentLinkPaymentDetailsAmountType - Indicates whether the payment amount is fixed by the merchant or open for the buyer to choose.
11
+ class PaymentLinkPaymentDetailsAmountType < T::Enum
12
+ enums do
13
+ FIXED = new('fixed')
14
+ OPEN = new('open')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::PaymentLinkPaymentDetailsAmountType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PaymentLinkPaymentDetailsAmountType
11
+ end
@@ -14,28 +14,40 @@ module Moov
14
14
 
15
15
  # A list of payment methods that should be supported for this payment link.
16
16
  field :allowed_methods, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CollectionPaymentMethodType)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedMethods') } }
17
+ # The minimum and maximum amounts the buyer can specify when `amountType` is `open`.
18
+ field :amount_range, Crystalline::Nilable.new(Models::Components::AmountDecimalRangeUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountRange') } }
19
+ # Optional preset amounts displayed to the buyer when `amountType` is `open`.
20
+ field :suggested_amounts, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::AmountDecimal)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('suggestedAmounts') } }
17
21
  # Options for payment links used to collect a card payment.
18
22
  field :card_details, Crystalline::Nilable.new(Models::Components::CardPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
23
  # Options for payment links used to collect an ACH payment.
20
24
  field :ach_details, Crystalline::Nilable.new(Models::Components::ACHPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
25
  # Optional free-form metadata for the transfer.
22
26
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
27
+ # Indicates whether the payment amount is fixed by the merchant or open for the buyer to choose.
28
+ field :amount_type, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetailsUpdateAmountType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkPaymentDetailsUpdateAmountType, true) } }
23
29
 
24
- sig { params(allowed_methods: T.nilable(T::Array[Models::Components::CollectionPaymentMethodType]), card_details: T.nilable(Models::Components::CardPaymentDetails), ach_details: T.nilable(Models::Components::ACHPaymentDetails), metadata: T.nilable(T::Hash[Symbol, ::String])).void }
25
- def initialize(allowed_methods: nil, card_details: nil, ach_details: nil, metadata: nil)
30
+ sig { params(allowed_methods: T.nilable(T::Array[Models::Components::CollectionPaymentMethodType]), amount_range: T.nilable(Models::Components::AmountDecimalRangeUpdate), suggested_amounts: T.nilable(T::Array[Models::Components::AmountDecimal]), card_details: T.nilable(Models::Components::CardPaymentDetails), ach_details: T.nilable(Models::Components::ACHPaymentDetails), metadata: T.nilable(T::Hash[Symbol, ::String]), amount_type: T.nilable(Models::Components::PaymentLinkPaymentDetailsUpdateAmountType)).void }
31
+ def initialize(allowed_methods: nil, amount_range: nil, suggested_amounts: nil, card_details: nil, ach_details: nil, metadata: nil, amount_type: Models::Components::PaymentLinkPaymentDetailsUpdateAmountType::FIXED)
26
32
  @allowed_methods = allowed_methods
33
+ @amount_range = amount_range
34
+ @suggested_amounts = suggested_amounts
27
35
  @card_details = card_details
28
36
  @ach_details = ach_details
29
37
  @metadata = metadata
38
+ @amount_type = amount_type
30
39
  end
31
40
 
32
41
  sig { params(other: T.untyped).returns(T::Boolean) }
33
42
  def ==(other)
34
43
  return false unless other.is_a? self.class
35
44
  return false unless @allowed_methods == other.allowed_methods
45
+ return false unless @amount_range == other.amount_range
46
+ return false unless @suggested_amounts == other.suggested_amounts
36
47
  return false unless @card_details == other.card_details
37
48
  return false unless @ach_details == other.ach_details
38
49
  return false unless @metadata == other.metadata
50
+ return false unless @amount_type == other.amount_type
39
51
  true
40
52
  end
41
53
  end
@@ -10,10 +10,16 @@ end
10
10
  class Moov::Models::Components::PaymentLinkPaymentDetailsUpdate
11
11
  def allowed_methods(); end
12
12
  def allowed_methods=(str_); end
13
+ def amount_range(); end
14
+ def amount_range=(str_); end
15
+ def suggested_amounts(); end
16
+ def suggested_amounts=(str_); end
13
17
  def card_details(); end
14
18
  def card_details=(str_); end
15
19
  def ach_details(); end
16
20
  def ach_details=(str_); end
17
21
  def metadata(); end
18
22
  def metadata=(str_); end
23
+ def amount_type(); end
24
+ def amount_type=(str_); end
19
25
  end
@@ -0,0 +1,19 @@
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
+ # PaymentLinkPaymentDetailsUpdateAmountType - Indicates whether the payment amount is fixed by the merchant or open for the buyer to choose.
11
+ class PaymentLinkPaymentDetailsUpdateAmountType < T::Enum
12
+ enums do
13
+ FIXED = new('fixed')
14
+ OPEN = new('open')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::PaymentLinkPaymentDetailsUpdateAmountType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::PaymentLinkPaymentDetailsUpdateAmountType
11
+ end
@@ -13,24 +13,24 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
17
-
18
- field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
19
- # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
20
- field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
21
-
22
- field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
16
+ field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
17
+ # Fields for identifying an authorized individual.
18
+ field :authorized_user, Models::Components::CreateAuthorizedUser, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUser'), required: true } }
19
+ # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
20
+ field :form_factor, Models::Components::IssuedCardFormFactor, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('formFactor'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardFormFactor, false) } }
21
+ # An optional descriptive name for the card.
22
+ field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
23
23
  # The expiration date of the card or token.
24
24
  field :expiration, Crystalline::Nilable.new(Models::Components::CardExpiration), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration') } }
25
25
 
26
26
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
27
27
 
28
- sig { params(authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), expiration: T.nilable(Models::Components::CardExpiration), controls: T.nilable(Models::Components::IssuingControls)).void }
29
- def initialize(authorized_user_account_id: nil, nickname: nil, metadata: nil, billing_address: nil, expiration: nil, controls: nil)
30
- @authorized_user_account_id = authorized_user_account_id
31
- @nickname = nickname
32
- @metadata = metadata
33
- @billing_address = billing_address
28
+ sig { params(funding_wallet_id: ::String, authorized_user: Models::Components::CreateAuthorizedUser, form_factor: Models::Components::IssuedCardFormFactor, memo: T.nilable(::String), expiration: T.nilable(Models::Components::CardExpiration), controls: T.nilable(Models::Components::IssuingControls)).void }
29
+ def initialize(funding_wallet_id:, authorized_user:, form_factor:, memo: nil, expiration: nil, controls: nil)
30
+ @funding_wallet_id = funding_wallet_id
31
+ @authorized_user = authorized_user
32
+ @form_factor = form_factor
33
+ @memo = memo
34
34
  @expiration = expiration
35
35
  @controls = controls
36
36
  end
@@ -38,10 +38,10 @@ module Moov
38
38
  sig { params(other: T.untyped).returns(T::Boolean) }
39
39
  def ==(other)
40
40
  return false unless other.is_a? self.class
41
- return false unless @authorized_user_account_id == other.authorized_user_account_id
42
- return false unless @nickname == other.nickname
43
- return false unless @metadata == other.metadata
44
- return false unless @billing_address == other.billing_address
41
+ return false unless @funding_wallet_id == other.funding_wallet_id
42
+ return false unless @authorized_user == other.authorized_user
43
+ return false unless @form_factor == other.form_factor
44
+ return false unless @memo == other.memo
45
45
  return false unless @expiration == other.expiration
46
46
  return false unless @controls == other.controls
47
47
  true
@@ -8,14 +8,14 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::RequestCard
11
- def authorized_user_account_id(); end
12
- def authorized_user_account_id=(str_); end
13
- def nickname(); end
14
- def nickname=(str_); end
15
- def metadata(); end
16
- def metadata=(str_); end
17
- def billing_address(); end
18
- def billing_address=(str_); end
11
+ def funding_wallet_id(); end
12
+ def funding_wallet_id=(str_); end
13
+ def authorized_user(); end
14
+ def authorized_user=(str_); end
15
+ def form_factor(); end
16
+ def form_factor=(str_); end
17
+ def memo(); end
18
+ def memo=(str_); end
19
19
  def expiration(); end
20
20
  def expiration=(str_); end
21
21
  def controls(); end
@@ -62,8 +62,6 @@ module Moov
62
62
  field :occurrence_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrenceID') } }
63
63
 
64
64
  field :payment_link_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkCode') } }
65
-
66
- field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
67
65
  # Optional alias from a foreign/external system which can be used to reference this resource.
68
66
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
69
67
  # An optional collection of line items for a transfer.
@@ -74,8 +72,8 @@ module Moov
74
72
 
75
73
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
76
74
 
77
- 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), sales_tax_amount: T.nilable(Models::Components::Amount), 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 }
78
- 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, sales_tax_amount: nil, foreign_id: nil, line_items: nil, invoice_id: nil, amount_details: nil)
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)
79
77
  @transfer_id = transfer_id
80
78
  @created_on = created_on
81
79
  @source = source
@@ -101,7 +99,6 @@ module Moov
101
99
  @schedule_id = schedule_id
102
100
  @occurrence_id = occurrence_id
103
101
  @payment_link_code = payment_link_code
104
- @sales_tax_amount = sales_tax_amount
105
102
  @foreign_id = foreign_id
106
103
  @line_items = line_items
107
104
  @invoice_id = invoice_id
@@ -136,7 +133,6 @@ module Moov
136
133
  return false unless @schedule_id == other.schedule_id
137
134
  return false unless @occurrence_id == other.occurrence_id
138
135
  return false unless @payment_link_code == other.payment_link_code
139
- return false unless @sales_tax_amount == other.sales_tax_amount
140
136
  return false unless @foreign_id == other.foreign_id
141
137
  return false unless @line_items == other.line_items
142
138
  return false unless @invoice_id == other.invoice_id
@@ -58,8 +58,6 @@ class Moov::Models::Components::Transfer
58
58
  def occurrence_id=(str_); end
59
59
  def payment_link_code(); end
60
60
  def payment_link_code=(str_); end
61
- def sales_tax_amount(); end
62
- def sales_tax_amount=(str_); end
63
61
  def foreign_id(); end
64
62
  def foreign_id=(str_); end
65
63
  def line_items(); end
@@ -14,16 +14,20 @@ module Moov
14
14
 
15
15
  # The amount of tip applied to the transfer.
16
16
  field :tip, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tip') } }
17
+ # The amount of tax applied to the transfer.
18
+ field :tax, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tax') } }
17
19
 
18
- sig { params(tip: T.nilable(Models::Components::AmountDecimal)).void }
19
- def initialize(tip: nil)
20
+ sig { params(tip: T.nilable(Models::Components::AmountDecimal), tax: T.nilable(Models::Components::AmountDecimal)).void }
21
+ def initialize(tip: nil, tax: nil)
20
22
  @tip = tip
23
+ @tax = tax
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
26
29
  return false unless @tip == other.tip
30
+ return false unless @tax == other.tax
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::TransferAmountDetails
11
11
  def tip(); end
12
12
  def tip=(str_); end
13
+ def tax(); end
14
+ def tax=(str_); end
13
15
  end
@@ -15,19 +15,15 @@ module Moov
15
15
  # Tip presets when calculating tips for a transfer.
16
16
  field :tip_presets, Crystalline::Nilable.new(Models::Components::TipPresets), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tipPresets') } }
17
17
 
18
- field :transfer_controls, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::TransferControls)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferControls') } }
19
-
20
- sig { params(tip_presets: T.nilable(Models::Components::TipPresets), transfer_controls: T.nilable(T::Array[Models::Components::TransferControls])).void }
21
- def initialize(tip_presets: nil, transfer_controls: nil)
18
+ sig { params(tip_presets: T.nilable(Models::Components::TipPresets)).void }
19
+ def initialize(tip_presets: nil)
22
20
  @tip_presets = tip_presets
23
- @transfer_controls = transfer_controls
24
21
  end
25
22
 
26
23
  sig { params(other: T.untyped).returns(T::Boolean) }
27
24
  def ==(other)
28
25
  return false unless other.is_a? self.class
29
26
  return false unless @tip_presets == other.tip_presets
30
- return false unless @transfer_controls == other.transfer_controls
31
27
  true
32
28
  end
33
29
  end
@@ -10,6 +10,4 @@ end
10
10
  class Moov::Models::Components::TransferConfig
11
11
  def tip_presets(); end
12
12
  def tip_presets=(str_); end
13
- def transfer_controls(); end
14
- def transfer_controls=(str_); end
15
13
  end