moov_ruby 25.2.13 → 25.2.14

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/card_issuing.rb +1 -1
  4. data/lib/moov/images.rb +1 -1
  5. data/lib/moov/institutions.rb +1 -1
  6. data/lib/moov/models/components/account.rb +2 -2
  7. data/lib/moov/models/components/accountnameverification.rb +4 -4
  8. data/lib/moov/models/components/accounttype.rb +3 -1
  9. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  10. data/lib/moov/models/components/achreturncode.rb +3 -1
  11. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  12. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  13. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  14. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  15. data/lib/moov/models/components/applepayresponse.rb +2 -2
  16. data/lib/moov/models/components/applicationscope.rb +4 -2
  17. data/lib/moov/models/components/bankaccount.rb +4 -4
  18. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  19. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  20. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  21. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  22. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  23. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  24. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  25. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  26. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  27. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  28. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  29. data/lib/moov/models/components/billablefee.rb +2 -2
  30. data/lib/moov/models/components/billingadjustment.rb +40 -0
  31. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  32. data/lib/moov/models/components/billingsummary.rb +8 -4
  33. data/lib/moov/models/components/billingsummary.rbi +2 -0
  34. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  35. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  36. data/lib/moov/models/components/businessprofile.rb +2 -2
  37. data/lib/moov/models/components/businesstype.rb +3 -1
  38. data/lib/moov/models/components/calltoaction.rb +3 -1
  39. data/lib/moov/models/components/cancellation.rb +2 -2
  40. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  41. data/lib/moov/models/components/capability.rb +2 -2
  42. data/lib/moov/models/components/capabilityid.rb +3 -1
  43. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  44. data/lib/moov/models/components/card.rb +4 -4
  45. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  46. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  47. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  48. data/lib/moov/models/components/cardbrand.rb +3 -1
  49. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  50. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  51. data/lib/moov/models/components/cardtransactionfailurecode.rb +3 -1
  52. data/lib/moov/models/components/cardtransactionstatus.rb +3 -1
  53. data/lib/moov/models/components/cardtype.rb +3 -1
  54. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  55. data/lib/moov/models/components/cardverification.rb +3 -3
  56. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  57. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  58. data/lib/moov/models/components/createaccount.rb +2 -2
  59. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  60. data/lib/moov/models/components/createdtransfer.rb +6 -3
  61. data/lib/moov/models/components/createevidencetext.rb +1 -1
  62. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  63. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  64. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  65. data/lib/moov/models/components/createrefund.rb +1 -1
  66. data/lib/moov/models/components/createreversal.rb +4 -1
  67. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  68. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  69. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  70. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  71. data/lib/moov/models/components/createwebhook.rb +1 -1
  72. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  73. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  74. data/lib/moov/models/components/dispute.rb +2 -2
  75. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  76. data/lib/moov/models/components/disputephase.rb +3 -1
  77. data/lib/moov/models/components/disputestatus.rb +3 -1
  78. data/lib/moov/models/components/document.rb +1 -1
  79. data/lib/moov/models/components/documenttype.rb +3 -1
  80. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  81. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  82. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  83. data/lib/moov/models/components/evidencetype.rb +3 -1
  84. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  85. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  86. data/lib/moov/models/components/feecategory.rb +3 -1
  87. data/lib/moov/models/components/feemodel.rb +3 -1
  88. data/lib/moov/models/components/feeplan.rb +1 -1
  89. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  90. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  91. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  92. data/lib/moov/models/components/filedetails.rb +2 -2
  93. data/lib/moov/models/components/filepurpose.rb +3 -1
  94. data/lib/moov/models/components/filestatus.rb +3 -1
  95. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  96. data/lib/moov/models/components/fullissuedcard.rb +4 -3
  97. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  98. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  99. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  100. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  101. data/lib/moov/models/components/issuedcard.rb +4 -3
  102. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  103. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  104. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  105. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  106. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  107. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  108. data/lib/moov/models/components/issuingcontrols.rb +1 -1
  109. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  110. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  111. data/lib/moov/models/components/mode.rb +3 -1
  112. data/lib/moov/models/components/moovfee.rb +1 -1
  113. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  114. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  115. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  116. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  117. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  118. data/lib/moov/models/components/patchbusiness.rb +2 -2
  119. data/lib/moov/models/components/patchwallet.rb +1 -1
  120. data/lib/moov/models/components/paymentlink.rb +4 -4
  121. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  122. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  123. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +1 -1
  124. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +1 -1
  125. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  126. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  127. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  128. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  129. data/lib/moov/models/components/paymentmethodswallet.rb +1 -1
  130. data/lib/moov/models/components/paymentmethodtype.rb +3 -1
  131. data/lib/moov/models/components/primaryregulator.rb +3 -1
  132. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  133. data/lib/moov/models/components/refundcardstatus.rb +3 -1
  134. data/lib/moov/models/components/refundstatus.rb +3 -1
  135. data/lib/moov/models/components/requestcard.rb +1 -1
  136. data/lib/moov/models/components/requirementerror.rb +2 -2
  137. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  138. data/lib/moov/models/components/requirementid.rb +3 -1
  139. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  140. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  141. data/lib/moov/models/components/rtpfailurecode.rb +3 -1
  142. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  143. data/lib/moov/models/components/rtptransactiondetails.rb +2 -2
  144. data/lib/moov/models/components/rtptransactionstatus.rb +3 -1
  145. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  146. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  147. data/lib/moov/models/components/seccode.rb +3 -1
  148. data/lib/moov/models/components/statement.rb +6 -2
  149. data/lib/moov/models/components/statement.rbi +2 -0
  150. data/lib/moov/models/components/sweep.rb +1 -1
  151. data/lib/moov/models/components/sweepconfig.rb +3 -3
  152. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  153. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  154. data/lib/moov/models/components/sweepstatus.rb +3 -1
  155. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  156. data/lib/moov/models/components/terminalapplication.rb +2 -2
  157. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  158. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  159. data/lib/moov/models/components/transactionsource.rb +3 -1
  160. data/lib/moov/models/components/transfer.rb +6 -3
  161. data/lib/moov/models/components/transferdestination.rb +1 -1
  162. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  163. data/lib/moov/models/components/transferparty.rb +3 -1
  164. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  165. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  166. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -1
  167. data/lib/moov/models/components/transferpaymentmethodtype.rb +3 -1
  168. data/lib/moov/models/components/transfersource.rb +1 -1
  169. data/lib/moov/models/components/transferstatus.rb +3 -1
  170. data/lib/moov/models/components/underwriting.rb +1 -1
  171. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  172. data/lib/moov/models/components/updateevidence.rb +1 -1
  173. data/lib/moov/models/components/updateissuedcard.rb +2 -0
  174. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  175. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  176. data/lib/moov/models/components/updatewebhook.rb +1 -1
  177. data/lib/moov/models/components/use.rb +3 -1
  178. data/lib/moov/models/components/verification.rb +3 -3
  179. data/lib/moov/models/components/verificationstatus.rb +3 -1
  180. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  181. data/lib/moov/models/components/wallet.rb +2 -2
  182. data/lib/moov/models/components/walletstatus.rb +3 -1
  183. data/lib/moov/models/components/wallettransaction.rb +3 -3
  184. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  185. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  186. data/lib/moov/models/components/wallettransactiontype.rb +3 -1
  187. data/lib/moov/models/components/wallettype.rb +3 -1
  188. data/lib/moov/models/components/webhook.rb +1 -1
  189. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  190. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  191. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  192. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  193. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  194. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  195. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  196. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  197. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  198. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  199. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  200. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  201. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  202. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  203. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  204. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  205. data/lib/moov/models/components/webhookevent.rb +1 -1
  206. data/lib/moov/models/components/webhookeventtype.rb +3 -1
  207. data/lib/moov/models/components/webhookstatus.rb +3 -1
  208. data/lib/moov/models/components.rb +3 -1
  209. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  210. data/lib/moov/models/errors/transfer_error.rb +6 -3
  211. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  212. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  213. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  214. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  215. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  216. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  217. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  218. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  219. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  220. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  221. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  222. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  223. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  224. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  225. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  226. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  227. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  228. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  229. data/lib/moov/models/operations/listtransfers_request.rb +2 -2
  230. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  231. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  232. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  233. data/lib/moov/sdkconfiguration.rb +3 -3
  234. data/lib/moov/transfers.rb +11 -5
  235. data/lib/moov/utils/retries.rb +41 -2
  236. data/lib/moov/utils/utils.rb +6 -2
  237. metadata +6 -2
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :issued_card_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuedCardID'), required: true } }
17
17
  # The card brand.
