moov_ruby 26.7.0 → 26.7.2

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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +4 -4
  4. data/lib/moov/card_issuing.rb +117 -1
  5. data/lib/moov/client.rb +2 -2
  6. data/lib/moov/enriched_address.rb +1 -1
  7. data/lib/moov/enriched_profile.rb +1 -1
  8. data/lib/moov/images.rb +1 -1
  9. data/lib/moov/institutions.rb +2 -2
  10. data/lib/moov/models/components/account.rb +2 -2
  11. data/lib/moov/models/components/accountnameverification.rb +4 -4
  12. data/lib/moov/models/components/accounttype.rb +3 -1
  13. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  14. data/lib/moov/models/components/achreturncode.rb +3 -1
  15. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  16. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  17. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  18. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  19. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  20. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  21. data/lib/moov/models/components/amountdecimalrange.rb +0 -2
  22. data/lib/moov/models/components/amountdecimalrangeupdate.rb +0 -2
  23. data/lib/moov/models/components/applepayresponse.rb +2 -2
  24. data/lib/moov/models/components/applicationscope.rb +4 -2
  25. data/lib/moov/models/components/authmethod.rb +3 -1
  26. data/lib/moov/models/components/bankaccount.rb +4 -4
  27. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  28. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  29. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  30. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  31. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  32. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  33. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  34. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  35. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  36. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  37. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  38. data/lib/moov/models/components/billablefee.rb +2 -2
  39. data/lib/moov/models/components/billingadjustment.rb +40 -0
  40. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  41. data/lib/moov/models/components/billingsummary.rb +8 -4
  42. data/lib/moov/models/components/billingsummary.rbi +2 -0
  43. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  44. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  45. data/lib/moov/models/components/businesspresence.rb +3 -1
  46. data/lib/moov/models/components/businessprofile.rb +2 -2
  47. data/lib/moov/models/components/businesstype.rb +3 -1
  48. data/lib/moov/models/components/calltoaction.rb +3 -1
  49. data/lib/moov/models/components/cancellation.rb +2 -2
  50. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  51. data/lib/moov/models/components/capability.rb +2 -2
  52. data/lib/moov/models/components/capabilityid.rb +3 -1
  53. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  54. data/lib/moov/models/components/card.rb +4 -4
  55. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  56. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  57. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  58. data/lib/moov/models/components/cardbrand.rb +3 -1
  59. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  60. data/lib/moov/models/components/cardmetadata.rb +4 -4
  61. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  62. data/lib/moov/models/components/cardtransactionfailurecode.rb +3 -1
  63. data/lib/moov/models/components/cardtransactionstatus.rb +3 -1
  64. data/lib/moov/models/components/cardtype.rb +3 -1
  65. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  66. data/lib/moov/models/components/cardverification.rb +3 -3
  67. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  68. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  69. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  70. data/lib/moov/models/components/createaccount.rb +2 -2
  71. data/lib/moov/models/components/createaccounttype.rb +3 -1
  72. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  73. data/lib/moov/models/components/createdtransfer.rb +12 -5
  74. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  75. data/lib/moov/models/components/createevidencetext.rb +1 -1
  76. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  77. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  78. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  79. data/lib/moov/models/components/createrefund.rb +2 -2
  80. data/lib/moov/models/components/createreversal.rb +4 -1
  81. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  82. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  83. data/lib/moov/models/components/createtippresets.rb +1 -1
  84. data/lib/moov/models/components/createtransfer.rb +1 -1
  85. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  86. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  87. data/lib/moov/models/components/createwebhook.rb +1 -1
  88. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  89. data/lib/moov/models/components/depositaccountingestedresponse.rb +1 -1
  90. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  91. data/lib/moov/models/components/dispute.rb +2 -2
  92. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  93. data/lib/moov/models/components/disputephase.rb +3 -1
  94. data/lib/moov/models/components/disputestatus.rb +3 -1
  95. data/lib/moov/models/components/document.rb +1 -1
  96. data/lib/moov/models/components/documenttype.rb +3 -1
  97. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  98. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  99. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  100. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  101. data/lib/moov/models/components/evidencetype.rb +3 -1
  102. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  103. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  104. data/lib/moov/models/components/feecategory.rb +3 -1
  105. data/lib/moov/models/components/feemodel.rb +3 -1
  106. data/lib/moov/models/components/feepaidby.rb +4 -2
  107. data/lib/moov/models/components/feeplan.rb +1 -1
  108. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  109. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  110. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  111. data/lib/moov/models/components/filedetails.rb +2 -2
  112. data/lib/moov/models/components/filepurpose.rb +3 -1
  113. data/lib/moov/models/components/filestatus.rb +3 -1
  114. data/lib/moov/models/components/fulfillment.rb +2 -2
  115. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  116. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  117. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  118. data/lib/moov/models/components/fullissuedcard.rb +6 -5
  119. data/lib/moov/models/components/geographicreach.rb +3 -1
  120. data/lib/moov/models/components/googlepayresponse.rb +3 -3
  121. data/lib/moov/models/components/incurredfee.rb +1 -1
  122. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  123. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  124. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  125. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  126. data/lib/moov/models/components/invoice.rb +1 -1
  127. data/lib/moov/models/components/invoicepayment.rb +1 -1
  128. data/lib/moov/models/components/invoicepaymenttype.rb +3 -1
  129. data/lib/moov/models/components/invoicestatus.rb +3 -1
  130. data/lib/moov/models/components/issuedcard.rb +6 -5
  131. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  132. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  133. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  134. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  135. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  136. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  137. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  138. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  139. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  140. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  141. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  142. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  143. data/lib/moov/models/components/issuingcontrols.rb +19 -3
  144. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  145. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  146. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  147. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  148. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  149. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +21 -0
  150. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  151. data/lib/moov/models/components/issuingintervallimit.rb +6 -1
  152. data/lib/moov/models/components/issuingmerchantcategory.rb +45 -0
  153. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  154. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  155. data/lib/moov/models/components/issuingscheduleday.rbi +11 -0
  156. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  157. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  158. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  159. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  160. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  161. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  162. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +1 -1
  163. data/lib/moov/models/components/merchantcategories.rb +32 -0
  164. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  165. data/lib/moov/models/components/merchantcategory.rb +37 -0
  166. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  167. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  168. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  169. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  170. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  171. data/lib/moov/models/components/merchantentry.rb +40 -0
  172. data/lib/moov/models/components/merchantentry.rbi +17 -0
  173. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  174. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  175. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  176. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  177. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  178. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  179. data/lib/moov/models/components/mode.rb +3 -1
  180. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  181. data/lib/moov/models/components/moovfee.rb +1 -1
  182. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  183. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  184. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  185. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  186. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  187. data/lib/moov/models/components/patchbusiness.rb +2 -2
  188. data/lib/moov/models/components/patchwallet.rb +1 -1
  189. data/lib/moov/models/components/paymentlink.rb +4 -6
  190. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +0 -2
  191. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +0 -2
  192. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  193. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  194. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +5 -7
  195. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +5 -7
  196. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  197. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  198. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  199. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  200. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  201. data/lib/moov/models/components/paymentmethodtype.rb +3 -1
  202. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  203. data/lib/moov/models/components/primaryregulator.rb +3 -1
  204. data/lib/moov/models/components/pushdeliveryspeed.rb +3 -1
  205. data/lib/moov/models/components/pushoptions.rb +5 -4
  206. data/lib/moov/models/components/pushoptionsupdate.rb +5 -4
  207. data/lib/moov/models/components/puttippresets.rb +1 -1
  208. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  209. data/lib/moov/models/components/refundcardstatus.rb +3 -1
  210. data/lib/moov/models/components/refundpolicy.rb +3 -1
  211. data/lib/moov/models/components/refundstatus.rb +3 -1
  212. data/lib/moov/models/components/requestcard.rb +1 -1
  213. data/lib/moov/models/components/requirementerror.rb +2 -2
  214. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  215. data/lib/moov/models/components/requirementid.rb +17 -1
  216. data/lib/moov/models/components/resolutionlink.rb +1 -1
  217. data/lib/moov/models/components/resolutionlinkstatus.rb +3 -1
  218. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  219. data/lib/moov/models/components/reversalamountdetails.rb +3 -1
  220. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  221. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  222. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  223. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  224. data/lib/moov/models/components/schedulewindow.rb +40 -0
  225. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  226. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  227. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  228. data/lib/moov/models/components/seccode.rb +3 -1
  229. data/lib/moov/models/components/sendfunds.rb +6 -2
  230. data/lib/moov/models/components/sendfunds.rbi +2 -0
  231. data/lib/moov/models/components/sendfundserror.rb +6 -2
  232. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  233. data/lib/moov/models/components/sendfundswire.rb +32 -0
  234. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  235. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  236. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  237. data/lib/moov/models/components/sourcesystem.rb +3 -1
  238. data/lib/moov/models/components/statement.rb +6 -2
  239. data/lib/moov/models/components/statement.rbi +2 -0
  240. data/lib/moov/models/components/sweep.rb +1 -1
  241. data/lib/moov/models/components/sweepconfig.rb +3 -3
  242. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  243. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  244. data/lib/moov/models/components/sweepstatus.rb +3 -1
  245. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  246. data/lib/moov/models/components/terminalapplication.rb +2 -2
  247. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  248. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  249. data/lib/moov/models/components/terminalcard.rb +2 -2
  250. data/lib/moov/models/components/ticket.rb +1 -1
  251. data/lib/moov/models/components/ticketstatus.rb +3 -1
  252. data/lib/moov/models/components/tipcalculationbasis.rb +3 -1
  253. data/lib/moov/models/components/tippresets.rb +1 -1
  254. data/lib/moov/models/components/transactionsource.rb +3 -1
  255. data/lib/moov/models/components/transfer.rb +12 -5
  256. data/lib/moov/models/components/transfer.rbi +2 -0
  257. data/lib/moov/models/components/transfercapture.rb +36 -0
  258. data/lib/moov/models/components/transfercapture.rbi +15 -0
  259. data/lib/moov/models/components/transferdestination.rb +1 -1
  260. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  261. data/lib/moov/models/components/transferfeepaidby.rb +2 -2
  262. data/lib/moov/models/components/transferparty.rb +3 -1
  263. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  264. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  265. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  266. data/lib/moov/models/components/transferpaymentmethodtype.rb +3 -1
  267. data/lib/moov/models/components/transfersource.rb +1 -1
  268. data/lib/moov/models/components/transferstatus.rb +3 -1
  269. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  270. data/lib/moov/models/components/underwriting.rb +4 -4
  271. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  272. data/lib/moov/models/components/updateevidence.rb +1 -1
  273. data/lib/moov/models/components/updateinvoice.rb +1 -1
  274. data/lib/moov/models/components/updateissuedcard.rb +8 -2
  275. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  276. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  277. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  278. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  279. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  280. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  281. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  282. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  283. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  284. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  285. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  286. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  287. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  288. data/lib/moov/models/components/updatewebhook.rb +1 -1
  289. data/lib/moov/models/components/upsertunderwriting.rb +3 -3
  290. data/lib/moov/models/components/use.rb +3 -1
  291. data/lib/moov/models/components/verification.rb +3 -3
  292. data/lib/moov/models/components/verificationstatus.rb +3 -1
  293. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  294. data/lib/moov/models/components/wallet.rb +3 -2
  295. data/lib/moov/models/components/walletstatus.rb +3 -1
  296. data/lib/moov/models/components/wallettransaction.rb +3 -3
  297. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  298. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  299. data/lib/moov/models/components/wallettransactiontype.rb +3 -1
  300. data/lib/moov/models/components/wallettype.rb +5 -1
  301. data/lib/moov/models/components/webhook.rb +1 -1
  302. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  303. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  304. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  305. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  306. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  307. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  308. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  309. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  310. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  311. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  312. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +1 -1
  313. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  314. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  315. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  316. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  317. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  318. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  319. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  320. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  321. data/lib/moov/models/components/webhookevent.rb +1 -1
  322. data/lib/moov/models/components/webhookeventtype.rb +3 -1
  323. data/lib/moov/models/components/webhookstatus.rb +3 -1
  324. data/lib/moov/models/components.rb +29 -1
  325. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  326. data/lib/moov/models/errors/transfer_error.rb +12 -5
  327. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  328. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  329. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  330. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  331. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  332. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  333. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  334. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  335. data/lib/moov/models/operations/listinvoices_request.rb +1 -1
  336. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  337. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  338. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  339. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  340. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  341. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  342. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  343. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  344. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  345. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  346. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  347. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  348. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  349. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  350. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  351. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  352. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  353. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  354. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  355. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  356. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  357. data/lib/moov/models/operations.rb +1 -0
  358. data/lib/moov/sdkconfiguration.rb +3 -3
  359. data/lib/moov/transfers.rb +11 -5
  360. data/lib/moov/utils/retries.rb +41 -2
  361. data/lib/moov/utils/utils.rb +6 -2
  362. data/lib/moov_ruby.rb +1 -1
  363. metadata +60 -2
