moov_ruby 26.4.6 → 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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/cards.rb +158 -0
  3. data/lib/moov/models/components/amountdecimalrange.rb +36 -0
  4. data/lib/moov/models/components/amountdecimalrange.rbi +15 -0
  5. data/lib/moov/models/components/amountdecimalrangeupdate.rb +36 -0
  6. data/lib/moov/models/components/amountdecimalrangeupdate.rbi +15 -0
  7. data/lib/moov/models/components/cardmetadata.rb +79 -0
  8. data/lib/moov/models/components/cardmetadata.rbi +35 -0
  9. data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
  10. data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
  11. data/lib/moov/models/components/createdtransfer.rb +2 -6
  12. data/lib/moov/models/components/createdtransfer.rbi +0 -2
  13. data/lib/moov/models/components/createpaymentlink.rb +11 -11
  14. data/lib/moov/models/components/createpaymentlink.rbi +4 -4
  15. data/lib/moov/models/components/createpaymentlinkamountdetails.rb +32 -0
  16. data/lib/moov/models/components/createpaymentlinkamountdetails.rbi +13 -0
  17. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rb +32 -0
  18. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rbi +13 -0
  19. data/lib/moov/models/components/createtransfer.rb +2 -6
  20. data/lib/moov/models/components/createtransfer.rbi +0 -2
  21. data/lib/moov/models/components/createtransferamountdetails.rb +6 -2
  22. data/lib/moov/models/components/createtransferamountdetails.rbi +2 -0
  23. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rb +6 -2
  24. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rbi +2 -0
  25. data/lib/moov/models/components/paymentlink.rb +15 -15
  26. data/lib/moov/models/components/paymentlink.rbi +4 -4
  27. data/lib/moov/models/components/paymentlinkamountdetails.rb +32 -0
  28. data/lib/moov/models/components/paymentlinkamountdetails.rbi +13 -0
  29. data/lib/moov/models/components/paymentlinkpaymentdetails.rb +14 -2
  30. data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +6 -0
  31. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +19 -0
  32. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +11 -0
  33. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +14 -2
  34. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +6 -0
  35. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +19 -0
  36. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +11 -0
  37. data/lib/moov/models/components/transfer.rb +2 -6
  38. data/lib/moov/models/components/transfer.rbi +0 -2
  39. data/lib/moov/models/components/transferamountdetails.rb +6 -2
  40. data/lib/moov/models/components/transferamountdetails.rbi +2 -0
  41. data/lib/moov/models/components/transferdestination.rb +2 -8
  42. data/lib/moov/models/components/transferdestination.rbi +0 -2
  43. data/lib/moov/models/components/updatepaymentlink.rb +6 -6
  44. data/lib/moov/models/components/updatepaymentlink.rbi +2 -2
  45. data/lib/moov/models/components/updatepaymentlinkamountdetails.rb +32 -0
  46. data/lib/moov/models/components/updatepaymentlinkamountdetails.rbi +13 -0
  47. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rb +32 -0
  48. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rbi +13 -0
  49. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +2 -6
  50. data/lib/moov/models/components/webhookdatabankaccountdeleted.rbi +0 -2
  51. data/lib/moov/models/components.rb +11 -3
  52. data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
  53. data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
  54. data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -6
  55. data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -2
  56. data/lib/moov/models/errors/transfer_error.rb +2 -6
  57. data/lib/moov/models/errors/transfer_error.rbi +0 -2
  58. data/lib/moov/models/errors/transfervalidationerror.rb +2 -6
  59. data/lib/moov/models/errors/transfervalidationerror.rbi +0 -2
  60. data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -6
  61. data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -2
  62. data/lib/moov/models/errors.rb +1 -0
  63. data/lib/moov/models/operations/getcardmetadata_response.rb +48 -0
  64. data/lib/moov/models/operations/getcardmetadata_response.rbi +21 -0
  65. data/lib/moov/models/operations.rb +1 -0
  66. data/lib/moov/sdkconfiguration.rb +3 -3
  67. metadata +29 -9
  68. data/lib/moov/models/components/rtpfailurecode.rb +0 -27
  69. data/lib/moov/models/components/rtpfailurecode.rbi +0 -11
  70. data/lib/moov/models/components/rtptransactiondetails.rb +0 -58
  71. data/lib/moov/models/components/rtptransactiondetails.rbi +0 -25
  72. data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
  73. data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
@@ -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 CreatePaymentLinkAmountDetailsValidationError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :tax, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tax') } }
17
+
18
+ sig { params(tax: T.nilable(::String)).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::CreatePaymentLinkAmountDetailsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreatePaymentLinkAmountDetailsValidationError
11
+ def tax(); end
12
+ def tax=(str_); end
13
+ end
@@ -24,8 +24,6 @@ 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
-
28
- field :sales_tax_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('salesTaxAmount') } }
29
27
  # Optional alias from a foreign/external system which can be used to reference this resource.