18
- field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
18
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, false) } }
19
19
 
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.
@@ -25,8 +25,9 @@ module Moov
25
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.
26
26
  #
27
27
  # - `active`: The card is operational and can approve authorizations.
28
+ # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
28
29
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
29
- 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
+ field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardState, false) } }
30
31
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
31
32
  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
33
 
@@ -41,7 +42,7 @@ module Moov
41
42
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
42
43
  # Billing address associated with the card.
43
44
  field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
44
-
45
+ # Mutable spend controls for the card.
45
46
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
46
47
 
47
48
  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 }
@@ -19,11 +19,11 @@ module Moov
19
19
 
20
20
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
21
21
  # The name of the network a card transaction is routed through.
22
- field :network, Models::Components::CardIssuingNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardIssuingNetwork, false) } }
22
+ field :network, Models::Components::CardIssuingNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardIssuingNetwork, false) } }
23
23
  # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
24
24
  field :authorized_amount, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedAmount'), required: true } }
25
25
  # Status of a card issuing authorization.
26
- field :status, Models::Components::IssuingAuthorizationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingAuthorizationStatus, false) } }
26
+ field :status, Models::Components::IssuingAuthorizationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuingAuthorizationStatus, false) } }
27
27
 
28
28
  field :merchant_data, Models::Components::IssuingMerchantData, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantData'), required: true } }