@@ -15,9 +15,9 @@ module Moov
15
15
  # The first six to eight digits of the card number, which identifies the financial institution that issued the card.
16
16
  field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), 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
  # The type of the card.
20
- 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) } }
20
+ 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) } }
21
21
  # The category or level of the card defined by the issuer.
22
22
  # Examples include, but not limited to, "REWARDS", "TRADITIONAL REWARDS", "CLASSIC", and "CORPORATE PURCHASING".
23
23
  field :card_category, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardCategory') } }
@@ -36,9 +36,9 @@ module Moov
36
36
  # URL of the issuer.
37
37
  field :issuer_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerURL') } }
38
38
  # Indicates if the card supports domestic pull-from-card transfer.
39
- 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) } }
39
+ 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) } }
40
40
  # Indicates which level of domestic push-to-card transfer is supported by the card, if any.
41
- 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) } }
41
+ 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) } }
42
42
 
43
43
  sig { params(bin: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, card_category: T.nilable(::String), commercial: T.nilable(T::Boolean), regulated: T.nilable(T::Boolean), issuer: T.nilable(::String), issuer_country: T.nilable(::String), issuer_phone: T.nilable(::String), issuer_url: T.nilable(::String), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard)).void }
44
44
  def initialize(bin:, brand:, card_type:, card_category: nil, commercial: nil, regulated: nil, issuer: nil, issuer_country: nil, issuer_phone: nil, issuer_url: nil, domestic_pull_from_card: nil, domestic_push_to_card: nil)
