moov_ruby 26.2.12 → 26.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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +1 -1
  4. data/lib/moov/card_issuing.rb +1 -1
  5. data/lib/moov/enriched_address.rb +1 -1
  6. data/lib/moov/enriched_profile.rb +1 -1
  7. data/lib/moov/images.rb +1 -1
  8. data/lib/moov/institutions.rb +2 -2
  9. data/lib/moov/models/components/account.rb +2 -2
  10. data/lib/moov/models/components/accountnameverification.rb +4 -4
  11. data/lib/moov/models/components/accounttype.rb +3 -1
  12. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  13. data/lib/moov/models/components/achreturncode.rb +3 -1
  14. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  15. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  16. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  17. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  18. data/lib/moov/models/components/applepayresponse.rb +2 -2
  19. data/lib/moov/models/components/applicationscope.rb +4 -2
  20. data/lib/moov/models/components/bankaccount.rb +4 -4
  21. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  22. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  23. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  24. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  25. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  26. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  27. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  28. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  29. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  30. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  31. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  32. data/lib/moov/models/components/billablefee.rb +2 -2
  33. data/lib/moov/models/components/billingadjustment.rb +40 -0
  34. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  35. data/lib/moov/models/components/billingsummary.rb +8 -4
  36. data/lib/moov/models/components/billingsummary.rbi +2 -0
  37. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  38. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  39. data/lib/moov/models/components/businesspresence.rb +3 -1
  40. data/lib/moov/models/components/businessprofile.rb +2 -2
  41. data/lib/moov/models/components/businesstype.rb +3 -1
  42. data/lib/moov/models/components/calltoaction.rb +3 -1
  43. data/lib/moov/models/components/cancellation.rb +2 -2
  44. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  45. data/lib/moov/models/components/capability.rb +2 -2
  46. data/lib/moov/models/components/capabilityid.rb +3 -1
  47. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  48. data/lib/moov/models/components/card.rb +4 -4
  49. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  50. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  51. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  52. data/lib/moov/models/components/cardbrand.rb +3 -1
  53. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  54. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  55. data/lib/moov/models/components/cardtransactionfailurecode.rb +3 -1
  56. data/lib/moov/models/components/cardtransactionstatus.rb +3 -1
  57. data/lib/moov/models/components/cardtype.rb +3 -1
  58. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  59. data/lib/moov/models/components/cardverification.rb +3 -3
  60. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  61. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  62. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  63. data/lib/moov/models/components/createaccount.rb +2 -2
  64. data/lib/moov/models/components/createaccounttype.rb +3 -1
  65. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  66. data/lib/moov/models/components/createdtransfer.rb +12 -5
  67. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  68. data/lib/moov/models/components/createevidencetext.rb +1 -1
  69. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  70. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  71. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  72. data/lib/moov/models/components/createrefund.rb +2 -2
  73. data/lib/moov/models/components/createreversal.rb +4 -1
  74. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  75. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  76. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  77. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  78. data/lib/moov/models/components/createwebhook.rb +1 -1
  79. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  80. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  81. data/lib/moov/models/components/dispute.rb +2 -2
  82. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  83. data/lib/moov/models/components/disputephase.rb +3 -1
  84. data/lib/moov/models/components/disputestatus.rb +3 -1
  85. data/lib/moov/models/components/document.rb +1 -1
  86. data/lib/moov/models/components/documenttype.rb +3 -1
  87. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  88. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  89. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  90. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  91. data/lib/moov/models/components/evidencetype.rb +3 -1
  92. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  93. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  94. data/lib/moov/models/components/feecategory.rb +3 -1
  95. data/lib/moov/models/components/feemodel.rb +3 -1
  96. data/lib/moov/models/components/feeplan.rb +1 -1
  97. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  98. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  99. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  100. data/lib/moov/models/components/filedetails.rb +2 -2
  101. data/lib/moov/models/components/filepurpose.rb +3 -1
  102. data/lib/moov/models/components/filestatus.rb +3 -1
  103. data/lib/moov/models/components/fulfillment.rb +2 -2
  104. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  105. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  106. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  107. data/lib/moov/models/components/fullissuedcard.rb +4 -3
  108. data/lib/moov/models/components/geographicreach.rb +3 -1
  109. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  110. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  111. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  112. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  113. data/lib/moov/models/components/issuedcard.rb +4 -3
  114. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  115. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  116. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  117. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  118. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  119. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  120. data/lib/moov/models/components/issuingcontrols.rb +1 -1
  121. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  122. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  123. data/lib/moov/models/components/mode.rb +3 -1
  124. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  125. data/lib/moov/models/components/moovfee.rb +1 -1
  126. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  127. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  128. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  129. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  130. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  131. data/lib/moov/models/components/patchbusiness.rb +2 -2
  132. data/lib/moov/models/components/patchwallet.rb +1 -1
  133. data/lib/moov/models/components/paymentlink.rb +4 -4
  134. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  135. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  136. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +1 -1
  137. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +1 -1
  138. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  139. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  140. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  141. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  142. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  143. data/lib/moov/models/components/paymentmethodtype.rb +3 -1
  144. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  145. data/lib/moov/models/components/primaryregulator.rb +3 -1
  146. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  147. data/lib/moov/models/components/refundcardstatus.rb +3 -1
  148. data/lib/moov/models/components/refundpolicy.rb +3 -1
  149. data/lib/moov/models/components/refundstatus.rb +3 -1
  150. data/lib/moov/models/components/requestcard.rb +1 -1
  151. data/lib/moov/models/components/requirementerror.rb +2 -2
  152. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  153. data/lib/moov/models/components/requirementid.rb +10 -1
  154. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  155. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  156. data/lib/moov/models/components/rtpfailurecode.rb +3 -1
  157. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  158. data/lib/moov/models/components/rtptransactiondetails.rb +2 -2
  159. data/lib/moov/models/components/rtptransactionstatus.rb +3 -1
  160. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  161. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  162. data/lib/moov/models/components/seccode.rb +3 -1
  163. data/lib/moov/models/components/statement.rb +6 -2
  164. data/lib/moov/models/components/statement.rbi +2 -0
  165. data/lib/moov/models/components/sweep.rb +1 -1
  166. data/lib/moov/models/components/sweepconfig.rb +3 -3
  167. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  168. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  169. data/lib/moov/models/components/sweepstatus.rb +3 -1
  170. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  171. data/lib/moov/models/components/terminalapplication.rb +2 -2
  172. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  173. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  174. data/lib/moov/models/components/terminalcard.rb +2 -2
  175. data/lib/moov/models/components/ticket.rb +1 -1
  176. data/lib/moov/models/components/ticketstatus.rb +3 -1
  177. data/lib/moov/models/components/transactionsource.rb +3 -1
  178. data/lib/moov/models/components/transfer.rb +12 -5
  179. data/lib/moov/models/components/transfer.rbi +2 -0
  180. data/lib/moov/models/components/transfercapture.rb +36 -0
  181. data/lib/moov/models/components/transfercapture.rbi +15 -0
  182. data/lib/moov/models/components/transferdestination.rb +1 -1
  183. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  184. data/lib/moov/models/components/transferparty.rb +3 -1
  185. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  186. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  187. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  188. data/lib/moov/models/components/transferpaymentmethodtype.rb +3 -1
  189. data/lib/moov/models/components/transfersource.rb +1 -1
  190. data/lib/moov/models/components/transferstatus.rb +3 -1
  191. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  192. data/lib/moov/models/components/underwriting.rb +4 -4
  193. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  194. data/lib/moov/models/components/updateevidence.rb +1 -1
  195. data/lib/moov/models/components/updateissuedcard.rb +2 -0
  196. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  197. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  198. data/lib/moov/models/components/updatewebhook.rb +1 -1
  199. data/lib/moov/models/components/upsertunderwriting.rb +3 -3
  200. data/lib/moov/models/components/use.rb +3 -1
  201. data/lib/moov/models/components/verification.rb +3 -3
  202. data/lib/moov/models/components/verificationstatus.rb +3 -1
  203. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  204. data/lib/moov/models/components/wallet.rb +3 -2
  205. data/lib/moov/models/components/walletstatus.rb +3 -1
  206. data/lib/moov/models/components/wallettransaction.rb +3 -3
  207. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  208. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  209. data/lib/moov/models/components/wallettransactiontype.rb +3 -1
  210. data/lib/moov/models/components/wallettype.rb +5 -1
  211. data/lib/moov/models/components/webhook.rb +1 -1
  212. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  213. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  214. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  215. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  216. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  217. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  218. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  219. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  220. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  221. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  222. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  223. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  224. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  225. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  226. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  227. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  228. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  229. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  230. data/lib/moov/models/components/webhookevent.rb +1 -1
  231. data/lib/moov/models/components/webhookeventtype.rb +3 -1
  232. data/lib/moov/models/components/webhookstatus.rb +3 -1
  233. data/lib/moov/models/components.rb +4 -1
  234. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  235. data/lib/moov/models/errors/transfer_error.rb +12 -5
  236. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  237. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  238. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  239. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  240. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  241. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  242. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  243. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  244. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  245. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  246. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  247. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  248. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  249. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  250. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  251. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  252. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  253. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  254. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  255. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  256. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  257. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  258. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  259. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  260. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  261. data/lib/moov/sdkconfiguration.rb +3 -3
  262. data/lib/moov/transfers.rb +11 -5
  263. data/lib/moov/utils/retries.rb +41 -2
  264. data/lib/moov/utils/utils.rb +6 -2
  265. metadata +8 -2
