moov_ruby 26.4.13 → 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 (207) 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 +5 -5
  8. data/lib/moov/bank_accounts.rb +37 -37
  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 +5 -5
  16. data/lib/moov/enriched_profile.rb +5 -5
  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 +9 -9
  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 -8
  34. data/lib/moov/models/components/cardbrandfees.rb +2 -6
  35. data/lib/moov/models/components/cardbrandfees.rbi +0 -2
  36. data/lib/moov/models/components/cardmetadata.rb +79 -0
  37. data/lib/moov/models/components/cardmetadata.rbi +35 -0
  38. data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
  39. data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
  40. data/lib/moov/models/components/cardtransactiondetails.rb +2 -10
  41. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -4
  42. data/lib/moov/models/components/cardtransactionstatus.rb +0 -1
  43. data/lib/moov/models/components/createaccount.rb +1 -5
  44. data/lib/moov/models/components/createauthorizeduser.rb +40 -0
  45. data/lib/moov/models/components/createauthorizeduser.rbi +17 -0
  46. data/lib/moov/models/components/createauthorizedusererror.rb +40 -0
  47. data/lib/moov/models/components/createauthorizedusererror.rbi +17 -0
  48. data/lib/moov/models/components/createauthorizeduserupdate.rb +40 -0
  49. data/lib/moov/models/components/createauthorizeduserupdate.rbi +17 -0
  50. data/lib/moov/models/components/createdtransfer.rb +2 -10
  51. data/lib/moov/models/components/createdtransfer.rbi +0 -4
  52. data/lib/moov/models/components/createpaymentlink.rb +15 -15
  53. data/lib/moov/models/components/createpaymentlink.rbi +4 -4
  54. data/lib/moov/models/components/createpaymentlinkamountdetails.rb +32 -0
  55. data/lib/moov/models/components/createpaymentlinkamountdetails.rbi +13 -0
  56. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rb +32 -0
  57. data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rbi +13 -0
  58. data/lib/moov/models/components/createrefund.rb +2 -2
  59. data/lib/moov/models/components/createreversal.rb +1 -1
  60. data/lib/moov/models/components/createtransfer.rb +2 -6
  61. data/lib/moov/models/components/createtransfer.rbi +0 -2
  62. data/lib/moov/models/components/createtransferamountdetails.rb +6 -2
  63. data/lib/moov/models/components/createtransferamountdetails.rbi +2 -0
  64. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rb +6 -2
  65. data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rbi +2 -0
  66. data/lib/moov/models/components/createtransferdestinationcard.rb +2 -6
  67. data/lib/moov/models/components/createtransferdestinationcard.rbi +0 -2
  68. data/lib/moov/models/components/filedetails.rb +1 -1
  69. data/lib/moov/models/components/filepurpose.rb +1 -1
  70. data/lib/moov/models/components/fullissuedcard.rb +13 -23
  71. data/lib/moov/models/components/fullissuedcard.rbi +4 -10
  72. data/lib/moov/models/components/invoice.rb +3 -7
  73. data/lib/moov/models/components/invoice.rbi +0 -2
  74. data/lib/moov/models/components/issuedcard.rb +13 -23
  75. data/lib/moov/models/components/issuedcard.rbi +4 -10
  76. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  77. data/lib/moov/models/components/issuingintervallimit.rb +1 -1
  78. data/lib/moov/models/components/issuingvelocitylimit.rb +1 -1
  79. data/lib/moov/models/components/manualtermsofservice.rb +1 -1
  80. data/lib/moov/models/components/manualtermsofserviceupdate.rb +1 -1
  81. data/lib/moov/models/components/onboardinginvite.rb +2 -2
  82. data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
  83. data/lib/moov/models/components/patchtransfer.rb +1 -1
  84. data/lib/moov/models/components/paymentlink.rb +15 -15
  85. data/lib/moov/models/components/paymentlink.rbi +4 -4
  86. data/lib/moov/models/components/paymentlinkamountdetails.rb +32 -0
  87. data/lib/moov/models/components/paymentlinkamountdetails.rbi +13 -0
  88. data/lib/moov/models/components/paymentlinkpaymentdetails.rb +14 -2
  89. data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +6 -0
  90. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +19 -0
  91. data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +11 -0
  92. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +14 -2
  93. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +6 -0
  94. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +19 -0
  95. data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +11 -0
  96. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +2 -9
  97. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +0 -2
  98. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +2 -9
  99. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +0 -2
  100. data/lib/moov/models/components/paymentmethodswallet.rb +0 -1
  101. data/lib/moov/models/components/payoutdetailserror.rb +2 -6
  102. data/lib/moov/models/components/payoutdetailserror.rbi +0 -2
  103. data/lib/moov/models/components/requestcard.rb +17 -17
  104. data/lib/moov/models/components/requestcard.rbi +8 -8
  105. data/lib/moov/models/components/termsofservice.rb +1 -1
  106. data/lib/moov/models/components/transfer.rb +2 -10
  107. data/lib/moov/models/components/transfer.rbi +0 -4
  108. data/lib/moov/models/components/transferamountdetails.rb +6 -2
  109. data/lib/moov/models/components/transferamountdetails.rbi +2 -0
  110. data/lib/moov/models/components/transferconfig.rb +2 -6
  111. data/lib/moov/models/components/transferconfig.rbi +0 -2
  112. data/lib/moov/models/components/transferdestination.rb +2 -8
  113. data/lib/moov/models/components/transferdestination.rbi +0 -2
  114. data/lib/moov/models/components/transferpaymentmethodswallet.rb +0 -1
  115. data/lib/moov/models/components/updateinvoice.rb +6 -6
  116. data/lib/moov/models/components/updateissuedcard.rb +9 -13
  117. data/lib/moov/models/components/updateissuedcard.rbi +4 -6
  118. data/lib/moov/models/components/updatepaymentlink.rb +6 -6
  119. data/lib/moov/models/components/updatepaymentlink.rbi +2 -2
  120. data/lib/moov/models/components/updatepaymentlinkamountdetails.rb +32 -0
  121. data/lib/moov/models/components/updatepaymentlinkamountdetails.rbi +13 -0
  122. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rb +32 -0
  123. data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rbi +13 -0
  124. data/lib/moov/models/components/wallet.rb +0 -1
  125. data/lib/moov/models/components/wallettype.rb +0 -2
  126. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +2 -6
  127. data/lib/moov/models/components/webhookdatabankaccountdeleted.rbi +0 -2
  128. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -7
  129. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +1 -7
  130. data/lib/moov/models/components/webhookdatasweepcreated.rb +2 -6
  131. data/lib/moov/models/components/webhookdatasweepcreated.rbi +0 -2
  132. data/lib/moov/models/components/webhookdatasweepupdated.rb +2 -6
  133. data/lib/moov/models/components/webhookdatasweepupdated.rbi +0 -2
  134. data/lib/moov/models/components/webhookdatatransferstatus.rb +0 -3
  135. data/lib/moov/models/components/webhookevent.rb +2 -2
  136. data/lib/moov/models/components/webhookeventtype.rb +0 -1
  137. data/lib/moov/models/components.rb +15 -11
  138. data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
  139. data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
  140. data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -6
  141. data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -2
  142. data/lib/moov/models/errors/requestcarderror.rb +14 -14
  143. data/lib/moov/models/errors/requestcarderror.rbi +8 -8
  144. data/lib/moov/models/errors/transfer_error.rb +2 -10
  145. data/lib/moov/models/errors/transfer_error.rbi +0 -4
  146. data/lib/moov/models/errors/transfervalidationerror.rb +2 -6
  147. data/lib/moov/models/errors/transfervalidationerror.rbi +0 -2
  148. data/lib/moov/models/errors/updateissuedcarderror.rb +8 -12
  149. data/lib/moov/models/errors/updateissuedcarderror.rbi +4 -6
  150. data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -6
  151. data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -2
  152. data/lib/moov/models/errors.rb +1 -0
  153. data/lib/moov/models/operations/disablecapability_request.rb +1 -7
  154. data/lib/moov/models/operations/getcapability_request.rb +1 -7
  155. data/lib/moov/models/operations/{listcancellations_response.rb → getcardmetadata_response.rb} +6 -6
  156. data/lib/moov/models/operations/{listcancellations_response.rbi → getcardmetadata_response.rbi} +4 -4
  157. data/lib/moov/models/operations/linkbankaccount_request.rb +1 -1
  158. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  159. data/lib/moov/models/operations/listtransfers_request.rb +2 -10
  160. data/lib/moov/models/operations/listtransfers_request.rbi +0 -4
  161. data/lib/moov/models/operations.rb +1 -2
  162. data/lib/moov/onboarding.rb +16 -16
  163. data/lib/moov/payment_links.rb +24 -24
  164. data/lib/moov/payment_methods.rb +8 -8
  165. data/lib/moov/ping.rb +4 -4
  166. data/lib/moov/products.rb +20 -20
  167. data/lib/moov/receipts.rb +8 -8
  168. data/lib/moov/representatives.rb +20 -20
  169. data/lib/moov/resolution_links.rb +16 -16
  170. data/lib/moov/scheduling.rb +24 -24
  171. data/lib/moov/sdkconfiguration.rb +4 -4
  172. data/lib/moov/statements.rb +8 -8
  173. data/lib/moov/support.rb +20 -20
  174. data/lib/moov/sweeps.rb +24 -24
  175. data/lib/moov/terminal_applications.rb +20 -20
  176. data/lib/moov/transfer_config.rb +12 -12
  177. data/lib/moov/transfers.rb +48 -171
  178. data/lib/moov/underwriting.rb +12 -12
  179. data/lib/moov/utils/retries.rb +1 -4
  180. data/lib/moov/wallet_transactions.rb +8 -8
  181. data/lib/moov/wallets.rb +16 -16
  182. data/lib/moov/webhooks.rb +32 -32
  183. metadata +40 -32
  184. data/lib/moov/models/components/billingaddress.rb +0 -52
  185. data/lib/moov/models/components/billingaddress.rbi +0 -23
  186. data/lib/moov/models/components/pushdeliveryspeed.rb +0 -19
  187. data/lib/moov/models/components/pushdeliveryspeed.rbi +0 -11
  188. data/lib/moov/models/components/pushoptions.rb +0 -38
  189. data/lib/moov/models/components/pushoptions.rbi +0 -15
  190. data/lib/moov/models/components/pushoptionserror.rb +0 -36
  191. data/lib/moov/models/components/pushoptionserror.rbi +0 -15
  192. data/lib/moov/models/components/pushoptionsupdate.rb +0 -38
  193. data/lib/moov/models/components/pushoptionsupdate.rbi +0 -15
  194. data/lib/moov/models/components/rtpfailurecode.rb +0 -27
  195. data/lib/moov/models/components/rtpfailurecode.rbi +0 -11
  196. data/lib/moov/models/components/rtptransactiondetails.rb +0 -58
  197. data/lib/moov/models/components/rtptransactiondetails.rbi +0 -25
  198. data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
  199. data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
  200. data/lib/moov/models/components/transfercapture.rb +0 -36
  201. data/lib/moov/models/components/transfercapture.rbi +0 -15
  202. data/lib/moov/models/components/transfercontrols.rb +0 -48
  203. data/lib/moov/models/components/transfercontrols.rbi +0 -21
  204. data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +0 -44
  205. data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +0 -19
  206. data/lib/moov/models/operations/listcancellations_request.rb +0 -36
  207. data/lib/moov/models/operations/listcancellations_request.rbi +0 -15