@@ -13,9 +13,9 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Status of a transaction within the card payment lifecycle.
16
- field :status, Crystalline::Nilable.new(Models::Components::CardTransactionStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardTransactionStatus, true) } }
16
+ field :status, Crystalline::Nilable.new(Models::Components::CardTransactionStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardTransactionStatus, true) } }
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
  # An optional override of the default card statement descriptor for a transfer. Accounts must be enabled by Moov to set this field.
20
20
  field :dynamic_descriptor, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('dynamicDescriptor') } }
21
21
  # The scheduled date and time for the transfer to be delivered. This field is only valid for push-to-card transfers. Must be between 24 and 48 hours in the future in production. In sandbox mode, any future time up to 48 hours is accepted so integrations can test deferred delivery using the sandbox test cards with relaxed wait times.
@@ -24,7 +24,7 @@ module Moov
24
24
  #
25
25
  # Crucial for recurring and merchant-initiated transactions as per card scheme rules.
26
26
  # Omit for customer-initiated e-commerce transactions.
27
- field :transaction_source, Crystalline::Nilable.new(Models::Components::TransactionSource), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionSource'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransactionSource, true) } }
27
+ field :transaction_source, Crystalline::Nilable.new(Models::Components::TransactionSource), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionSource'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransactionSource, true) } }
28
28
 
