moov_ruby 0.0.0.pre.dev.19 → 0.0.0.pre.dev.21

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 (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/account_terminal_applications.rb +16 -16
  3. data/lib/moov/accounts.rb +52 -54
  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 +24 -24
  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 +5 -1
  26. data/lib/moov/models/components/amountdecimalrange.rb +11 -5
  27. data/lib/moov/models/components/amountdecimalrangeupdate.rb +7 -1
  28. data/lib/moov/models/components/amountdetails.rb +36 -0
  29. data/lib/moov/models/components/amountdetails.rbi +15 -0
  30. data/lib/moov/models/components/amountdetailsupdate.rb +36 -0
  31. data/lib/moov/models/components/amountdetailsupdate.rbi +15 -0
  32. data/lib/moov/models/components/amountdetailsvalidationerror.rb +36 -0
  33. data/lib/moov/models/components/amountdetailsvalidationerror.rbi +15 -0
  34. data/lib/moov/models/components/billingaddress.rb +52 -0
  35. data/lib/moov/models/components/billingaddress.rbi +23 -0
  36. data/lib/moov/models/components/capability.rb +7 -1
  37. data/lib/moov/models/components/capabilityid.rb +7 -1
  38. data/lib/moov/models/components/cardtransactiondetails.rb +6 -2
  39. data/lib/moov/models/components/cardtransactiondetails.rbi +2 -0
  40. data/lib/moov/models/components/cardtransactionstatus.rb +1 -0
  41. data/lib/moov/models/components/createaccount.rb +5 -1
  42. data/lib/moov/models/components/createinvoice.rb +5 -5
  43. data/lib/moov/models/components/createinvoice.rbi +2 -2
  44. data/lib/moov/models/components/createpaymentlink.rb +10 -6
  45. data/lib/moov/models/components/createpaymentlink.rbi +2 -0
  46. data/lib/moov/models/components/createtransferdestinationcard.rb +6 -2
  47. data/lib/moov/models/components/createtransferdestinationcard.rbi +2 -0
  48. data/lib/moov/models/components/customamountpaymentdetailserror.rb +52 -0
  49. data/lib/moov/models/components/customamountpaymentdetailserror.rbi +23 -0
  50. data/lib/moov/models/components/fullissuedcard.rb +22 -10
  51. data/lib/moov/models/components/fullissuedcard.rbi +10 -4
  52. data/lib/moov/models/components/invoice.rb +7 -7
  53. data/lib/moov/models/components/invoice.rbi +2 -2
  54. data/lib/moov/models/components/issuedcard.rb +22 -10
  55. data/lib/moov/models/components/issuedcard.rbi +10 -4
  56. data/lib/moov/models/components/onboardinginvite.rb +1 -1
  57. data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
  58. data/lib/moov/models/components/paymentlink.rb +12 -5
  59. data/lib/moov/models/components/paymentlink.rbi +2 -0
  60. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +59 -0
  61. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rbi +23 -0
  62. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +59 -0
  63. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rbi +23 -0
  64. data/lib/moov/models/components/paymentlinkpaymentdetails.rb +2 -14
  65. data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +0 -6
  66. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +2 -14
  67. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +0 -6
  68. data/lib/moov/models/components/paymentlinktype.rb +1 -0
  69. data/lib/moov/models/components/requestcard.rb +17 -17
  70. data/lib/moov/models/components/requestcard.rbi +8 -8
  71. data/lib/moov/models/components/transferconfig.rb +6 -2
  72. data/lib/moov/models/components/transferconfig.rbi +2 -0
  73. data/lib/moov/models/components/transfercontrols.rb +48 -0
  74. data/lib/moov/models/components/transfercontrols.rbi +21 -0
  75. data/lib/moov/models/components/updateinvoice.rb +11 -11
  76. data/lib/moov/models/components/updateinvoice.rbi +2 -2
  77. data/lib/moov/models/components/updateissuedcard.rb +13 -9
  78. data/lib/moov/models/components/updateissuedcard.rbi +6 -4
  79. data/lib/moov/models/components/updatepaymentlink.rb +6 -2
  80. data/lib/moov/models/components/updatepaymentlink.rbi +2 -0
  81. data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +44 -0
  82. data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +19 -0
  83. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +7 -1
  84. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +7 -1
  85. data/lib/moov/models/components/webhookdatasweepcreated.rb +6 -2
  86. data/lib/moov/models/components/webhookdatasweepcreated.rbi +2 -0
  87. data/lib/moov/models/components/webhookdatasweepupdated.rb +6 -2
  88. data/lib/moov/models/components/webhookdatasweepupdated.rbi +2 -0
  89. data/lib/moov/models/components/webhookevent.rb +2 -2
  90. data/lib/moov/models/components/webhookeventtype.rb +1 -0
  91. data/lib/moov/models/components.rb +9 -6
  92. data/lib/moov/models/errors/createinvoiceerror.rb +5 -5
  93. data/lib/moov/models/errors/createinvoiceerror.rbi +2 -2
  94. data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -2
  95. data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -0
  96. data/lib/moov/models/errors/requestcarderror.rb +14 -14
  97. data/lib/moov/models/errors/requestcarderror.rbi +8 -8
  98. data/lib/moov/models/errors/updateinvoiceerror.rb +5 -5
  99. data/lib/moov/models/errors/updateinvoiceerror.rbi +2 -2
  100. data/lib/moov/models/errors/updateissuedcarderror.rb +12 -8
  101. data/lib/moov/models/errors/updateissuedcarderror.rbi +6 -4
  102. data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -2
  103. data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -0
  104. data/lib/moov/models/operations/disablecapability_request.rb +7 -1
  105. data/lib/moov/models/operations/getcapability_request.rb +7 -1
  106. data/lib/moov/models/operations/listcancellations_request.rb +36 -0
  107. data/lib/moov/models/operations/listcancellations_request.rbi +15 -0
  108. data/lib/moov/models/operations/listcancellations_response.rb +48 -0
  109. data/lib/moov/models/operations/listcancellations_response.rbi +21 -0
  110. data/lib/moov/models/operations.rb +2 -0
  111. data/lib/moov/onboarding.rb +16 -16
  112. data/lib/moov/payment_links.rb +24 -24
  113. data/lib/moov/payment_methods.rb +8 -8
  114. data/lib/moov/ping.rb +4 -4
  115. data/lib/moov/products.rb +20 -20
  116. data/lib/moov/receipts.rb +8 -8
  117. data/lib/moov/representatives.rb +20 -20
  118. data/lib/moov/resolution_links.rb +16 -16
  119. data/lib/moov/scheduling.rb +24 -24
  120. data/lib/moov/sdkconfiguration.rb +3 -3
  121. data/lib/moov/statements.rb +8 -8
  122. data/lib/moov/support.rb +20 -20
  123. data/lib/moov/sweeps.rb +24 -24
  124. data/lib/moov/terminal_applications.rb +20 -20
  125. data/lib/moov/transfer_config.rb +12 -12
  126. data/lib/moov/transfers.rb +171 -48
  127. data/lib/moov/underwriting.rb +12 -12
  128. data/lib/moov/utils/retries.rb +4 -1
  129. data/lib/moov/wallet_transactions.rb +8 -8
  130. data/lib/moov/wallets.rb +16 -16
  131. data/lib/moov/webhooks.rb +32 -32
  132. metadata +24 -14
  133. data/lib/moov/models/components/authorizeduser.rb +0 -36
  134. data/lib/moov/models/components/authorizeduser.rbi +0 -15
  135. data/lib/moov/models/components/createauthorizeduser.rb +0 -40
  136. data/lib/moov/models/components/createauthorizeduser.rbi +0 -17
  137. data/lib/moov/models/components/createauthorizedusererror.rb +0 -40
  138. data/lib/moov/models/components/createauthorizedusererror.rbi +0 -17
  139. data/lib/moov/models/components/createauthorizeduserupdate.rb +0 -40
  140. data/lib/moov/models/components/createauthorizeduserupdate.rbi +0 -17
  141. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +0 -19
  142. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +0 -11
  143. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +0 -19
  144. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +0 -11
@@ -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
+
11
+ class AmountDetailsValidationError
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
+ field :surcharge, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('surcharge') } }
19
+
20
+ sig { params(tax: T.nilable(::String), surcharge: T.nilable(::String)).void }
21
+ def initialize(tax: nil, surcharge: nil)
22
+ @tax = tax
23
+ @surcharge = surcharge
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 @tax == other.tax
30
+ return false unless @surcharge == other.surcharge
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::AmountDetailsValidationError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::AmountDetailsValidationError
11
+ def tax(); end
12
+ def tax=(str_); end
13
+ def surcharge(); end
14
+ def surcharge=(str_); end
15
+ end
@@ -0,0 +1,52 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class BillingAddress
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :address_line1, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1') } }
17
+
18
+ field :address_line2, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine2') } }
19
+
20
+ field :city, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('city') } }
21
+
22
+ field :state_or_province, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('stateOrProvince') } }
23
+
24
+ field :postal_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode') } }
25
+
26
+ field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('country') } }
27
+
28
+ sig { params(address_line1: T.nilable(::String), address_line2: T.nilable(::String), city: T.nilable(::String), state_or_province: T.nilable(::String), postal_code: T.nilable(::String), country: T.nilable(::String)).void }
29
+ def initialize(address_line1: nil, address_line2: nil, city: nil, state_or_province: nil, postal_code: nil, country: nil)
30
+ @address_line1 = address_line1
31
+ @address_line2 = address_line2
32
+ @city = city
33
+ @state_or_province = state_or_province
34
+ @postal_code = postal_code
35
+ @country = country
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @address_line1 == other.address_line1
42
+ return false unless @address_line2 == other.address_line2
43
+ return false unless @city == other.city
44
+ return false unless @state_or_province == other.state_or_province
45
+ return false unless @postal_code == other.postal_code
46
+ return false unless @country == other.country
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::BillingAddress
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::BillingAddress
11
+ def address_line1(); end
12
+ def address_line1=(str_); end
13
+ def address_line2(); end
14
+ def address_line2=(str_); end
15
+ def city(); end
16
+ def city=(str_); end
17
+ def state_or_province(); end
18
+ def state_or_province=(str_); end
19
+ def postal_code(); end
20
+ def postal_code=(str_); end
21
+ def country(); end
22
+ def country=(str_); end
23
+ end
@@ -14,7 +14,13 @@ module Moov
14
14
 