29
29
 
@@ -15,11 +15,11 @@ module Moov
15
15
  # The identifier for this event. Use the `eventType` field to determine what resource is identified by this ID (`authorization`, `reversal`, etc.).
16
16
  field :event_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventID'), required: true } }
17
17
  # The type of event that occurred on the card.
18
- field :event_type, Models::Components::IssuedCardEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardEventType, false) } }
18
+ field :event_type, Models::Components::IssuedCardEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardEventType, false) } }
19
19
  # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
20
20
  field :amount, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
21
  # The result of an event.
22
- field :result, Models::Components::IssuedCardAuthorizationEventResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('result'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardAuthorizationEventResult, false) } }
22
+ field :result, Models::Components::IssuedCardAuthorizationEventResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('result'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardAuthorizationEventResult, false) } }
23
23
 
24
24
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
25
25
 
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuedCardAuthorizationEventResult - The result of an event.
11
- class IssuedCardAuthorizationEventResult < T::Enum
11
+ class IssuedCardAuthorizationEventResult
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  APPROVED = new('approved')
14
15
  DECLINED = new('declined')
15
16
  PROCESSED = new('processed')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuedCardEventType - The type of event that occurred on the card.
11
- class IssuedCardEventType < T::Enum
11
+ class IssuedCardEventType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  AUTHORIZATION = new('authorization')
14
15
  REVERSAL = new('reversal')
@@ -17,6 +18,7 @@ module Moov
17
18
  AUTHORIZATION_INCREMENTAL = new('authorization-incremental')
18
19
  CLEARING = new('clearing')
19
20
  end
21
+ open!
20
22
  end
21
23
  end
22
24
  end
@@ -10,12 +10,16 @@ module Moov
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
12
  # - `active`: The card is operational and can approve authorizations.
13
+ # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
13
14
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
14
- class IssuedCardState < T::Enum
15
+ class IssuedCardState
16
+ include ::Crystalline::Enum
15
17
  enums do
16
18
  ACTIVE = new('active')