@@ -15,11 +15,11 @@ module Moov
15
15
  # How the card information was entered into the point of sale terminal.
16
16
  field :entry_mode, Crystalline::Nilable.new(Models::Components::EntryMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('entryMode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::EntryMode, true) } }
17
17
  # The card brand.
18
- field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, true) } }
18
+ field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, true) } }
19
19
 
20
20
  field :bin, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin') } }
21
21
  # The type of the card.
22
- field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, true) } }
22
+ field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardType, true) } }
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
  # Uniquely identifies a linked payment card or token.
@@ -21,7 +21,7 @@ module Moov
21
21
 
22
22
  field :contact, Models::Components::TicketContact, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('contact'), required: true } }
23
23
 
24
- field :status, Models::Components::TicketStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TicketStatus, false) } }
24
+ field :status, Models::Components::TicketStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TicketStatus, false) } }
25
25
 
26
26
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
27
27
 
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class TicketStatus < T::Enum
11
+ class TicketStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  NEW = new('new')
14
15
  IN_PROGRESS = new('in-progress')
15
16
  ON_HOLD = new('on-hold')
16
17
  CLOSED = new('closed')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -11,12 +11,14 @@ module Moov
11
11
  #
12
12
  # Crucial for recurring and merchant-initiated transactions as per card scheme rules.