15
15
  # Moov account capabilities.
16
16
  #
17
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
17
+ # **Deprecated capabilities**
18
+ #
19
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
20
+ #
21
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
22
+ #
23
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
18
24
  field :capability, Models::Components::CapabilityID, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capability'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CapabilityID, false) } }
19
25
 
20
26
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
@@ -9,7 +9,13 @@ module Moov
9
9
  module Components
10
10
  # CapabilityID - Moov account capabilities.
11
11
  #
12
- # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
12
+ # **Deprecated capabilities**
13
+ #
14
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
15
+ #
16
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
17
+ #
18
+ # The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
13
19
  class CapabilityID < T::Enum
14
20
  enums do
15
21
  TRANSFERS = new('transfers')
@@ -18,6 +18,8 @@ module Moov
18
18
  field :failure_code, Crystalline::Nilable.new(Models::Components::CardTransactionFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardTransactionFailureCode, true) } }
19
19
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
20
20
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
21
+ # The scheduled date and time for the transfer to be delivered. This field is only valid for push-to-card transfers. Must be between 24 and 48 hours in the future.
22
+ field :scheduled_delivery_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scheduledDeliveryOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
21
23
  # Specifies the nature and initiator of a transaction.
22
24
  #
23
25
  # Crucial for recurring and merchant-initiated transactions as per card scheme rules.