@@ -14,15 +14,12 @@ 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 in production. In sandbox mode, any future time up to 48 hours is accepted so integrations can test deferred delivery using the sandbox test cards with relaxed wait times.
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) } }
19
17
  # An optional field to specify the type of card payout, used to route the transfer with the appropriate business application identifier (BAI).
20
18
  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) } }
21
19
 
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)
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)
24
22
  @dynamic_descriptor = dynamic_descriptor
25
- @scheduled_delivery_on = scheduled_delivery_on
26
23
  @payout_type = payout_type
27
24
  end
28
25
 
@@ -30,7 +27,6 @@ module Moov
30
27
  def ==(other)
31
28
  return false unless other.is_a? self.class
32
29
  return false unless @dynamic_descriptor == other.dynamic_descriptor
33
- return false unless @scheduled_delivery_on == other.scheduled_delivery_on
34
30
  return false unless @payout_type == other.payout_type
35
31
  true
36
32
  end
@@ -10,8 +10,6 @@ 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
15
13
  def payout_type(); end
16
14
  def payout_type=(str_); end
17
15
  end
@@ -18,7 +18,7 @@ module Moov
18
18
  field :file_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fileName'), required: true } }
19
19
 
20
20
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
21
- # The purpose of the file being uploaded.
21
+ # The file's purpose.
22
22
  field :file_purpose, Models::Components::FilePurpose, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('filePurpose'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FilePurpose, false) } }