13
13
  # Omit for customer-initiated e-commerce transactions.
14
- class TransactionSource < T::Enum
14
+ class TransactionSource
15
+ include ::Crystalline::Enum
15
16
  enums do
16
17
  FIRST_RECURRING = new('first-recurring')
17
18
  RECURRING = new('recurring')
18
19
  UNSCHEDULED = new('unscheduled')
19
20
  end
21
+ open!
20
22
  end
21
23
  end
22
24
  end
@@ -21,13 +21,16 @@ module Moov
21
21
 
22
22
  field :destination, Models::Components::TransferDestination, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
23
23
  # Status of a transfer.
24
- field :status, Models::Components::TransferStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferStatus, false) } }
25
-
24
+ field :status, Models::Components::TransferStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferStatus, false) } }
25
+ # Amount associated with this transfer.
26
+ # In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.
27
+ # For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
28
+ # For other transfer types, this is the transfer amount.
26
29
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
27
30
 
28
31
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
32
  # Reason for a transfer's failure.
30
- field :failure_reason, Crystalline::Nilable.new(Models::Components::TransferFailureReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureReason'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferFailureReason, true) } }
33
+ field :failure_reason, Crystalline::Nilable.new(Models::Components::TransferFailureReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureReason'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferFailureReason, true) } }
31
34
  # An optional description of the transfer that is used on receipts and for your own internal use.
32
35
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
33
36
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -69,9 +72,11 @@ module Moov
69
72
  # An optional collection of line items for a transfer.
70
73
  # When line items are provided, their total plus tax must equal the transfer amount.
71
74
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
75
+ # The card authorization and capture IDs associated with a transfer.
76
+ field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
72
77
 
73
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems)).void }
74
- def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil)
78
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), capture: T.nilable(Models::Components::TransferCapture)).void }
79
+ def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, capture: nil)
75
80
  @transfer_id = transfer_id
76
81
  @created_on = created_on
77
82
  @source = source
@@ -100,6 +105,7 @@ module Moov
100
105
  @sales_tax_amount = sales_tax_amount
101
106
  @foreign_id = foreign_id
102
107
  @line_items = line_items
108
+ @capture = capture
103
109
  end
104
110
 
105
111
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -133,6 +139,7 @@ module Moov
133
139
  return false unless @sales_tax_amount == other.sales_tax_amount
134
140
  return false unless @foreign_id == other.foreign_id
135
141
  return false unless @line_items == other.line_items
142
+ return false unless @capture == other.capture
136
143
  true
137
144
  end
138
145
  end