@@ -44,11 +46,12 @@ module Moov
44
46
  # An alphanumeric code generated by the card network to demonstrate approval for the transaction.
45
47
  field :authorization_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationCode') } }
46
48
 
47
- sig { params(status: T.nilable(Models::Components::CardTransactionStatus), failure_code: T.nilable(Models::Components::CardTransactionFailureCode), dynamic_descriptor: T.nilable(::String), transaction_source: T.nilable(Models::Components::TransactionSource), initiated_on: T.nilable(::DateTime), confirmed_on: T.nilable(::DateTime), settled_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), interchange_qualification: T.nilable(::String), fee_program: T.nilable(::String), authorization_code: T.nilable(::String)).void }
48
- def initialize(status: nil, failure_code: nil, dynamic_descriptor: nil, transaction_source: nil, initiated_on: nil, confirmed_on: nil, settled_on: nil, failed_on: nil, canceled_on: nil, completed_on: nil, interchange_qualification: nil, fee_program: nil, authorization_code: nil)
49
+ sig { params(status: T.nilable(Models::Components::CardTransactionStatus), failure_code: T.nilable(Models::Components::CardTransactionFailureCode), dynamic_descriptor: T.nilable(::String), scheduled_delivery_on: T.nilable(::DateTime), transaction_source: T.nilable(Models::Components::TransactionSource), initiated_on: T.nilable(::DateTime), confirmed_on: T.nilable(::DateTime), settled_on: T.nilable(::DateTime), failed_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), completed_on: T.nilable(::DateTime), interchange_qualification: T.nilable(::String), fee_program: T.nilable(::String), authorization_code: T.nilable(::String)).void }
50
+ def initialize(status: nil, failure_code: nil, dynamic_descriptor: nil, scheduled_delivery_on: nil, transaction_source: nil, initiated_on: nil, confirmed_on: nil, settled_on: nil, failed_on: nil, canceled_on: nil, completed_on: nil, interchange_qualification: nil, fee_program: nil, authorization_code: nil)
49
51
  @status = status