19
+ FROZEN = new('frozen')
17
20
  CLOSED = new('closed')
18
21
  end
22
+ open!
19
23
  end
20
24
  end
21
25
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuingAuthorizationStatus - Status of a card issuing authorization.
11
- class IssuingAuthorizationStatus < T::Enum
11
+ class IssuingAuthorizationStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PENDING = new('pending')
14
15
  DECLINED = new('declined')
@@ -16,6 +17,7 @@ module Moov
16
17
  CLEARED = new('cleared')
17
18
  EXPIRED = new('expired')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Mutable spend controls for the card.
11
11
  class IssuingControls
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
@@ -15,7 +15,7 @@ module Moov
15
15
  # The cryptographic algorithm family used with the key (e.g., 'RSA', 'EC', 'oct').
16
16
  field :kty, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('kty'), required: true } }
17
17
  # The intended use of the key. 'sig' for signature, 'enc' for encryption.
18
- field :use, Crystalline::Nilable.new(Models::Components::Use), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('use'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Use, true) } }
18
+ field :use, Crystalline::Nilable.new(Models::Components::Use), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('use'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Use, true) } }
19
19
  # The permitted operations for the key, e.g., 'sign', 'verify', 'encrypt', 'decrypt'.
20
20
  field :key_ops, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('key_ops') } }
21
21
  # The algorithm intended for use with the key, e.g., 'RS256' or 'ES256'.
@@ -15,7 +15,7 @@ module Moov
15
15
  # The new payment method's ID.
16
16
  field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
17
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::PaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentMethodType, false) } }
18
+ field :payment_method_type, Models::Components::PaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentMethodType, false) } }
19
19
  # Describes an Apple Pay token on a Moov account.
20
20
  field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
21
21
 
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # Mode - The operating mode for an account.
11
- class Mode < T::Enum
11
+ class Mode
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  SANDBOX = new('sandbox')
14
15
  PRODUCTION = new('production')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # ID of the account that fees were charged to.
16
16
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
17
17
  # Indicates whether the account charged was the partner, source, or destination of the transfer.
18
- field :transfer_party, Models::Components::TransferParty, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferParty'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferParty, false) } }
18
+ field :transfer_party, Models::Components::TransferParty, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferParty'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferParty, false) } }
19
19
  # The total amount of fees charged to the account.
20
20
  field :total_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('totalAmount'), required: true } }
21
21
  # List of fee IDs that sum to the totalAmount.
@@ -21,7 +21,7 @@ module Moov
21
21
 
22
22
  field :occurrence_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrenceID') } }
23
23
  # Sandbox or production account mode of this schedule.
24
- 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) } }
24
+ field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, true) } }
25
25
  # True if this was generated by a RRule.
26
26
  field :generated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('generated') } }
27
27
  # True if the RRule set runs indefinitely.
@@ -33,7 +33,7 @@ module Moov
33
33
 
34
34
  field :ran_transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('ranTransferID') } }
35
35
  # Status of the completed occurrence.
36
- field :status, Crystalline::Nilable.new(Models::Components::OccurrenceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::OccurrenceStatus, true) } }
36
+ field :status, Crystalline::Nilable.new(Models::Components::OccurrenceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::OccurrenceStatus, true) } }
37
37
  # Contains details on why the occurrence errored.
38
38
  field :error, Crystalline::Nilable.new(Models::Components::OccurrencesResponseError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('error') } }
39
39
 
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # OccurrenceStatus - Status of the completed occurrence.
11
- class OccurrenceStatus < T::Enum
11
+ class OccurrenceStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PENDING = new('pending')
14
15
  FAILED = new('failed')
15
16
  COMPLETED = new('completed')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # The account ID of the partner that created the invite.
16
16
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
17
17
  # The operating mode for an account.
18
- field :account_mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountMode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, false) } }
18
+ field :account_mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountMode'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, false) } }
19
19
  # The name of the Moov account used to create the onboarding invite.
20
20
  field :display_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('displayName'), required: true } }
21
21
 
@@ -21,26 +21,30 @@ module Moov
21
21
 