29
29
  field :initiated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('initiatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
30
30
 
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class CardTransactionFailureCode < T::Enum
11
+ class CardTransactionFailureCode
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  CALL_ISSUER = new('call-issuer')
14
15
  DO_NOT_HONOR = new('do-not-honor')
@@ -36,6 +37,7 @@ module Moov
36
37
  UNKNOWN_ISSUE = new('unknown-issue')
37
38
  DUPLICATE_TRANSACTION = new('duplicate-transaction')
38
39
  end
40
+ open!
39
41
  end
40
42
  end
41
43
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # CardTransactionStatus - Status of a transaction within the card payment lifecycle.
11
- class CardTransactionStatus < T::Enum
11
+ class CardTransactionStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  INITIATED = new('initiated')
14
15
  CONFIRMED = new('confirmed')
@@ -18,6 +19,7 @@ module Moov
18
19
  COMPLETED = new('completed')
19
20
  DEFERRED = new('deferred')
20
21
  end
22
+ open!
21
23
  end
22
24
  end
23
25
  end
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # CardType - The type of the card.
11
- class CardType < T::Enum
11
+ class CardType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  DEBIT = new('debit')
14
15
  CREDIT = new('credit')
15
16
  PREPAID = new('prepaid')
16
17
  UNKNOWN = new('unknown')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # CardUpdateReason - The results of the card update request.
11
- class CardUpdateReason < T::Enum
11
+ class CardUpdateReason
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  UNSPECIFIED = new('unspecified')
14
15
  ACCOUNT_CLOSED = new('account-closed')
@@ -18,6 +19,7 @@ module Moov
18
19
  NO_MATCH = new('no-match')
19
20
  NUMBER_UPDATE = new('number-update')
20
21
  end
22
+ open!
21
23
  end
22
24
  end
23
25
  end
@@ -13,13 +13,13 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Verification result of the card's CVV.
16
- field :cvv, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
16
+ field :cvv, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cvv'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardVerificationResult, false) } }
17
17
  # Verification result of the billing address line 1.
18
18
  # Derived from the same AVS code as `postalCode`; the card network returns a single code covering both address fields.
19
- field :address_line1, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
19
+ field :address_line1, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addressLine1'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardVerificationResult, false) } }
20
20
  # Verification result of the billing address postal code.
21
21
  # Derived from the same AVS code as `addressLine1`; the card network returns a single code covering both address fields.
22
- field :postal_code, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardVerificationResult, false) } }
22
+ field :postal_code, Models::Components::CardVerificationResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('postalCode'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardVerificationResult, false) } }
23
23
  # Verification results of the cardholder's name, broken down by name component.
24
24
  field :account_name, Crystalline::Nilable.new(Models::Components::AccountNameVerification), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountName') } }
25
25
 
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # CardVerificationResult - The result of a card verification check.
11
- class CardVerificationResult < T::Enum
11
+ class CardVerificationResult
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  NO_MATCH = new('noMatch')
14
15
  MATCH = new('match')
@@ -16,6 +17,7 @@ module Moov
16
17
  UNAVAILABLE = new('unavailable')
17
18
  PARTIAL_MATCH = new('partialMatch')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -21,7 +21,7 @@ module Moov
21
21
 
22
22
  field :fulfillment, Crystalline::Nilable.new(Models::Components::Fulfillment), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fulfillment') } }