50
52
  @failure_code = failure_code
51
53
  @dynamic_descriptor = dynamic_descriptor
54
+ @scheduled_delivery_on = scheduled_delivery_on
52
55
  @transaction_source = transaction_source
53
56
  @initiated_on = initiated_on
54
57
  @confirmed_on = confirmed_on
@@ -67,6 +70,7 @@ module Moov
67
70
  return false unless @status == other.status
68
71
  return false unless @failure_code == other.failure_code
69
72
  return false unless @dynamic_descriptor == other.dynamic_descriptor
73
+ return false unless @scheduled_delivery_on == other.scheduled_delivery_on
70
74
  return false unless @transaction_source == other.transaction_source
71
75
  return false unless @initiated_on == other.initiated_on
72
76
  return false unless @confirmed_on == other.confirmed_on
@@ -14,6 +14,8 @@ class Moov::Models::Components::CardTransactionDetails
14
14
  def failure_code=(str_); end
15
15
  def dynamic_descriptor(); end
16
16
  def dynamic_descriptor=(str_); end
17
+ def scheduled_delivery_on(); end
18
+ def scheduled_delivery_on=(str_); end
17
19
  def transaction_source(); end
18
20
  def transaction_source=(str_); end
19
21
  def initiated_on(); end
@@ -16,6 +16,7 @@ module Moov
16
16
  SETTLED = new('settled')
17
17
  FAILED = new('failed')
18
18
  COMPLETED = new('completed')
19
+ DEFERRED = new('deferred')
19
20
  end
20
21
  end
21
22
  end
@@ -27,7 +27,11 @@ module Moov
27
27
  field :customer_support, Crystalline::Nilable.new(Models::Components::CustomerSupport), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerSupport') } }
28
28
  # User provided settings to manage an account.
29
29
  field :settings, Crystalline::Nilable.new(Models::Components::Settings), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('settings') } }