23
23
  # The file's status.
24
24
  field :file_status, Models::Components::FileStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fileStatus'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FileStatus, false) } }
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # FilePurpose - The purpose of the file being uploaded.
10
+ # FilePurpose - The file's purpose.
11
11
  class FilePurpose < T::Enum
12
12
  enums do
13
13
  BUSINESS_VERIFICATION = new('business_verification')
@@ -20,51 +20,44 @@ 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 } }
23
25
  # Unique identifier for the wallet funding the card.
24
26
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
25
27
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
26
28
  #
27
- # - `active`: The card is operational and can approve authorizations.
29
+ # - `active`: The card is operational and approves authorizations. Generally becomes active shortly after card creation.
30
+ # - `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process.
28
31
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
32
+ # - `pending-verification`: Awaiting additional authorized user verification before the card can be activated.
29
33
  field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardState, false) } }
30
34
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
31
35
  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) } }
32
36
 
33
37
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
34
-
35
- field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
36
38
  # The issued card's Primary Account Number (PAN)
37
39
  field :pan, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pan'), required: true } }
38
40
  # The issued card's 3- or 4-digit Card Verification Value (CVV).
39
41
  field :cvv, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true } }
40
- # Identifier for the account of the card's authorized user.
41
- field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
42
- # An optional descriptive name for the card.
43
- field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
44
- # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
45
- field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
46
- # Billing address associated with the card.
47
- field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
42
+ # Optional descriptor for the card.
43
+ field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
48
44
 