23
23
 
24
- field :refund_policy, Crystalline::Nilable.new(Models::Components::RefundPolicy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundPolicy'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RefundPolicy, true) } }
24
+ field :refund_policy, Crystalline::Nilable.new(Models::Components::RefundPolicy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundPolicy'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::RefundPolicy, true) } }
25
25
 
26
26
  sig { params(card_acceptance_methods: T.nilable(Models::Components::CardAcceptanceMethods), currently_accepts_cards: T.nilable(T::Boolean), estimated_activity: T.nilable(Models::Components::EstimatedActivity), fulfillment: T.nilable(Models::Components::Fulfillment), refund_policy: T.nilable(Models::Components::RefundPolicy)).void }
27
27
  def initialize(card_acceptance_methods: nil, currently_accepts_cards: nil, estimated_activity: nil, fulfillment: nil, refund_policy: nil)
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # CollectionPaymentMethodType - Payment methods allowed for collecting a payment.
11
- class CollectionPaymentMethodType < T::Enum
11
+ class CollectionPaymentMethodType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  APPLE_PAY = new('apple-pay')
14
15
  CARD_PAYMENT = new('card-payment')
15
16
  ACH_DEBIT_COLLECT = new('ach-debit-collect')
16
17
  GOOGLE_PAY = new('google-pay')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -13,7 +13,7 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :account_type, Models::Components::CreateAccountType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CreateAccountType, false) } }
16
+ field :account_type, Models::Components::CreateAccountType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CreateAccountType, false) } }
17
17
 
18
18
  field :profile, Models::Components::CreateProfile, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('profile'), required: true } }
19
19
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -34,7 +34,7 @@ module Moov
34
34
  # The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
35
35
  field :capabilities, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CapabilityID)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities') } }
36
36
  # The operating mode for an account.
37
- field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
37
+ 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) } }
38
38
 
39
39
  sig { params(account_type: Models::Components::CreateAccountType, profile: Models::Components::CreateProfile, metadata: T.nilable(T::Hash[Symbol, ::String]), terms_of_service: T.nilable(Models::Components::TermsOfServicePayload), foreign_id: T.nilable(::String), customer_support: T.nilable(Models::Components::CustomerSupport), settings: T.nilable(Models::Components::Settings), capabilities: T.nilable(T::Array[Models::Components::CapabilityID]), mode: T.nilable(Models::Components::Mode)).void }
40
40
  def initialize(account_type:, profile:, metadata: nil, terms_of_service: nil, foreign_id: nil, customer_support: nil, settings: nil, capabilities: nil, mode: nil)
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class CreateAccountType < T::Enum
11
+ class CreateAccountType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  INDIVIDUAL = new('individual')
14
15
  BUSINESS = new('business')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -17,7 +17,7 @@ module Moov
17
17
  # A registered trade name under which the business operates, if different from its legal name.
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::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address') } }
23
23
 
@@ -35,7 +35,7 @@ module Moov
35
35
  # 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.
36
36
  field :industry, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('industry') } }
37
37
  # If the business is a financial institution, this field describes its primary regulator.
38
- 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) } }
38
+ 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) } }
39
39
 
40
40
  sig { params(legal_business_name: ::String, doing_business_as: T.nilable(::String), business_type: T.nilable(Models::Components::BusinessType), address: T.nilable(Models::Components::Address), phone: T.nilable(Models::Components::PhoneNumber), email: T.nilable(::String), website: T.nilable(::String), description: T.nilable(::String), tax_id: T.nilable(Models::Components::TaxID), industry_codes: T.nilable(Models::Components::IndustryCodes), industry: T.nilable(::String), primary_regulator: T.nilable(Models::Components::PrimaryRegulator)).void }
41
41
  def initialize(legal_business_name:, doing_business_as: nil, business_type: nil, address: nil, phone: nil, email: nil, website: nil, description: nil, tax_id: nil, industry_codes: nil, industry: nil, primary_regulator: nil)
@@ -23,10 +23,13 @@ module Moov
23
23
 
24
24
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
25
25
  # Status of a transfer.
26
- field :status, Crystalline::Nilable.new(Models::Components::TransferStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferStatus, true) } }
26
+ field :status, Crystalline::Nilable.new(Models::Components::TransferStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferStatus, true) } }
27
27
  # Reason for a transfer's failure.
28
- 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) } }
29
-
28
+ 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) } }
29
+ # Amount associated with this transfer.
30
+ # In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.
31
+ # For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
32
+ # For other transfer types, this is the transfer amount.
30
33
  field :amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
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') } }
@@ -67,9 +70,11 @@ module Moov
67
70
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
68
71
 
69
72
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
73
+ # The card authorization and capture IDs associated with a transfer.
74
+ field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
70
75
 