22
22
  field :accepted_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
23
23
 
24
- field :status, Models::Components::FeePlanAgreementStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FeePlanAgreementStatus, false) } }
24
+ field :status, Models::Components::FeePlanAgreementStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::FeePlanAgreementStatus, false) } }
25
25
  # Specifies the card processing pricing model
26
- field :card_acquiring_model, Models::Components::CardAcquiringModel, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAcquiringModel'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardAcquiringModel, false) } }
26
+ field :card_acquiring_model, Models::Components::CardAcquiringModel, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAcquiringModel'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardAcquiringModel, false) } }
27
27
 
28
28
  field :billable_fees, Crystalline::Array.new(Models::Components::BillableFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billableFees'), required: true } }
29
29
  # The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference.
30
30
  field :minimum_commitment, Models::Components::MinimumCommitment, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimumCommitment'), required: true } }
31
31
  # Fixed recurring amount paid in the billing period regardless of usage.
32
32
  field :monthly_platform_fee, Models::Components::MonthlyPlatformFee, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('monthlyPlatformFee'), required: true } }
33
- # The decimal-formatted numerical string of the revenue split for partner.
34
- #
35
- # For example, 2.25% is '2.25'.
33
+ # The decimal-formatted numerical string of the revenue split for partner.
34
+ #
35
+ # For example, 2.25% is '2.25'.
36
36
  field :revenue_share, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('revenueShare'), required: true } }
37
37
  # A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer).
38
38
  field :account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID') } }
39
39
  # The description of the agreement.
40
40
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
41
+ # The agreement this one replaced. Only set when the agreement was created by replacing another.
42
+ field :prior_agreement_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priorAgreementID') } }
43
+ # The date and time the prior agreement was terminated.
44
+ field :prior_agreement_terminated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priorAgreementTerminatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
41
45
 
42
- sig { params(agreement_id: ::String, plan_id: ::String, name: ::String, accepted_on: ::DateTime, status: Models::Components::FeePlanAgreementStatus, card_acquiring_model: Models::Components::CardAcquiringModel, billable_fees: T::Array[Models::Components::BillableFee], minimum_commitment: Models::Components::MinimumCommitment, monthly_platform_fee: Models::Components::MonthlyPlatformFee, revenue_share: ::String, account_id: T.nilable(::String), description: T.nilable(::String)).void }
43
- def initialize(agreement_id:, plan_id:, name:, accepted_on:, status:, card_acquiring_model:, billable_fees:, minimum_commitment:, monthly_platform_fee:, revenue_share:, account_id: nil, description: nil)
46
+ sig { params(agreement_id: ::String, plan_id: ::String, name: ::String, accepted_on: ::DateTime, status: Models::Components::FeePlanAgreementStatus, card_acquiring_model: Models::Components::CardAcquiringModel, billable_fees: T::Array[Models::Components::BillableFee], minimum_commitment: Models::Components::MinimumCommitment, monthly_platform_fee: Models::Components::MonthlyPlatformFee, revenue_share: ::String, account_id: T.nilable(::String), description: T.nilable(::String), prior_agreement_id: T.nilable(::String), prior_agreement_terminated_on: T.nilable(::DateTime)).void }
47
+ def initialize(agreement_id:, plan_id:, name:, accepted_on:, status:, card_acquiring_model:, billable_fees:, minimum_commitment:, monthly_platform_fee:, revenue_share:, account_id: nil, description: nil, prior_agreement_id: nil, prior_agreement_terminated_on: nil)
44
48
  @agreement_id = agreement_id
45
49
  @plan_id = plan_id
46
50
  @name = name
@@ -53,6 +57,8 @@ module Moov
53
57
  @revenue_share = revenue_share
54
58
  @account_id = account_id
55
59
  @description = description
60
+ @prior_agreement_id = prior_agreement_id
61
+ @prior_agreement_terminated_on = prior_agreement_terminated_on
56
62
  end
57
63
 
58
64
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -70,6 +76,8 @@ module Moov
70
76
  return false unless @revenue_share == other.revenue_share