30
-
30
+ # Capabilities to request when the account is created. Request granular capability IDs that match your use case.
31
+ #
32
+ # Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
33
+ #
34
+ # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
31
35
  field :capabilities, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CapabilityID)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities') } }
32
36
  # The operating mode for an account.
33
37
  field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
@@ -23,16 +23,16 @@ module Moov
23
23
 
24
24
  field :due_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dueDate'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
25
25
 
26
- field :tax_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('taxAmount') } }
26
+ field :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
27
27
 
28
- sig { params(customer_account_id: ::String, line_items: Models::Components::CreateInvoiceLineItems, description: T.nilable(::String), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), tax_amount: T.nilable(Models::Components::AmountDecimal)).void }
29
- def initialize(customer_account_id:, line_items:, description: nil, invoice_date: nil, due_date: nil, tax_amount: nil)
28
+ sig { params(customer_account_id: ::String, line_items: Models::Components::CreateInvoiceLineItems, description: T.nilable(::String), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), amount_details: T.nilable(Models::Components::AmountDetails)).void }
29
+ def initialize(customer_account_id:, line_items:, description: nil, invoice_date: nil, due_date: nil, amount_details: nil)
30
30
  @customer_account_id = customer_account_id
31
31
  @line_items = line_items
32
32
  @description = description
33
33
  @invoice_date = invoice_date
34
34
  @due_date = due_date
35
- @tax_amount = tax_amount
35
+ @amount_details = amount_details
36
36
  end
37
37
 
38
38
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -43,7 +43,7 @@ module Moov
43
43
  return false unless @description == other.description
44
44
  return false unless @invoice_date == other.invoice_date
45
45
  return false unless @due_date == other.due_date
46
- return false unless @tax_amount == other.tax_amount
46
+ return false unless @amount_details == other.amount_details
47
47
  true
48
48
  end
49
49
  end
@@ -18,6 +18,6 @@ class Moov::Models::Components::CreateInvoice
18
18
  def invoice_date=(str_); end
19
19
  def due_date(); end
20
20
  def due_date=(str_); end
21
- def tax_amount(); end
22
- def tax_amount=(str_); end
21
+ def amount_details(); end
22
+ def amount_details=(str_); end
23
23
  end
@@ -9,7 +9,7 @@ module Moov
9
9
  module Components
10
10
  # Request to create a new payment link.
11
11
  #
12
- # A payment link must include either `payment` or `payout` details, but not both. For payout payment links,
12
+ # A payment link must include exactly one of `payment`, `payout`, or `customAmountPayment` details. For payout payment links,
13
13
  # `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement
14
14
  # to a specific recipient.
15
15
  #
@@ -23,12 +23,12 @@ module Moov
23
23
  field :merchant_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantPaymentMethodID'), required: true } }
24
24
  # Customizable display options for a payment link.
25
25
  field :display, Models::Components::PaymentLinkDisplayOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('display'), required: true } }
26
- # The fixed amount of the payment link.
26
+ # The fixed amount of the payment link.
27
27
  #
28
28
  # In API versions before `2026.07.00`, this was a required field.
29
29
  #
30
- # In API version `2026.07.00` and beyond, this field is required for `fixed` payment amount types and omitted
31
- # for `open` payment amount types.
30
+ # In API version `2026.07.00` and beyond, this field is required for `payment` and `payout` links and must be
31
+ # omitted for `customAmountPayment` links, where the payor chooses the amount.
32
32
  field :amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
33
33
  # An optional limit on the number of times this payment link can be used.
34
34
  #
@@ -42,14 +42,16 @@ module Moov
42
42
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
43
43
 