71
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), 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), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), amount_details: T.nilable(Models::Components::TransferAmountDetails)).void }
72
- def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, amount_details: nil)
76
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: T.nilable(Models::Components::TransferSource), destination: T.nilable(Models::Components::TransferDestination), completed_on: T.nilable(::DateTime), status: T.nilable(Models::Components::TransferStatus), failure_reason: T.nilable(Models::Components::TransferFailureReason), amount: T.nilable(Models::Components::Amount), 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), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), amount_details: T.nilable(Models::Components::TransferAmountDetails), capture: T.nilable(Models::Components::TransferCapture)).void }
77
+ def initialize(transfer_id:, created_on:, source: nil, destination: nil, completed_on: nil, status: nil, failure_reason: nil, amount: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, amount_details: nil, capture: nil)
73
78
  @transfer_id = transfer_id
74
79
  @created_on = created_on
75
80
  @source = source
@@ -97,6 +102,7 @@ module Moov
97
102
  @foreign_id = foreign_id
98
103
  @line_items = line_items
99
104
  @amount_details = amount_details
105
+ @capture = capture
100
106
  end
101
107
 
102
108
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -129,6 +135,7 @@ module Moov
129
135
  return false unless @foreign_id == other.foreign_id
130
136
  return false unless @line_items == other.line_items
131
137
  return false unless @amount_details == other.amount_details
138
+ return false unless @capture == other.capture
132
139
  true
133
140
  end
134
141
  end
@@ -62,4 +62,6 @@ class Moov::Models::Components::CreatedTransfer
62
62
  def line_items=(str_); end
63
63
  def amount_details(); end
64
64
  def amount_details=(str_); end
65
+ def capture(); end
66
+ def capture=(str_); end
65
67
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # The text to associate with the dispute as evidence.
16
16
  field :text, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('text'), required: true } }
17
17
 
18
- field :evidence_type, Models::Components::EvidenceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::EvidenceType, false) } }
18
+ field :evidence_type, Models::Components::EvidenceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::EvidenceType, false) } }
19
19
 
20
20
  sig { params(text: ::String, evidence_type: Models::Components::EvidenceType).void }
21
21
  def initialize(text:, evidence_type:)
@@ -12,18 +12,28 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # 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).
15
+ # A unique identifier for a fee plan: the pricing terms, such as flat-rate or cost-plus, that an account
16
+ # is charged under its fee plan agreement. Use GET /accounts/{accountID}/fee-plans to list the fee plans
17
+ # available to assign to a given account.
16
18
  field :plan_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('planID'), required: true } }
19
+ # The account's active fee plan agreement to supersede. When set, that agreement is terminated and
20
+ # the new one takes its place in a single operation, so the account is never without an active fee
21
+ # plan agreement. This new agreement always receives a newly issued agreementID.
22
+ #
23
+ # Omit it if the account doesn't already have an active fee plan agreement.
24
+ field :prior_agreement_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priorAgreementID') } }
17
25
 
18
- sig { params(plan_id: ::String).void }
19
- def initialize(plan_id:)
26
+ sig { params(plan_id: ::String, prior_agreement_id: T.nilable(::String)).void }
27
+ def initialize(plan_id:, prior_agreement_id: nil)
20
28
  @plan_id = plan_id
29
+ @prior_agreement_id = prior_agreement_id
21
30
  end
22
31
 
23
32
  sig { params(other: T.untyped).returns(T::Boolean) }
24
33
  def ==(other)
25
34
  return false unless other.is_a? self.class
26
35
  return false unless @plan_id == other.plan_id
36
+ return false unless @prior_agreement_id == other.prior_agreement_id
27
37
  true
28
38
  end
29
39
  end
@@ -10,4 +10,6 @@ end
10
10
  class Moov::Models::Components::CreateFeePlanAgreement
11
11
  def plan_id(); end
12
12
  def plan_id=(str_); end
13
+ def prior_agreement_id(); end
14
+ def prior_agreement_id=(str_); end
13
15
  end