71
77
  return false unless @account_id == other.account_id
72
78
  return false unless @description == other.description
79
+ return false unless @prior_agreement_id == other.prior_agreement_id
80
+ return false unless @prior_agreement_terminated_on == other.prior_agreement_terminated_on
73
81
  true
74
82
  end
75
83
  end
@@ -32,4 +32,8 @@ class Moov::Models::Components::PartnerPricingAgreement
32
32
  def account_id=(str_); end
33
33
  def description(); end
34
34
  def description=(str_); end
35
+ def prior_agreement_id(); end
36
+ def prior_agreement_id=(str_); end
37
+ def prior_agreement_terminated_on(); end
38
+ def prior_agreement_terminated_on=(str_); end
35
39
  end
@@ -17,7 +17,7 @@ module Moov
17
17
 
18
18
  field :doing_business_as, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('doingBusinessAs') } }
19
19
  # The type of entity represented by this business.
20
- field :business_type, Crystalline::Nilable.new(Models::Components::BusinessType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BusinessType, true) } }
20
+ field :business_type, Crystalline::Nilable.new(Models::Components::BusinessType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BusinessType, true) } }
21
21
 
22
22
  field :address, Crystalline::Nilable.new(Models::Components::AddressUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address') } }
23
23
 
@@ -37,7 +37,7 @@ module Moov
37
37
  # Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.
38
38
  field :industry, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('industry') } }
39
39
  # If the business is a financial institution, this field describes its primary regulator.
40
- field :primary_regulator, Crystalline::Nilable.new(Models::Components::PrimaryRegulator), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('primaryRegulator'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PrimaryRegulator, true) } }
40
+ field :primary_regulator, Crystalline::Nilable.new(Models::Components::PrimaryRegulator), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('primaryRegulator'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PrimaryRegulator, true) } }
41
41
 
42
42
  sig { params(legal_business_name: T.nilable(::String), doing_business_as: T.nilable(::String), business_type: T.nilable(Models::Components::BusinessType), address: T.nilable(Models::Components::AddressUpdate), phone: T.nilable(Models::Components::PhoneNumber), email: T.nilable(::String), website: T.nilable(::String), description: T.nilable(::String), tax_id: T.nilable(Models::Components::TaxIDUpdate), owners_provided: T.nilable(T::Boolean), industry_codes: T.nilable(Models::Components::IndustryCodes), industry: T.nilable(::String), primary_regulator: T.nilable(Models::Components::PrimaryRegulator)).void }
43
43
  def initialize(legal_business_name: nil, doing_business_as: nil, business_type: nil, address: nil, phone: nil, email: nil, website: nil, description: nil, tax_id: nil, owners_provided: nil, industry_codes: nil, industry: nil, primary_regulator: nil)
@@ -17,7 +17,7 @@ module Moov
17
17
  # Status of a wallet.
18
18
  # - `active`: The wallet is available for use and has an enabled payment method.
19
19
  # - `closed`: The wallet is no longer active and the corresponding payment method has been disabled.
20
- field :status, Crystalline::Nilable.new(Models::Components::WalletStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletStatus, true) } }
20
+ field :status, Crystalline::Nilable.new(Models::Components::WalletStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletStatus, true) } }
21
21
 
22
22
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
23
23
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -15,11 +15,11 @@ module Moov
15
15
  # Unique code identifying this payment link.
16
16
  field :code, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('code'), required: true } }
17
17
 
18
- field :payment_link_type, Models::Components::PaymentLinkType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkType, false) } }
18
+ field :payment_link_type, Models::Components::PaymentLinkType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentLinkType, false) } }
19
19
  # The operating mode for an account.
20
- field :mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, false) } }
20
+ field :mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, false) } }
21
21
 
22
- field :status, Models::Components::PaymentLinkStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkStatus, false) } }
22
+ field :status, Models::Components::PaymentLinkStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentLinkStatus, false) } }
23
23
  # The partner's Moov account ID.
24
24
  field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
25
25
  # The merchant's Moov account ID.