49
45
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
50
46
 
51
- 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 }
52
- 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)
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
49
  @issued_card_id = issued_card_id
54
50
  @brand = brand
55
51
  @last_four_card_number = last_four_card_number
56
52
  @expiration = expiration
53
+ @authorized_user = authorized_user
57
54
  @funding_wallet_id = funding_wallet_id
58
55
  @state = state
59
56
  @form_factor = form_factor
60
57
  @created_on = created_on
61
- @updated_on = updated_on
62
58
  @pan = pan
63
59
  @cvv = cvv
64
- @authorized_user_account_id = authorized_user_account_id
65
- @nickname = nickname
66
- @metadata = metadata
67
- @billing_address = billing_address
60
+ @memo = memo
68
61
  @controls = controls
69
62
  end
70
63
 
@@ -75,17 +68,14 @@ module Moov
75
68
  return false unless @brand == other.brand
76
69
  return false unless @last_four_card_number == other.last_four_card_number
77
70
  return false unless @expiration == other.expiration
71
+ return false unless @authorized_user == other.authorized_user
78
72
  return false unless @funding_wallet_id == other.funding_wallet_id
79
73
  return false unless @state == other.state
80
74
  return false unless @form_factor == other.form_factor
81
75
  return false unless @created_on == other.created_on
82
- return false unless @updated_on == other.updated_on
83
76
  return false unless @pan == other.pan
84
77
  return false unless @cvv == other.cvv
85
- return false unless @authorized_user_account_id == other.authorized_user_account_id
86
- return false unless @nickname == other.nickname
87
- return false unless @metadata == other.metadata
88
- return false unless @billing_address == other.billing_address
78
+ return false unless @memo == other.memo
89
79
  return false unless @controls == other.controls