@@ -40,7 +40,7 @@ module Moov
40
40
  field :customer, Crystalline::Nilable.new(Models::Components::PaymentLinkCustomerOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customer') } }
41
41
  # Options for payment links used to collect payment.
42
42
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
43
-
43
+ # Options for payout links used to send a payout.
44
44
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
45
45
  # Options for a custom amount payment link. Mutually exclusive with `payment` and `payout`.
46
46
  field :custom_amount_payment, Crystalline::Nilable.new(Models::Components::PaymentLinkCustomAmountPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customAmountPayment') } }
@@ -9,12 +9,12 @@ module Moov
9
9
  module Components
10
10
  # Specifies a partial amount to refund.
11
11
  #
12
- # This request body is optional, an empty body will issue a refund for the full amount of the original transfer.
12
+ # Before v2026.10, this request body may be omitted. In v2026.10 and later, send an empty object to refund the full amount of the original transfer.
13
13
  class CreateRefund
14
14
  extend T::Sig
15
15
  include Crystalline::MetadataFields
16
16
 
17
- # Amount to refund in cents. If null, the original transfer's full amount will be refunded.
17
+ # Amount to refund. If omitted, the original transfer's full amount will be refunded.
18
18
  field :amount, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
19
19
  # Breakdown of the refunded amount.
20
20
  field :amount_details, Crystalline::Nilable.new(Models::Components::RefundAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
@@ -12,7 +12,10 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # Amount to reverse in cents. Partial amounts will automatically trigger a refund instead of a cancellation.
15
+ # Amount to reverse.
16
+ # Before v2026.10, specify the amount in integer cents.
17
+ # For supported auth-capture `card-payment` reversals in v2026.10 and later, a transfer with no captures uses the full `capturableAmount`.
18
+ # For those transfers with one final capture, a cancellation uses the full capture amount, while a refund may be partial.
16
19
  field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
17
20
  # Breakdown of the reversed amount.
18
21
  field :amount_details, Crystalline::Nilable.new(Models::Components::ReversalAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletID'), required: true } }
17
17
 
18
- field :status, Models::Components::SweepConfigStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::SweepConfigStatus, false) } }
18
+ field :status, Models::Components::SweepConfigStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::SweepConfigStatus, false) } }
19
19
  # ID of the payment method.
20
20
  field :push_payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushPaymentMethodID'), required: true } }
21
21
  # ID of the payment method.
@@ -13,7 +13,7 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Platform of the terminal application.
16
- field :platform, Models::Components::TerminalApplicationPlatform, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('platform'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TerminalApplicationPlatform, false) } }
16
+ field :platform, Models::Components::TerminalApplicationPlatform, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('platform'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TerminalApplicationPlatform, false) } }
17
17
  # The app bundle identifier of the terminal application. Required if platform is `ios`.
18
18
  field :app_bundle_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('appBundleID') } }
19
19
  # The app package name of the terminal application. Required if platform is `android`.
@@ -15,7 +15,7 @@ module Moov
15
15
  # Defines which amount should be used when calculating the final payment total. This calculation applies for percentage tip values.
16
16
  # - `pre-tax`: Tip amounts are calculated using the subtotal amount before taxes
17
17
  # - `post-tax`: Tip amounts are calculated using the subtotal amount + taxes
18
- field :calculation_basis, Crystalline::Nilable.new(Models::Components::TipCalculationBasis), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('calculationBasis'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TipCalculationBasis, true) } }
18
+ field :calculation_basis, Crystalline::Nilable.new(Models::Components::TipCalculationBasis), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('calculationBasis'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TipCalculationBasis, true) } }
19
19
  # Defines the set of suggested tip preset values presented to customers. Percentages must be between 0 and 100 (exclusive) and must be unique. A maximum of 3 values are allowed.
20
20
  field :percentage_options, Crystalline::Nilable.new(Crystalline::Array.new(::Integer)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('percentageOptions') } }
21
21
  # Defines the set of suggested tip preset values presented to customers. Fixed amounts must be positive and unique. A maximum of 3 values are allowed.
@@ -31,7 +31,7 @@ module Moov
31
31
  field :line_items, Crystalline::Nilable.new(Models::Components::CreateTransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
32
32
 
33
33
  field :amount_details, Crystalline::Nilable.new(Models::Components::CreateTransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
34
- # Indicates which party bears fees for the transfer, keyed by fee type.
34
+ # Indicates which party bears fees for a transfer, keyed by fee type.
35
35
  field :fee_paid_by, Crystalline::Nilable.new(Models::Components::TransferFeePaidBy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('feePaidBy') } }
36
36
 
37
37
  sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::Amount, facilitator_fee: T.nilable(Models::Components::FacilitatorFee), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::CreateTransferLineItems), amount_details: T.nilable(Models::Components::CreateTransferAmountDetails), fee_paid_by: T.nilable(Models::Components::TransferFeePaidBy)).void }
@@ -17,9 +17,9 @@ module Moov
17
17
  # An optional override of the default NACHA company name for a transfer.
18
18
  field :originating_company_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('originatingCompanyName') } }
19
19
  # An optional override of your default ACH hold period in banking days. The hold period must be longer than or equal to your default setting.
20
- field :debit_hold_period, Crystalline::Nilable.new(Models::Components::DebitHoldPeriod), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('debitHoldPeriod'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DebitHoldPeriod, true) } }
20
+ field :debit_hold_period, Crystalline::Nilable.new(Models::Components::DebitHoldPeriod), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('debitHoldPeriod'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DebitHoldPeriod, true) } }
21
21
  # Code used to identify the ACH authorization method.