30
28
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
31
29
  # An optional collection of line items for a transfer.
@@ -34,15 +32,14 @@ module Moov
34
32
 
35
33
  field :amount_details, Crystalline::Nilable.new(Models::Components::CreateTransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
36
34
 
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)
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]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails)).void }
36
+ def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil)
39
37
  @source = source
40
38
  @destination = destination
41
39
  @amount = amount
42
40
  @facilitator_fee = facilitator_fee
43
41
  @description = description
44
42
  @metadata = metadata
45
- @sales_tax_amount = sales_tax_amount
46
43
  @foreign_id = foreign_id
47
44
  @line_items = line_items
48
45
  @amount_details = amount_details
@@ -57,7 +54,6 @@ module Moov
57
54
  return false unless @facilitator_fee == other.facilitator_fee
58
55
  return false unless @description == other.description
59
56
  return false unless @metadata == other.metadata
60
- return false unless @sales_tax_amount == other.sales_tax_amount
61
57
  return false unless @foreign_id == other.foreign_id
62
58
  return false unless @line_items == other.line_items
63
59
  return false unless @amount_details == other.amount_details
@@ -20,8 +20,6 @@ class Moov::Models::Components::CreateTransfer
20
20
  def description=(str_); end
21
21
  def metadata(); end
22
22
  def metadata=(str_); end
23
- def sales_tax_amount(); end
24
- def sales_tax_amount=(str_); end
25
23
  def foreign_id(); end
26
24
  def foreign_id=(str_); end
27
25
  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::CreateTransferAmountDetails
11
11
  def tip(); end
12
12
  def tip=(str_); end
13
+ def tax(); end
14
+ def tax=(str_); end
13
15
  end
@@ -15,15 +15,19 @@ module Moov
15
15
 
16
16
  field :tip, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tip') } }
17
17
 
18
- sig { params(tip: T.nilable(::String)).void }
19
- def initialize(tip: nil)
18
+ field :tax, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('tax') } }
19
+
20
+ sig { params(tip: T.nilable(::String), tax: T.nilable(::String)).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::CreateTransferAmountDetailsValidationError
11
11
  def tip(); end
12
12
  def tip=(str_); end
13
+ def tax(); end
14
+ def tax=(str_); end
13
15
  end
@@ -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 required for `fixed` payment amount types and omitted
38
- # for `open` payment amount types.
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
@@ -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
@@ -32,15 +32,11 @@ module Moov
32
32
  field :google_pay, Crystalline::Nilable.new(Models::Components::GooglePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay') } }
33
33
  # Card-specific details about the transaction.
34
34
  field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
35
- # DEPRECATED: use `InstantBankTransactionDetails` instead (v2026.04.00 or later). RTP specific details about the transaction.
36
- #
37
- # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
38
- field :rtp_details, Crystalline::Nilable.new(Models::Components::RTPTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('rtpDetails') } }
39
35
  # Instant-bank specific details about the transaction.
40
36
  field :instant_bank_details, Crystalline::Nilable.new(Models::Components::InstantBankTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankDetails') } }
41
37
 
42
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), rtp_details: T.nilable(Models::Components::RTPTransactionDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
43
- def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, google_pay: nil, card_details: nil, rtp_details: nil, instant_bank_details: nil)
38
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), ach_details: T.nilable(Models::Components::ACHTransactionDetails), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), card_details: T.nilable(Models::Components::CardTransactionDetails), instant_bank_details: T.nilable(Models::Components::InstantBankTransactionDetails)).void }
39
+ def initialize(payment_method_id:, payment_method_type:, account:, bank_account: nil, wallet: nil, card: nil, ach_details: nil, apple_pay: nil, google_pay: nil, card_details: nil, instant_bank_details: nil)
44
40
  @payment_method_id = payment_method_id
45
41
  @payment_method_type = payment_method_type
46
42
  @account = account
@@ -51,7 +47,6 @@ module Moov
51
47
  @apple_pay = apple_pay
52
48
  @google_pay = google_pay
53
49
  @card_details = card_details
54
- @rtp_details = rtp_details
55
50
  @instant_bank_details = instant_bank_details
56
51
  end
57
52
 
@@ -68,7 +63,6 @@ module Moov
68
63
  return false unless @apple_pay == other.apple_pay
69
64
  return false unless @google_pay == other.google_pay
70
65
  return false unless @card_details == other.card_details
71
- return false unless @rtp_details == other.rtp_details
72
66
  return false unless @instant_bank_details == other.instant_bank_details
73
67
  true
74
68
  end