@@ -64,4 +64,6 @@ class Moov::Models::Components::Transfer
64
64
  def foreign_id=(str_); end
65
65
  def line_items(); end
66
66
  def line_items=(str_); end
67
+ def capture(); end
68
+ def capture=(str_); end
67
69
  end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # The card authorization and capture IDs associated with a transfer.
11
+ class TransferCapture
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the card authorization associated with this transfer.
16
+ field :authorization_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationID'), required: true } }
17
+ # ID of the card capture associated with this transfer.
18
+ field :capture_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('captureID'), required: true } }
19
+
20
+ sig { params(authorization_id: ::String, capture_id: ::String).void }
21
+ def initialize(authorization_id:, capture_id:)
22
+ @authorization_id = authorization_id
23
+ @capture_id = capture_id
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @authorization_id == other.authorization_id
30
+ return false unless @capture_id == other.capture_id
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferCapture
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferCapture
11
+ def authorization_id(); end
12
+ def authorization_id=(str_); end
13
+ def capture_id(); end
14
+ def capture_id=(str_); end
15
+ end
@@ -15,7 +15,7 @@ module Moov
15
15
 
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::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
18
+ field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
19
19
 
20
20
  field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
21
21
  # A bank account as contained within a payment method.
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TransferFailureReason - Reason for a transfer's failure.
11
- class TransferFailureReason < T::Enum
11
+ class TransferFailureReason
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  SOURCE_PAYMENT_ERROR = new('source-payment-error')
14
15
  DESTINATION_PAYMENT_ERROR = new('destination-payment-error')
@@ -16,6 +17,7 @@ module Moov
16
17
  REJECTED_HIGH_RISK = new('rejected-high-risk')
17
18
  PROCESSING_ERROR = new('processing-error')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class TransferParty < T::Enum
11
+ class TransferParty
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  SOURCE = new('source')
14
15
  DESTINATION = new('destination')
15
16
  PARTNER = new('partner')
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)
@@ -19,7 +19,8 @@ module Moov
19
19
  # Type of a wallet.
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
- 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) } }
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.open_enum_from_string(Models::Components::WalletType, false) } }
23
24
 
24
25
  sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
25
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
  # TransferPaymentMethodType - The payment method type that represents a payment rail and directionality
11
- class TransferPaymentMethodType < T::Enum
11
+ class TransferPaymentMethodType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  MOOV_WALLET = new('moov-wallet')
14
15
  ACH_DEBIT_FUND = new('ach-debit-fund')
@@ -23,6 +24,7 @@ module Moov
23
24
  CARD_PRESENT_PAYMENT = new('card-present-payment')
24
25
  INSTANT_BANK_CREDIT = new('instant-bank-credit')
25
26
  end
27
+ open!
26
28
  end
27
29
  end
28
30
  end
@@ -15,7 +15,7 @@ module Moov
15
15
 
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::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
18
+ field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
19
19
 
20
20
  field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
21
21
  # String present only if the transfer is part of a transfer group.
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TransferStatus - Status of a transfer.
11
- class TransferStatus < T::Enum
11
+ class TransferStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  CREATED = new('created')
14
15
  PENDING = new('pending')
@@ -18,6 +19,7 @@ module Moov
18
19
  QUEUED = new('queued')
19
20
  CANCELED = new('canceled')
20
21
  end
22
+ open!
21
23
  end
22
24
  end
23
25
  end
@@ -15,11 +15,11 @@ module Moov
15
15
  # How the card information was entered into the point of sale terminal.
16
16
  field :entry_mode, Crystalline::Nilable.new(Models::Components::TransferEntryMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('entryMode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferEntryMode, true) } }
17
17
  # The card brand.
18
- field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, true) } }
18
+ field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, true) } }
19
19
 
20
20
  field :bin, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin') } }
21
21
  # The type of the card.
22
- field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, true) } }
22
+ field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardType, true) } }
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
  # Uniquely identifies a linked payment card or token.
@@ -19,7 +19,7 @@ module Moov
19
19
 
20
20
  field :average_monthly_transaction_volume, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('averageMonthlyTransactionVolume') } }
21
21
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
22
- field :status, Crystalline::Nilable.new(Models::Components::UnderwritingStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::UnderwritingStatus, true) } }
22
+ field :status, Crystalline::Nilable.new(Models::Components::UnderwritingStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::UnderwritingStatus, true) } }
23
23
 