22
- field :sec_code, Crystalline::Nilable.new(Models::Components::SECCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('secCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::SECCode, true) } }
22
+ field :sec_code, Crystalline::Nilable.new(Models::Components::SECCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('secCode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::SECCode, true) } }
23
23
 
24
24
  field :addenda, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CreateTransferACHAddendaRecord)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('addenda') } }
25
25
 
@@ -18,7 +18,7 @@ module Moov
18
18
  #
19
19
  # Crucial for recurring and merchant-initiated transactions as per card scheme rules.
20
20
  # Omit for customer-initiated e-commerce transactions.
21
- field :transaction_source, Crystalline::Nilable.new(Models::Components::TransactionSource), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionSource'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransactionSource, true) } }
21
+ field :transaction_source, Crystalline::Nilable.new(Models::Components::TransactionSource), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionSource'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransactionSource, true) } }
22
22
 
23
23
  sig { params(dynamic_descriptor: T.nilable(::String), transaction_source: T.nilable(Models::Components::TransactionSource)).void }
24
24
  def initialize(dynamic_descriptor: nil, transaction_source: nil)
@@ -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.
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # DebitHoldPeriod - An optional override of your default ACH hold period in banking days. The hold period must be longer than or equal to your default setting.
11
- class DebitHoldPeriod < T::Enum
11
+ class DebitHoldPeriod
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  NO_HOLD = new('no-hold')
14
15
  ONE_MINUS_DAY = new('1-day')
15
16
  TWO_MINUS_DAYS = new('2-days')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # The Moov account that owns the deposit view the account was ingested into.
16
16
  field :moov_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovAccountID'), required: true } }
17
17
  # The core banking source system that produced the ingested payload.
18
- field :source_system, Models::Components::SourceSystem, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceSystem'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::SourceSystem, false) } }
18
+ field :source_system, Models::Components::SourceSystem, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceSystem'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::SourceSystem, false) } }
19
19
  # The identifier of the deposit account within the source system.
20
20
  field :source_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceAccountID'), required: true } }
21
21
  # The date and time the deposit account was ingested.
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # DisbursementPaymentMethodType - Payment methods allowed for disbursing funds.
11
- class DisbursementPaymentMethodType < T::Enum
11
+ class DisbursementPaymentMethodType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PUSH_TO_CARD = new('push-to-card')
14
15
  RTP_CREDIT = new('rtp-credit')
@@ -17,6 +18,7 @@ module Moov
17
18
  PUSH_TO_APPLE_PAY = new('push-to-apple-pay')
18
19
  PUSH_TO_GOOGLE_PAY = new('push-to-google-pay')
19
20
  end
21
+ open!
20
22
  end
21
23
  end
22
24
  end
@@ -29,9 +29,9 @@ module Moov
29
29
  # The status of a particular dispute.
30
30
  #
31
31
  # Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#dispute-statuses) to learn what each status means.
32
- field :status, Models::Components::DisputeStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DisputeStatus, false) } }
32
+ field :status, Models::Components::DisputeStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DisputeStatus, false) } }
33
33
  # The phase of a dispute within the dispute lifecycle.
34
- field :phase, Models::Components::DisputePhase, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('phase'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DisputePhase, false) } }
34
+ field :phase, Models::Components::DisputePhase, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('phase'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DisputePhase, false) } }
35
35
 
36
36
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
37
37
  # Provides detail on the card network's categorization of the dispute.
@@ -17,7 +17,7 @@ module Moov
17
17
 
18
18
  field :dispute_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputeID'), required: true } }
19
19
 
20
- field :evidence_type, Models::Components::EvidenceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::EvidenceType, false) } }
20
+ field :evidence_type, Models::Components::EvidenceType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::EvidenceType, false) } }
21
21
 
22
22
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
23
23
 
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # DisputePhase - The phase of a dispute within the dispute lifecycle.
11
- class DisputePhase < T::Enum
11
+ class DisputePhase
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PRE_DISPUTE = new('pre-dispute')
14
15
  INQUIRY = new('inquiry')
15
16
  CHARGEBACK = new('chargeback')
16
17
  UNKNOWN = new('unknown')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -10,7 +10,8 @@ module Moov
10
10
  # DisputeStatus - The status of a particular dispute.
11
11
  #
12
12
  # Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#dispute-statuses) to learn what each status means.
13
- class DisputeStatus < T::Enum
13
+ class DisputeStatus
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  RESPONSE_NEEDED = new('response-needed')
16
17
  RESOLVED = new('resolved')
@@ -21,6 +22,7 @@ module Moov
21
22
  WON = new('won')
22
23
  LOST = new('lost')
23
24
  end
25
+ open!
24
26
  end
25
27
  end
26
28
  end
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :document_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('documentID'), required: true } }
17
17
  # Types of documents that can be uploaded.
18
- field :type, Models::Components::DocumentType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DocumentType, false) } }
18
+ field :type, Models::Components::DocumentType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::DocumentType, false) } }
19
19
  # The document's MIME type.
20
20
  field :content_type, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('contentType'), required: true } }
21
21