90
80
  true
91
81
  end
@@ -16,6 +16,8 @@ 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
19
21
  def funding_wallet_id(); end
20
22
  def funding_wallet_id=(str_); end
21
23
  def state(); end
@@ -24,20 +26,12 @@ class Moov::Models::Components::FullIssuedCard
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
29
  def pan(); end
30
30
  def pan=(str_); end
31
31
  def cvv(); end
32
32
  def cvv=(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
33
+ def memo(); end
34
+ def memo=(str_); end
41
35
  def controls(); end
42
36
  def controls=(str_); end
43
37
  end
@@ -32,7 +32,7 @@ module Moov
32
32
  field :subtotal_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('subtotalAmount'), required: true } }
33
33
 
34
34
  field :tax_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('taxAmount'), required: true } }
35
- # Total amount of the invoice, including subtotal, tax, and surcharge amounts.
35
+ # Total amount of the invoice, sum of subTotalAmount and taxAmount
36
36
  field :total_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('totalAmount'), required: true } }
37
37
  # Total amount of pending transfers paid towards the invoice
38
38
  field :pending_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingAmount'), required: true } }
@@ -48,8 +48,6 @@ module Moov
48
48
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
49
49
 
50
50
  field :payment_link_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkCode') } }
51
- # URL to the hosted payment link for the invoice.
52
- field :payment_link_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkURL') } }
53
51
  # Payment made towards an invoice, will be either a transfer or an external payment.
54
52
  field :invoice_payments, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::InvoicePayment)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoicePayments') } }
55
53
 
@@ -65,8 +63,8 @@ module Moov
65
63
 
66
64
  field :disabled_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disabledOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
67
65
 
68
- sig { params(invoice_id: ::String, invoice_number: ::String, customer_account_id: ::String, customer_display_name: ::String, customer_email: ::String, partner_account_id: ::String, status: Models::Components::InvoiceStatus, line_items: Models::Components::InvoiceLineItems, subtotal_amount: Models::Components::AmountDecimal, tax_amount: Models::Components::AmountDecimal, total_amount: Models::Components::AmountDecimal, pending_amount: Models::Components::AmountDecimal, paid_amount: Models::Components::AmountDecimal, refunded_amount: Models::Components::AmountDecimal, disputed_amount: Models::Components::AmountDecimal, created_on: ::DateTime, description: T.nilable(::String), payment_link_code: T.nilable(::String), payment_link_url: T.nilable(::String), invoice_payments: T.nilable(T::Array[Models::Components::InvoicePayment]), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), sent_on: T.nilable(::DateTime), paid_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), disabled_on: T.nilable(::DateTime)).void }
69
- def initialize(invoice_id:, invoice_number:, customer_account_id:, customer_display_name:, customer_email:, partner_account_id:, status:, line_items:, subtotal_amount:, tax_amount:, total_amount:, pending_amount:, paid_amount:, refunded_amount:, disputed_amount:, created_on:, description: nil, payment_link_code: nil, payment_link_url: nil, invoice_payments: nil, invoice_date: nil, due_date: nil, sent_on: nil, paid_on: nil, canceled_on: nil, disabled_on: nil)
66
+ sig { params(invoice_id: ::String, invoice_number: ::String, customer_account_id: ::String, customer_display_name: ::String, customer_email: ::String, partner_account_id: ::String, status: Models::Components::InvoiceStatus, line_items: Models::Components::InvoiceLineItems, subtotal_amount: Models::Components::AmountDecimal, tax_amount: Models::Components::AmountDecimal, total_amount: Models::Components::AmountDecimal, pending_amount: Models::Components::AmountDecimal, paid_amount: Models::Components::AmountDecimal, refunded_amount: Models::Components::AmountDecimal, disputed_amount: Models::Components::AmountDecimal, created_on: ::DateTime, description: T.nilable(::String), payment_link_code: T.nilable(::String), invoice_payments: T.nilable(T::Array[Models::Components::InvoicePayment]), invoice_date: T.nilable(::DateTime), due_date: T.nilable(::DateTime), sent_on: T.nilable(::DateTime), paid_on: T.nilable(::DateTime), canceled_on: T.nilable(::DateTime), disabled_on: T.nilable(::DateTime)).void }
67
+ def initialize(invoice_id:, invoice_number:, customer_account_id:, customer_display_name:, customer_email:, partner_account_id:, status:, line_items:, subtotal_amount:, tax_amount:, total_amount:, pending_amount:, paid_amount:, refunded_amount:, disputed_amount:, created_on:, description: nil, payment_link_code: nil, invoice_payments: nil, invoice_date: nil, due_date: nil, sent_on: nil, paid_on: nil, canceled_on: nil, disabled_on: nil)
70
68
  @invoice_id = invoice_id