24
24
  field :volume_by_customer_type, Crystalline::Nilable.new(Models::Components::VolumeByCustomerType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeByCustomerType') } }
25
25
 
@@ -27,11 +27,11 @@ module Moov
27
27
 
28
28
  field :fulfillment, Crystalline::Nilable.new(Models::Components::FulfillmentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fulfillment') } }
29
29
 
30
- field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::GeographicReach, true) } }
30
+ field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::GeographicReach, true) } }
31
31
 
32
- field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BusinessPresence, true) } }
32
+ field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BusinessPresence, true) } }
33
33
 
34
- field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PendingLitigation, true) } }
34
+ field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PendingLitigation, true) } }
35
35
 
36
36
  field :volume_share_by_customer_type, Crystalline::Nilable.new(Models::Components::VolumeShareByCustomerType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeShareByCustomerType') } }
37
37
 
@@ -10,7 +10,8 @@ module Moov
10
10
  # UnderwritingStatus
11
11
  #
12
12
  # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
13
- class UnderwritingStatus < T::Enum
13
+ class UnderwritingStatus
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  APPROVED = new('approved')
16
17
  REJECTED = new('rejected')
@@ -18,6 +19,7 @@ module Moov
18
19
  PENDING = new('pending')
19
20
  NOT_REQUESTED = new('notRequested')
20
21
  end
22
+ open!
21
23
  end
22
24
  end
23
25
  end
@@ -13,7 +13,7 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :evidence_type, Crystalline::Nilable.new(Models::Components::EvidenceType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::EvidenceType, true) } }
16
+ field :evidence_type, Crystalline::Nilable.new(Models::Components::EvidenceType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::EvidenceType, true) } }
17
17
  # If updating text evidence, the new text to associate with the dispute.
18
18
  field :text, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('text') } }
19
19
 
@@ -13,6 +13,8 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Updates the state of a Moov issued card.
16
+ # - `active`: Reactivates a frozen card so it can approve authorizations again.
17
+ # - `frozen`: Temporarily suspends the card so it cannot approve authorizations. A card can be moved between `frozen` and `active` at will until it is `closed`, which is a terminal state.
16
18
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
17
19
  field :state, Crystalline::Nilable.new(Models::Components::UpdateIssuedCardState), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::UpdateIssuedCardState, true) } }
18
20
 
@@ -8,9 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # UpdateIssuedCardState - Updates the state of a Moov issued card.
11
+ # - `active`: Reactivates a frozen card so it can approve authorizations again.
12
+ # - `frozen`: Temporarily suspends the card so it cannot approve authorizations. A card can be moved between `frozen` and `active` at will until it is `closed`, which is a terminal state.
11
13
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
12
14
  class UpdateIssuedCardState < T::Enum
13
15
  enums do
16
+ ACTIVE = new('active')
17
+ FROZEN = new('frozen')
14
18
  CLOSED = new('closed')
15
19
  end
16
20
  end
@@ -22,7 +22,7 @@ module Moov
22
22
  field :customer, Crystalline::Nilable.new(Models::Components::PaymentLinkCustomerOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customer') } }
23
23
  # Options for payment links used to collect payment.
24
24
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetailsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
25
-
25
+ # Options for payout links used to send a payout.
26
26
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetailsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
27
27
  # An optional collection of line items for a payment link.
28
28
  # When line items are provided, their total plus tax must equal the payment link amount.
@@ -15,7 +15,7 @@ module Moov
15
15
  # The URL where webhook events will be sent.
16
16
  field :url, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('url'), required: true } }
17
17
  # The status of the webhook.
18
- field :status, Models::Components::WebhookStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WebhookStatus, false) } }
18
+ field :status, Models::Components::WebhookStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WebhookStatus, false) } }
19
19
  # The list of event types this webhook should subscribe to.
20
20
  field :event_types, Crystalline::Array.new(Models::Components::WebhookEventType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventTypes'), required: true } }
21
21
  # A description of the webhook for reference. Can be an empty string.
@@ -13,11 +13,11 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::GeographicReach, true) } }
16
+ field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::GeographicReach, true) } }
17
17
 
18
- field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BusinessPresence, true) } }
18
+ field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BusinessPresence, true) } }
19
19
 
20
- field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PendingLitigation, true) } }
20
+ field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PendingLitigation, true) } }
21
21
 