@@ -59,7 +59,7 @@ module Moov
59
59
  field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
60
60
  # Options for payment links used to collect payment.
61
61
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
62
-
62
+ # Options for payout links used to send a payout.
63
63
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
64
64
  # An optional collection of line items for a payment link.
65
65
  # When line items are provided, their total plus tax must equal the payment link amount.
@@ -20,7 +20,7 @@ module Moov
20
20
  #
21
21
  # If set to "auto" the UI will automatically select between
22
22
  # "pay" and "confirm" for payments and payouts respectively.
23
- field :call_to_action, Models::Components::CallToAction, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CallToAction, false) } }
23
+ field :call_to_action, Models::Components::CallToAction, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CallToAction, false) } }
24
24
 
25
25
  sig { params(title: ::String, description: ::String, call_to_action: Models::Components::CallToAction).void }
26
26
  def initialize(title:, description:, call_to_action:)
@@ -20,7 +20,7 @@ module Moov
20
20
  #
21
21
  # If set to "auto" the UI will automatically select between
22
22
  # "pay" and "confirm" for payments and payouts respectively.
23
- field :call_to_action, Crystalline::Nilable.new(Models::Components::CallToAction), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CallToAction, true) } }
23
+ field :call_to_action, Crystalline::Nilable.new(Models::Components::CallToAction), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CallToAction, true) } }
24
24
 
25
25
  sig { params(title: T.nilable(::String), description: T.nilable(::String), call_to_action: T.nilable(Models::Components::CallToAction)).void }
26
26
  def initialize(title: nil, description: nil, call_to_action: nil)
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Options for payout links used to send a payout.
11
11
  class PaymentLinkPayoutDetails
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Options for payout links used to send a payout.
11
11
  class PaymentLinkPayoutDetailsUpdate
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class PaymentLinkStatus < T::Enum
11
+ class PaymentLinkStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  ACTIVE = new('active')
14
15
  USED = new('used')
15
16
  DISABLED = new('disabled')
16
17
  EXPIRED = new('expired')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class PaymentLinkType < T::Enum
11
+ class PaymentLinkType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PAYMENT = new('payment')
14
15
  PAYOUT = new('payout')
15
16
  INVOICE_PAYMENT = new('invoice-payment')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -19,15 +19,15 @@ module Moov
19
19
  # The fingerprint acts as a way to identify whether two linked bank accounts are the same.
20
20
  field :fingerprint, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint'), required: true } }
21
21
 
22
- field :status, Models::Components::BankAccountStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BankAccountStatus, false) } }
22
+ field :status, Models::Components::BankAccountStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BankAccountStatus, false) } }
23
23
 
24
24
  field :holder_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderName'), required: true } }
25
25
  # The type of holder on a funding source.
26
- field :holder_type, Models::Components::BankAccountHolderType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BankAccountHolderType, false) } }
26
+ field :holder_type, Models::Components::BankAccountHolderType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('holderType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BankAccountHolderType, false) } }
27
27
 
28
28
  field :bank_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankName'), required: true } }
29
29
  # The bank account type.
30
- field :bank_account_type, Models::Components::BankAccountType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccountType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BankAccountType, false) } }
30
+ field :bank_account_type, Models::Components::BankAccountType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccountType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BankAccountType, false) } }
31
31
 
32
32
  field :routing_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('routingNumber'), required: true } }
33
33
 
@@ -19,9 +19,9 @@ module Moov
19
19
  # This field can be used to identify specific payment methods across multiple accounts on your platform.
20
20
  field :fingerprint, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fingerprint'), required: true } }
21
21
  # The card brand.
22
- field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
22
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, false) } }
23
23
  # The type of the card.
24
- field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, false) } }
24
+ field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardType, false) } }
25
25
  # Last four digits of the card number
26
26
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
27
27
  # The first six to eight digits of the card number, which identifies the financial institution that issued the card.
@@ -46,9 +46,9 @@ module Moov
46
46
  # The results of the most recent card update request.