71
69
  @invoice_number = invoice_number
72
70
  @customer_account_id = customer_account_id
@@ -85,7 +83,6 @@ module Moov
85
83
  @created_on = created_on
86
84
  @description = description
87
85
  @payment_link_code = payment_link_code
88
- @payment_link_url = payment_link_url
89
86
  @invoice_payments = invoice_payments
90
87
  @invoice_date = invoice_date
91
88
  @due_date = due_date
@@ -116,7 +113,6 @@ module Moov
116
113
  return false unless @created_on == other.created_on
117
114
  return false unless @description == other.description
118
115
  return false unless @payment_link_code == other.payment_link_code
119
- return false unless @payment_link_url == other.payment_link_url
120
116
  return false unless @invoice_payments == other.invoice_payments
121
117
  return false unless @invoice_date == other.invoice_date
122
118
  return false unless @due_date == other.due_date
@@ -44,8 +44,6 @@ class Moov::Models::Components::Invoice
44
44
  def description=(str_); end
45
45
  def payment_link_code(); end
46
46
  def payment_link_code=(str_); end
47
- def payment_link_url(); end
48
- def payment_link_url=(str_); end
49
47
  def invoice_payments(); end
50
48
  def invoice_payments=(str_); end
51
49
  def invoice_date(); end
@@ -20,45 +20,38 @@ 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 } }
23
25
  # Unique identifier for the wallet funding the card.
24
26
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
25
27
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
26
28
  #
27
- # - `active`: The card is operational and can approve authorizations.
29
+ # - `active`: The card is operational and approves authorizations. Generally becomes active shortly after card creation.
30
+ # - `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process.
28
31
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
32
+ # - `pending-verification`: Awaiting additional authorized user verification before the card can be activated.
29
33
  field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardState, false) } }
30
34
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
31
35
  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) } }
32
36
 
33
37
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
34
-
35
- field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
36
- # Identifier for the account of the card's authorized user.
37
- field :authorized_user_account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedUserAccountID') } }
38
- # An optional descriptive name for the card.
39
- field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
40
- # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
41
- field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
42
- # Billing address associated with the card.
43
- field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
38
+ # Optional descriptor for the card.
39
+ field :memo, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo') } }
44
40
 
45
41
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
46
42
 
47
- 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, 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 }
48
- def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, funding_wallet_id:, state:, form_factor:, created_on:, updated_on:, authorized_user_account_id: nil, nickname: nil, metadata: nil, billing_address: nil, controls: nil)
43
+ 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, memo: T.nilable(::String), controls: T.nilable(Models::Components::IssuingControls)).void }
44
+ def initialize(issued_card_id:, brand:, last_four_card_number:, expiration:, authorized_user:, funding_wallet_id:, state:, form_factor:, created_on:, memo: nil, controls: nil)
49
45
  @issued_card_id = issued_card_id
50
46
  @brand = brand
51
47
  @last_four_card_number = last_four_card_number
52
48
  @expiration = expiration
49
+ @authorized_user = authorized_user
53
50
  @funding_wallet_id = funding_wallet_id
54
51
  @state = state
55
52
  @form_factor = form_factor
56
53
  @created_on = created_on