22
22
  field :volume_share_by_customer_type, Crystalline::Nilable.new(Models::Components::VolumeShareByCustomerType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeShareByCustomerType') } }
23
23
 
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # Use - The intended use of the key. 'sig' for signature, 'enc' for encryption.
11
- class Use < T::Enum
11
+ class Use
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  SIG = new('sig')
14
15
  ENC = new('enc')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -15,15 +15,15 @@ module Moov
15
15
  # Possible states an account verification can be in.
16
16
  #
17
17
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
18
- field :status, Models::Components::VerificationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::VerificationStatus, false) } }
18
+ field :status, Models::Components::VerificationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::VerificationStatus, false) } }
19
19
  # Possible states an account verification can be in.
20
20
  #
21
21
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
22
- field :verification_status, Crystalline::Nilable.new(Models::Components::AccountVerificationStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('verificationStatus'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::AccountVerificationStatus, true) } }
22
+ field :verification_status, Crystalline::Nilable.new(Models::Components::AccountVerificationStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('verificationStatus'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::AccountVerificationStatus, true) } }
23
23
  # Additional detail for a verification status.
24
24
  #
25
25
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
26
- field :details, Crystalline::Nilable.new(Models::Components::VerificationStatusDetail), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('details'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::VerificationStatusDetail, true) } }
26
+ field :details, Crystalline::Nilable.new(Models::Components::VerificationStatusDetail), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('details'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::VerificationStatusDetail, true) } }
27
27
 
28
28
  field :documents, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::Document)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('documents') } }
29
29
 
@@ -10,13 +10,15 @@ module Moov
10
10
  # VerificationStatus - Possible states an account verification can be in.
11
11
  #
12
12
  # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
13
- class VerificationStatus < T::Enum
13
+ class VerificationStatus
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  UNVERIFIED = new('unverified')
16
17
  PENDING = new('pending')
17
18
  VERIFIED = new('verified')
18
19
  ERRORED = new('errored')
19
20
  end
21
+ open!
20
22
  end
21
23
  end
22
24
  end
@@ -10,7 +10,8 @@ module Moov
10
10
  # VerificationStatusDetail - Additional detail for a verification status.
11
11
  #
12
12
  # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
13
- class VerificationStatusDetail < T::Enum
13
+ class VerificationStatusDetail
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  FAILED_AUTO_VERIFY = new('failedAutoVerify')
16
17
  DOC_DOB_MISMATCH = new('docDobMismatch')
@@ -23,6 +24,7 @@ module Moov
23
24
  POTENTIAL_REPRESENTATIVE_SANCTIONS_MATCH = new('potentialRepresentativeSanctionsMatch')
24
25
  FAILED_OTHER = new('failedOther')
25
26
  end
27
+ open!
26
28
  end
27
29
  end
28
30
  end
@@ -23,11 +23,12 @@ module Moov
23
23
  # Status of a wallet.
24
24
  # - `active`: The wallet is available for use and has an enabled payment method.
25
25
  # - `closed`: The wallet is no longer active and the corresponding payment method has been disabled.
26
- field :status, Models::Components::WalletStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletStatus, false) } }
26
+ field :status, Models::Components::WalletStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletStatus, false) } }
27
27
  # Type of a wallet.
28
28
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
29
29
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
30
- 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) } }
30
+ # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
31
+ 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) } }
31
32
  # Description of the wallet
32
33
  field :description, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description'), required: true } }
33
34
 
@@ -10,11 +10,13 @@ module Moov
10
10
  # WalletStatus - Status of a wallet.
11
11
  # - `active`: The wallet is available for use and has an enabled payment method.
12
12
  # - `closed`: The wallet is no longer active and the corresponding payment method has been disabled.
13
- class WalletStatus < T::Enum
13
+ class WalletStatus
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  ACTIVE = new('active')
16
17
  CLOSED = new('closed')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -17,13 +17,13 @@ module Moov
17
17
 
18
18
  field :transaction_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionID'), required: true } }
19
19
 
20
- field :transaction_type, Models::Components::WalletTransactionType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletTransactionType, false) } }
20
+ field :transaction_type, Models::Components::WalletTransactionType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletTransactionType, false) } }
21
21
 
22
- field :source_type, Models::Components::WalletTransactionSourceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletTransactionSourceType, false) } }
22
+ field :source_type, Models::Components::WalletTransactionSourceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletTransactionSourceType, false) } }
23
23
  # The ID of the Moov object to which this transaction is related.
24
24
  field :source_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceID'), required: true } }
25
25
 
26
- field :status, Models::Components::WalletTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletTransactionStatus, false) } }
26
+ field :status, Models::Components::WalletTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletTransactionStatus, false) } }
27
27
  # Detailed description of the transaction.
28
28
  field :memo, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('memo'), required: true } }
29
29