44
44
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
45
+ # Options for a custom amount payment link. Mutually exclusive with `payment` and `payout`.
46
+ field :custom_amount_payment, Crystalline::Nilable.new(Models::Components::PaymentLinkCustomAmountPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customAmountPayment') } }
45
47
  # An optional collection of line items for a payment link.
46
48
  # When line items are provided, their total plus tax must equal the payment link amount.
47
49
  field :line_items, Crystalline::Nilable.new(Models::Components::CreatePaymentLinkLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
48
50
 
49
51
  field :amount_details, Crystalline::Nilable.new(Models::Components::CreatePaymentLinkAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
50
52
 
51
- sig { params(partner_account_id: ::String, merchant_payment_method_id: ::String, display: Models::Components::PaymentLinkDisplayOptions, amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), expires_on: T.nilable(::DateTime), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), line_items: T.nilable(Models::Components::CreatePaymentLinkLineItems), amount_details: T.nilable(Models::Components::CreatePaymentLinkAmountDetails)).void }
52
- def initialize(partner_account_id:, merchant_payment_method_id:, display:, amount: nil, max_uses: nil, expires_on: nil, customer: nil, payment: nil, payout: nil, line_items: nil, amount_details: nil)
53
+ sig { params(partner_account_id: ::String, merchant_payment_method_id: ::String, display: Models::Components::PaymentLinkDisplayOptions, amount: T.nilable(Models::Components::Amount), max_uses: T.nilable(::Integer), expires_on: T.nilable(::DateTime), customer: T.nilable(Models::Components::PaymentLinkCustomerOptions), payment: T.nilable(Models::Components::PaymentLinkPaymentDetails), payout: T.nilable(Models::Components::PaymentLinkPayoutDetails), custom_amount_payment: T.nilable(Models::Components::PaymentLinkCustomAmountPaymentDetails), line_items: T.nilable(Models::Components::CreatePaymentLinkLineItems), amount_details: T.nilable(Models::Components::CreatePaymentLinkAmountDetails)).void }
54
+ def initialize(partner_account_id:, merchant_payment_method_id:, display:, amount: nil, max_uses: nil, expires_on: nil, customer: nil, payment: nil, payout: nil, custom_amount_payment: nil, line_items: nil, amount_details: nil)
53
55
  @partner_account_id = partner_account_id
54
56
  @merchant_payment_method_id = merchant_payment_method_id
55
57
  @display = display
@@ -59,6 +61,7 @@ module Moov
59
61
  @customer = customer
60
62
  @payment = payment
61
63
  @payout = payout
64
+ @custom_amount_payment = custom_amount_payment
62
65
  @line_items = line_items
63
66
  @amount_details = amount_details
64
67
  end
@@ -75,6 +78,7 @@ module Moov
75
78
  return false unless @customer == other.customer
76
79
  return false unless @payment == other.payment
77
80
  return false unless @payout == other.payout
81
+ return false unless @custom_amount_payment == other.custom_amount_payment
78
82
  return false unless @line_items == other.line_items
79
83
  return false unless @amount_details == other.amount_details
80
84
  true
@@ -26,6 +26,8 @@ class Moov::Models::Components::CreatePaymentLink
26
26
  def payment=(str_); end
27
27
  def payout(); end
28
28
  def payout=(str_); end
29
+ def custom_amount_payment(); end
30
+ def custom_amount_payment=(str_); end
29
31
  def line_items(); end
30
32
  def line_items=(str_); end
31
33
  def amount_details(); end
@@ -14,12 +14,15 @@ module Moov
14
14
 
15
15
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
16
16
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
17
+ # The scheduled date and time for the transfer to be delivered. This field is only valid for push-to-card transfers. Must be between 24 and 48 hours in the future.
18
+ field :scheduled_delivery_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('scheduledDeliveryOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
17
19
  # An optional field to specify the type of card payout, used to route the transfer with the appropriate business application identifier (BAI).
18
20
  field :payout_type, Crystalline::Nilable.new(Models::Components::CardPayoutType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payoutType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardPayoutType, true) } }
19
21
 