57
- @updated_on = updated_on
58
- @authorized_user_account_id = authorized_user_account_id
59
- @nickname = nickname
60
- @metadata = metadata
61
- @billing_address = billing_address
54
+ @memo = memo
62
55
  @controls = controls
63
56
  end
64
57
 
@@ -69,15 +62,12 @@ module Moov
69
62
  return false unless @brand == other.brand
70
63
  return false unless @last_four_card_number == other.last_four_card_number
71
64
  return false unless @expiration == other.expiration
65
+ return false unless @authorized_user == other.authorized_user
72
66
  return false unless @funding_wallet_id == other.funding_wallet_id
73
67
  return false unless @state == other.state
74
68
  return false unless @form_factor == other.form_factor
75
69
  return false unless @created_on == other.created_on
76
- return false unless @updated_on == other.updated_on
77
- return false unless @authorized_user_account_id == other.authorized_user_account_id
78
- return false unless @nickname == other.nickname
79
- return false unless @metadata == other.metadata
80
- return false unless @billing_address == other.billing_address
70
+ return false unless @memo == other.memo
81
71
  return false unless @controls == other.controls
82
72
  true
83
73
  end
@@ -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
@@ -9,11 +9,15 @@ module Moov
9
9
  module Components
10
10
  # IssuedCardState - The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
11
11
  #
12
- # - `active`: The card is operational and can approve authorizations.
12
+ # - `active`: The card is operational and approves authorizations. Generally becomes active shortly after card creation.
13
+ # - `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process.
13
14
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
15
+ # - `pending-verification`: Awaiting additional authorized user verification before the card can be activated.
14
16
  class IssuedCardState < T::Enum
15
17
  enums do
16
18
  ACTIVE = new('active')
19
+ INACTIVE = new('inactive')
20
+ PENDING_VERIFICATION = new('pending-verification')
17
21
  CLOSED = new('closed')
18
22
  end
19
23
  end
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
- # IssuingIntervalLimit - Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
10
+ # IssuingIntervalLimit - Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
11
11
  class IssuingIntervalLimit < T::Enum
12
12
  enums do
13
13
  PER_TRANSACTION = new('per-transaction')
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # The maximum amount in cents that can be spent in a given interval.
16
16
  field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
17
- # Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
17
+ # Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
18
18
  field :interval, Models::Components::IssuingIntervalLimit, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('interval'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingIntervalLimit, false) } }
19
19
 
20
20
  sig { params(amount: ::Integer, interval: Models::Components::IssuingIntervalLimit).void }
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # The date and time the terms of service were accepted.
16
16
  field :accepted_date, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedDate'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
17
- # The IP address (IPv4 or IPv6) from which the terms of service were accepted.
17
+ # The IP address from which the terms of service were accepted.
18
18
  field :accepted_ip, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedIP'), required: true } }
19
19
  # The user-agent of the user making the request.
20
20
  field :accepted_user_agent, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedUserAgent'), required: true } }
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # The date and time the terms of service were accepted.
16
16
  field :accepted_date, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedDate'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
17
- # The IP address (IPv4 or IPv6) from which the terms of service were accepted.
17
+ # The IP address from which the terms of service were accepted.
18
18
  field :accepted_ip, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedIP') } }
19
19
  # The user-agent of the user making the request.
20
20
  field :accepted_user_agent, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedUserAgent') } }
@@ -19,14 +19,14 @@ 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.
26
26
  field :fee_plan_codes, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('feePlanCodes'), required: true } }
27
27
 
28
28
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
29
- # Optional URL to redirect the user to after they complete the onboarding process.
29
+ # The scopes requested by the inviter.
30
30
  field :return_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('returnURL') } }
31
31
  # The terms of service URL set by the inviter.
32
32
  field :terms_of_service_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('termsOfServiceURL') } }
@@ -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.
@@ -14,7 +14,7 @@ module Moov
14
14
 
15
15
  # Optional alias from a foreign/external system which can be used to reference this resource.
16
16
  field :foreign_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('foreignID') } }
17
- # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
17
+
18
18
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
19
19
 
20
20
  sig { params(foreign_id: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String])).void }
@@ -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