47
47
  field :card_account_updater, Crystalline::Nilable.new(Models::Components::CardAccountUpdater), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAccountUpdater') } }
48
48
  # Indicates which level of domestic push-to-card transfer is supported by the card, if any.
49
- field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPushToCard, true) } }
49
+ field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DomesticPushToCard, true) } }
50
50
  # Indicates if the card supports domestic pull-from-card transfer.
51
- field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPullFromCard, true) } }
51
+ field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DomesticPullFromCard, true) } }
52
52
 
53
53
  sig { params(card_id: ::String, fingerprint: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, last_four_card_number: ::String, bin: ::String, expiration: Models::Components::CardExpiration, billing_address: Models::Components::CardAddress, card_verification: Models::Components::CardVerification, holder_name: T.nilable(::String), issuer: T.nilable(::String), issuer_country: T.nilable(::String), card_on_file: T.nilable(T::Boolean), merchant_account_id: T.nilable(::String), card_account_updater: T.nilable(Models::Components::CardAccountUpdater), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard)).void }
54
54
  def initialize(card_id:, fingerprint:, brand:, card_type:, last_four_card_number:, bin:, expiration:, billing_address:, card_verification:, holder_name: nil, issuer: nil, issuer_country: nil, card_on_file: nil, merchant_account_id: nil, card_account_updater: nil, domestic_push_to_card: nil, domestic_pull_from_card: nil)
@@ -20,7 +20,7 @@ module Moov
20
20
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
21
21
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
22
22
  # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
23
- field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletType, false) } }
23
+ field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletType, false) } }
24
24
 
25
25
  sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
26
26
  def initialize(wallet_id:, partner_account_id:, wallet_type:)
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # PaymentMethodType - The payment method type that represents a payment rail and directionality
11
- class PaymentMethodType < T::Enum
11
+ class PaymentMethodType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  MOOV_WALLET = new('moov-wallet')
14
15
  ACH_DEBIT_FUND = new('ach-debit-fund')
@@ -21,6 +22,7 @@ module Moov
21
22
  PULL_FROM_CARD = new('pull-from-card')
22
23
  APPLE_PAY = new('apple-pay')
23
24
  end
25
+ open!
24
26
  end
25
27
  end
26
28
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # PrimaryRegulator - If the business is a financial institution, this field describes its primary regulator.
11
- class PrimaryRegulator < T::Enum
11
+ class PrimaryRegulator
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  OCC = new('OCC')
14
15
  FDIC = new('FDIC')
@@ -16,6 +17,7 @@ module Moov
16
17
  FRB = new('FRB')
17
18
  STATE_CU_REGULATOR = new('state-cu-regulator')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -13,9 +13,9 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :status, Models::Components::RefundCardStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RefundCardStatus, false) } }
16
+ field :status, Models::Components::RefundCardStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::RefundCardStatus, false) } }
17
17
 
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) } }
18
+ field :failure_code, Crystalline::Nilable.new(Models::Components::CardTransactionFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardTransactionFailureCode, true) } }
19
19
 
20
20
  field :initiated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('initiatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
21
21
 
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class RefundCardStatus < T::Enum
11
+ class RefundCardStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  INITIATED = new('initiated')
14
15
  CONFIRMED = new('confirmed')
@@ -16,6 +17,7 @@ module Moov
16
17
  FAILED = new('failed')
17
18
  COMPLETED = new('completed')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class RefundStatus < T::Enum
11
+ class RefundStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  CREATED = new('created')
14
15
  PENDING = new('pending')
15
16
  COMPLETED = new('completed')
16
17
  FAILED = new('failed')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -22,7 +22,7 @@ module Moov
22
22
  field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
23
23
  # The expiration date of the card or token.
24
24
  field :expiration, Crystalline::Nilable.new(Models::Components::CardExpiration), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration') } }
25
-
25
+ # Mutable spend controls for the card.
26
26
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
27
27
 
28
28
  sig { params(authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), expiration: T.nilable(Models::Components::CardExpiration), controls: T.nilable(Models::Components::IssuingControls)).void }