20
- sig { params(dynamic_descriptor: T.nilable(::String), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
21
- def initialize(dynamic_descriptor: nil, payout_type: nil)
22
+ sig { params(dynamic_descriptor: T.nilable(::String), scheduled_delivery_on: T.nilable(::DateTime), payout_type: T.nilable(Models::Components::CardPayoutType)).void }
23
+ def initialize(dynamic_descriptor: nil, scheduled_delivery_on: nil, payout_type: nil)
22
24
  @dynamic_descriptor = dynamic_descriptor
25
+ @scheduled_delivery_on = scheduled_delivery_on
23
26
  @payout_type = payout_type
24
27
  end
25
28
 
@@ -27,6 +30,7 @@ module Moov
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @dynamic_descriptor == other.dynamic_descriptor
33
+ return false unless @scheduled_delivery_on == other.scheduled_delivery_on
30
34
  return false unless @payout_type == other.payout_type
31
35
  true
32
36
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::CreateTransferDestinationCard
11
11
  def dynamic_descriptor(); end
12
12
  def dynamic_descriptor=(str_); end
13
+ def scheduled_delivery_on(); end
14
+ def scheduled_delivery_on=(str_); end
13
15
  def payout_type(); end
14
16
  def payout_type=(str_); end
15
17
  end
@@ -0,0 +1,52 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+
11
+ class CustomAmountPaymentDetailsError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :allowed_methods, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedMethods') } }
17
+
18
+ field :card_details, Crystalline::Nilable.new(Models::Components::CardPaymentDetailsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
+
20
+ field :ach_details, Crystalline::Nilable.new(Models::Components::ACHPaymentDetailsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
+
22
+ field :metadata, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
23
+
24
+ field :amount_range, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountRange') } }
25
+
26
+ field :suggested_amounts, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('suggestedAmounts') } }
27
+
28
+ sig { params(allowed_methods: T.nilable(::String), card_details: T.nilable(Models::Components::CardPaymentDetailsError), ach_details: T.nilable(Models::Components::ACHPaymentDetailsError), metadata: T.nilable(::String), amount_range: T.nilable(::String), suggested_amounts: T.nilable(::String)).void }
29
+ def initialize(allowed_methods: nil, card_details: nil, ach_details: nil, metadata: nil, amount_range: nil, suggested_amounts: nil)
30
+ @allowed_methods = allowed_methods
31
+ @card_details = card_details
32
+ @ach_details = ach_details
33
+ @metadata = metadata
34
+ @amount_range = amount_range
35
+ @suggested_amounts = suggested_amounts
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @allowed_methods == other.allowed_methods
42
+ return false unless @card_details == other.card_details
43
+ return false unless @ach_details == other.ach_details
44
+ return false unless @metadata == other.metadata
45
+ return false unless @amount_range == other.amount_range
46
+ return false unless @suggested_amounts == other.suggested_amounts
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CustomAmountPaymentDetailsError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CustomAmountPaymentDetailsError
11
+ def allowed_methods(); end
12
+ def allowed_methods=(str_); end
13
+ def card_details(); end
14
+ def card_details=(str_); end
15
+ def ach_details(); end
16
+ def ach_details=(str_); end
17
+ def metadata(); end
18
+ def metadata=(str_); end
19
+ def amount_range(); end
20
+ def amount_range=(str_); end
21
+ def suggested_amounts(); end
22
+ def suggested_amounts=(str_); end
23
+ end
@@ -20,8 +20,6 @@ module Moov
20
20
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
21
21
  # The expiration date of the card or token.
22
22
  field :expiration, Models::Components::CardExpiration, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration'), required: true } }
23
- # Fields for identifying an authorized individual.
24
- field :authorized_user, Models::Components::AuthorizedUser, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUser'), required: true } }
25
23
  # Unique identifier for the wallet funding the card.
26
24
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
27
25
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
@@ -35,29 +33,40 @@ module Moov
35
33
  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) } }
36
34
 
37
35
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
36
+
37
+ field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
38
38
  # The issued card's Primary Account Number (PAN)
39
39
  field :pan, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pan'), required: true } }
40
40
  # The issued card's 3- or 4-digit Card Verification Value (CVV).
41
41
  field :cvv, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true } }
42
- # Optional descriptor for the card.
43
- field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
42
+ # Identifier for the account of the card's authorized user.
43
+ field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
44
+ # An optional descriptive name for the card.
45
+ field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
46
+ # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
47
+ field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
48
+ # Billing address associated with the card.
49
+ field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
44
50
 
45
51
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
46
52
 
47
- sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, authorized_user: Models::Components::AuthorizedUser, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, pan: ::String, cvv: ::String, memo: T.nilable(::String), controls: T.nilable(Models::Components::IssuingControls)).void }
48
- def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, authorized_user:, funding_wallet_id:, state:, form_factor:, created_on:, pan:, cvv:, memo: nil, controls: nil)
53
+ sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, updated_on: ::DateTime, pan: ::String, cvv: ::String, 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), controls: T.nilable(Models::Components::IssuingControls)).void }
54
+ def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, funding_wallet_id:, state:, form_factor:, created_on:, updated_on:, pan:, cvv:, authorized_user_account_id: nil, nickname: nil, metadata: nil, billing_address: nil, controls: nil)
49
55
  @issued_card_id = issued_card_id
50
56
  @brand = brand
51
57
  @last_four_card_number = last_four_card_number
52
58
  @expiration = expiration
53
- @authorized_user = authorized_user
54
59
  @funding_wallet_id = funding_wallet_id
55
60
  @state = state
56
61
  @form_factor = form_factor
57
62
  @created_on = created_on
63
+ @updated_on = updated_on
58
64
  @pan = pan
59
65
  @cvv = cvv
60
- @memo = memo
66
+ @authorized_user_account_id = authorized_user_account_id
67
+ @nickname = nickname
68
+ @metadata = metadata
69
+ @billing_address = billing_address
61
70
  @controls = controls
62
71
  end
63
72
 
@@ -68,14 +77,17 @@ module Moov
68
77
  return false unless @brand == other.brand
69
78
  return false unless @last_four_card_number == other.last_four_card_number
70
79
  return false unless @expiration == other.expiration
71
- return false unless @authorized_user == other.authorized_user
72
80
  return false unless @funding_wallet_id == other.funding_wallet_id
73
81
  return false unless @state == other.state
74
82
  return false unless @form_factor == other.form_factor
75
83
  return false unless @created_on == other.created_on
84
+ return false unless @updated_on == other.updated_on
76
85
  return false unless @pan == other.pan
77
86
  return false unless @cvv == other.cvv
78
- return false unless @memo == other.memo
87
+ return false unless @authorized_user_account_id == other.authorized_user_account_id
88
+ return false unless @nickname == other.nickname
89
+ return false unless @metadata == other.metadata
90
+ return false unless @billing_address == other.billing_address
79
91
  return false unless @controls == other.controls
80
92
  true
81
93
  end
@@ -16,8 +16,6 @@ class Moov::Models::Components::FullIssuedCard
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
21
19
  def funding_wallet_id(); end
22
20
  def funding_wallet_id=(str_); end
23
21
  def state(); end
@@ -26,12 +24,20 @@ class Moov::Models::Components::FullIssuedCard
26
24
  def form_factor=(str_); end
27
25
  def created_on(); end
28
26
  def created_on=(str_); end
27
+ def updated_on(); end
28
+ def updated_on=(str_); end
29
29
  def pan(); end
30
30
  def pan=(str_); end
31
31
  def cvv(); end
32
32
  def cvv=(str_); end
33
- def memo(); end
34
- def memo=(str_); end
33
+ def authorized_user_account_id(); end
34
+ def authorized_user_account_id=(str_); end
35
+ def nickname(); end
36
+ def nickname=(str_); end
37
+ def metadata(); end
38
+ def metadata=(str_); end
39
+ def billing_address(); end
40
+ def billing_address=(str_); end
35
41
  def controls(); end
36
42
  def controls=(str_); end
37
43
  end