moov_ruby 26.10.0.pre.dev.2 → 26.10.0.pre.dev.3

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 (398) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/bank_accounts.rb +439 -0
  4. data/lib/moov/card_issuing.rb +1 -1
  5. data/lib/moov/images.rb +17 -2
  6. data/lib/moov/institutions.rb +1 -1
  7. data/lib/moov/models/components/account.rb +2 -2
  8. data/lib/moov/models/components/accountnameverification.rb +4 -4
  9. data/lib/moov/models/components/accounttype.rb +3 -1
  10. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  11. data/lib/moov/models/components/achcredittransferprocessingdetails.rb +6 -2
  12. data/lib/moov/models/components/achcredittransferprocessingdetails.rbi +2 -0
  13. data/lib/moov/models/components/achdebitoptions.rb +2 -2
  14. data/lib/moov/models/components/achdebittransferprocessingdetails.rb +6 -2
  15. data/lib/moov/models/components/achdebittransferprocessingdetails.rbi +2 -0
  16. data/lib/moov/models/components/achreturncode.rb +3 -1
  17. data/lib/moov/models/components/achtransactionstatus.rb +26 -0
  18. data/lib/moov/models/components/achtransactionstatus.rbi +11 -0
  19. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  20. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  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/asynccreatedrefund.rb +1 -1
  26. data/lib/moov/models/components/authmethod.rb +3 -1
  27. data/lib/moov/models/components/bankaccount.rb +4 -4
  28. data/lib/moov/models/components/bankaccountattestation.rb +52 -0
  29. data/lib/moov/models/components/bankaccountattestation.rbi +23 -0
  30. data/lib/moov/models/components/bankaccountattestationeligibility.rb +36 -0
  31. data/lib/moov/models/components/bankaccountattestationeligibility.rbi +15 -0
  32. data/lib/moov/models/components/bankaccountattestationsummary.rb +44 -0
  33. data/lib/moov/models/components/bankaccountattestationsummary.rbi +19 -0
  34. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  35. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  36. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  37. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  38. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  39. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  40. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  41. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  42. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  43. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  44. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  45. data/lib/moov/models/components/billablefee.rb +2 -2
  46. data/lib/moov/models/components/billingadjustment.rb +40 -0
  47. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  48. data/lib/moov/models/components/billingsummary.rb +8 -4
  49. data/lib/moov/models/components/billingsummary.rbi +2 -0
  50. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  51. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  52. data/lib/moov/models/components/businesspresence.rb +3 -1
  53. data/lib/moov/models/components/businessprofile.rb +2 -2
  54. data/lib/moov/models/components/businesstype.rb +3 -1
  55. data/lib/moov/models/components/calltoaction.rb +3 -1
  56. data/lib/moov/models/components/cancellation.rb +2 -2
  57. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  58. data/lib/moov/models/components/capability.rb +2 -2
  59. data/lib/moov/models/components/capabilityid.rb +3 -1
  60. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  61. data/lib/moov/models/components/capture.rb +11 -6
  62. data/lib/moov/models/components/capture.rbi +2 -0
  63. data/lib/moov/models/components/capturestatus.rb +3 -3
  64. data/lib/moov/models/components/card.rb +4 -4
  65. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  66. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  67. data/lib/moov/models/components/cardacquiringrefund.rb +2 -2
  68. data/lib/moov/models/components/cardbrand.rb +3 -1
  69. data/lib/moov/models/components/cardissuing.rb +34 -0
  70. data/lib/moov/models/components/cardissuing.rbi +13 -0
  71. data/lib/moov/models/components/cardissuingerror.rb +32 -0
  72. data/lib/moov/models/components/cardissuingerror.rbi +13 -0
  73. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  74. data/lib/moov/models/components/cardmetadata.rb +4 -4
  75. data/lib/moov/models/components/cardpaymentoptions.rb +1 -1
  76. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +1 -1
  77. data/lib/moov/models/components/cardpaymenttransactionstatus.rb +25 -0
  78. data/lib/moov/models/components/cardpaymenttransactionstatus.rbi +11 -0
  79. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +11 -7
  80. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +4 -2
  81. data/lib/moov/models/components/cardtransactionfailurecode.rb +19 -1
  82. data/lib/moov/models/components/cardtype.rb +3 -1
  83. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  84. data/lib/moov/models/components/cardverification.rb +3 -3
  85. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  86. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  87. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  88. data/lib/moov/models/components/createaccount.rb +2 -2
  89. data/lib/moov/models/components/createaccounttype.rb +3 -1
  90. data/lib/moov/models/components/createbankaccountattestation.rb +36 -0
  91. data/lib/moov/models/components/createbankaccountattestation.rbi +15 -0
  92. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  93. data/lib/moov/models/components/createcancellation.rb +4 -2
  94. data/lib/moov/models/components/createcapture.rb +7 -4
  95. data/lib/moov/models/components/createdtransfer.rb +9 -5
  96. data/lib/moov/models/components/createevidencetext.rb +1 -1
  97. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  98. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  99. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  100. data/lib/moov/models/components/createrefund.rb +2 -2
  101. data/lib/moov/models/components/createreversal.rb +4 -1
  102. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  103. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  104. data/lib/moov/models/components/createtippresets.rb +1 -1
  105. data/lib/moov/models/components/createtransfer.rb +1 -1
  106. data/lib/moov/models/components/createtransferdestination.rb +6 -2
  107. data/lib/moov/models/components/createtransferdestination.rbi +2 -0
  108. data/lib/moov/models/components/createtransferdestinationwire.rb +32 -0
  109. data/lib/moov/models/components/createtransferdestinationwire.rbi +13 -0
  110. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  111. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  112. data/lib/moov/models/components/createwebhook.rb +1 -1
  113. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  114. data/lib/moov/models/components/depositaccountingestedresponse.rb +1 -1
  115. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  116. data/lib/moov/models/components/dispute.rb +2 -2
  117. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  118. data/lib/moov/models/components/disputephase.rb +3 -1
  119. data/lib/moov/models/components/disputestatus.rb +3 -1
  120. data/lib/moov/models/components/document.rb +1 -1
  121. data/lib/moov/models/components/documenttype.rb +3 -1
  122. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  123. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  124. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  125. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  126. data/lib/moov/models/components/evidencetype.rb +3 -1
  127. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  128. data/lib/moov/models/components/facilitatorfee.rb +6 -17
  129. data/lib/moov/models/components/facilitatorfee.rbi +0 -4
  130. data/lib/moov/models/components/feecategory.rb +3 -1
  131. data/lib/moov/models/components/feemodel.rb +3 -1
  132. data/lib/moov/models/components/feepaidby.rb +4 -2
  133. data/lib/moov/models/components/feeplan.rb +1 -1
  134. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  135. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  136. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  137. data/lib/moov/models/components/filedetails.rb +2 -2
  138. data/lib/moov/models/components/filepurpose.rb +3 -1
  139. data/lib/moov/models/components/filestatus.rb +3 -1
  140. data/lib/moov/models/components/fulfillment.rb +2 -2
  141. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  142. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  143. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  144. data/lib/moov/models/components/fullissuedcard.rb +3 -2
  145. data/lib/moov/models/components/geographicreach.rb +3 -1
  146. data/lib/moov/models/components/googlepayresponse.rb +3 -3
  147. data/lib/moov/models/components/incurredfee.rb +1 -1
  148. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +8 -4
  149. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rbi +2 -0
  150. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  151. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  152. data/lib/moov/models/components/instantbanktransactionstatus.rb +23 -0
  153. data/lib/moov/models/components/instantbanktransactionstatus.rbi +11 -0
  154. data/lib/moov/models/components/invoice.rb +1 -1
  155. data/lib/moov/models/components/invoicepayment.rb +1 -1
  156. data/lib/moov/models/components/invoicepaymenttype.rb +3 -1
  157. data/lib/moov/models/components/invoicestatus.rb +3 -1
  158. data/lib/moov/models/components/issuedcard.rb +3 -2
  159. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  160. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  161. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  162. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  163. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  164. data/lib/moov/models/components/issuedcontrols.rb +2 -2
  165. data/lib/moov/models/components/issuedvelocitylimit.rb +1 -1
  166. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  167. data/lib/moov/models/components/issuingcontrols.rb +3 -3
  168. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +1 -1
  169. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +4 -2
  170. data/lib/moov/models/components/issuingintervallimit.rb +3 -1
  171. data/lib/moov/models/components/issuingmerchantcategory.rb +3 -1
  172. data/lib/moov/models/components/issuingvelocitylimit.rb +1 -1
  173. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  174. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  175. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +1 -1
  176. data/lib/moov/models/components/merchantcategory.rb +1 -1
  177. data/lib/moov/models/components/merchantcategoryrestrictions.rb +3 -3
  178. data/lib/moov/models/components/merchantentry.rb +6 -6
  179. data/lib/moov/models/components/merchantentry.rbi +2 -2
  180. data/lib/moov/models/components/merchantentryerror.rb +5 -5
  181. data/lib/moov/models/components/merchantentryerror.rbi +2 -2
  182. data/lib/moov/models/components/merchantrestrictions.rb +2 -2
  183. data/lib/moov/models/components/mode.rb +3 -1
  184. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  185. data/lib/moov/models/components/moovfee.rb +1 -1
  186. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  187. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  188. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  189. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  190. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  191. data/lib/moov/models/components/patchbusiness.rb +2 -2
  192. data/lib/moov/models/components/patchwallet.rb +1 -1
  193. data/lib/moov/models/components/paymentlink.rb +4 -6
  194. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +0 -2
  195. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +0 -2
  196. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  197. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  198. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +5 -7
  199. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +5 -7
  200. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  201. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  202. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  203. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  204. data/lib/moov/models/components/paymentmethodswallet.rb +1 -1
  205. data/lib/moov/models/components/paymentmethodtype.rb +4 -1
  206. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  207. data/lib/moov/models/components/primaryregulator.rb +3 -1
  208. data/lib/moov/models/components/pullfromcardoptions.rb +1 -1
  209. data/lib/moov/models/components/pullfromcardtransactionstatus.rb +22 -0
  210. data/lib/moov/models/components/pullfromcardtransactionstatus.rbi +11 -0
  211. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +7 -3
  212. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +2 -0
  213. data/lib/moov/models/components/pushdeliveryspeed.rb +3 -1
  214. data/lib/moov/models/components/pushoptions.rb +5 -4
  215. data/lib/moov/models/components/pushoptionsupdate.rb +5 -4
  216. data/lib/moov/models/components/pushtocardtransactionstatus.rb +24 -0
  217. data/lib/moov/models/components/pushtocardtransactionstatus.rbi +11 -0
  218. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +7 -3
  219. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +2 -0
  220. data/lib/moov/models/components/puttippresets.rb +1 -1
  221. data/lib/moov/models/components/refundpolicy.rb +3 -1
  222. data/lib/moov/models/components/refundstatus.rb +3 -1
  223. data/lib/moov/models/components/requestcard.rb +1 -1
  224. data/lib/moov/models/components/requirementerror.rb +2 -2
  225. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  226. data/lib/moov/models/components/requirementid.rb +18 -1
  227. data/lib/moov/models/components/resolutionlink.rb +1 -1
  228. data/lib/moov/models/components/resolutionlinkstatus.rb +3 -1
  229. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  230. data/lib/moov/models/components/reversalamountdetails.rb +3 -1
  231. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  232. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  233. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  234. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  235. data/lib/moov/models/components/seccode.rb +3 -1
  236. data/lib/moov/models/components/sourcesystem.rb +3 -1
  237. data/lib/moov/models/components/statement.rb +6 -2
  238. data/lib/moov/models/components/statement.rbi +2 -0
  239. data/lib/moov/models/components/sweep.rb +1 -1
  240. data/lib/moov/models/components/sweepconfig.rb +3 -3
  241. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  242. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  243. data/lib/moov/models/components/sweepstatus.rb +3 -1
  244. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  245. data/lib/moov/models/components/terminalapplication.rb +2 -2
  246. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  247. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  248. data/lib/moov/models/components/terminalcard.rb +2 -2
  249. data/lib/moov/models/components/ticket.rb +1 -1
  250. data/lib/moov/models/components/ticketstatus.rb +3 -1
  251. data/lib/moov/models/components/tipcalculationbasis.rb +3 -1
  252. data/lib/moov/models/components/tippresets.rb +1 -1
  253. data/lib/moov/models/components/transactionsource.rb +3 -1
  254. data/lib/moov/models/components/transfer.rb +9 -5
  255. data/lib/moov/models/components/transferauthorization.rb +7 -7
  256. data/lib/moov/models/components/transferdestination.rb +1 -1
  257. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  258. data/lib/moov/models/components/transferfeepaidby.rb +2 -2
  259. data/lib/moov/models/components/transferoptions.rb +3 -3
  260. data/lib/moov/models/components/transferparty.rb +3 -1
  261. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  262. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  263. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -1
  264. data/lib/moov/models/components/transferpaymentmethodtype.rb +4 -1
  265. data/lib/moov/models/components/transferprocessingdetails.rb +6 -2
  266. data/lib/moov/models/components/transferprocessingdetails.rbi +2 -0
  267. data/lib/moov/models/components/transferrailoptions.rb +6 -2
  268. data/lib/moov/models/components/transferrailoptions.rbi +2 -0
  269. data/lib/moov/models/components/transfersource.rb +1 -1
  270. data/lib/moov/models/components/transferstatus.rb +3 -1
  271. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  272. data/lib/moov/models/components/transfertype.rb +4 -1
  273. data/lib/moov/models/components/underwriting.rb +12 -6
  274. data/lib/moov/models/components/underwriting.rbi +2 -0
  275. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  276. data/lib/moov/models/components/updateevidence.rb +1 -1
  277. data/lib/moov/models/components/updateinvoice.rb +1 -1
  278. data/lib/moov/models/components/updateissuedcard.rb +2 -0
  279. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  280. data/lib/moov/models/components/updateissuingcontrols.rb +5 -5
  281. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +1 -1
  282. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +3 -3
  283. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +3 -3
  284. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  285. data/lib/moov/models/components/updatewebhook.rb +1 -1
  286. data/lib/moov/models/components/upsertunderwriting.rb +11 -5
  287. data/lib/moov/models/components/upsertunderwriting.rbi +2 -0
  288. data/lib/moov/models/components/use.rb +3 -1
  289. data/lib/moov/models/components/verification.rb +3 -3
  290. data/lib/moov/models/components/verificationstatus.rb +3 -1
  291. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  292. data/lib/moov/models/components/wallet.rb +2 -2
  293. data/lib/moov/models/components/walletstatus.rb +3 -1
  294. data/lib/moov/models/components/wallettransaction.rb +3 -3
  295. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  296. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  297. data/lib/moov/models/components/wallettransactiontype.rb +4 -1
  298. data/lib/moov/models/components/wallettype.rb +3 -1
  299. data/lib/moov/models/components/webhook.rb +1 -1
  300. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  301. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  302. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  303. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  304. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  305. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  306. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  307. data/lib/moov/models/components/webhookdatacaptureupdated.rb +44 -0
  308. data/lib/moov/models/components/webhookdatacaptureupdated.rbi +19 -0
  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 +1 -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 +3 -3
  322. data/lib/moov/models/components/webhookeventtype.rb +4 -1
  323. data/lib/moov/models/components/webhookstatus.rb +3 -1
  324. data/lib/moov/models/components/wirecreditpaymentmethod.rb +40 -0
  325. data/lib/moov/models/components/wirecreditpaymentmethod.rbi +17 -0
  326. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rb +18 -0
  327. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rbi +11 -0
  328. data/lib/moov/models/components/wirecredittransferpaymentmethod.rb +40 -0
  329. data/lib/moov/models/components/wirecredittransferpaymentmethod.rbi +17 -0
  330. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  331. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  332. data/lib/moov/models/components/wirefailurecode.rb +28 -0
  333. data/lib/moov/models/components/wirefailurecode.rbi +11 -0
  334. data/lib/moov/models/components/wireoptions.rb +32 -0
  335. data/lib/moov/models/components/wireoptions.rbi +13 -0
  336. data/lib/moov/models/components/wiretransactionstatus.rb +23 -0
  337. data/lib/moov/models/components/wiretransactionstatus.rbi +11 -0
  338. data/lib/moov/models/components/wiretransferprocessingdetails.rb +40 -0
  339. data/lib/moov/models/components/wiretransferprocessingdetails.rbi +17 -0
  340. data/lib/moov/models/components.rb +24 -1
  341. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rb +40 -0
  342. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rbi +17 -0
  343. data/lib/moov/models/errors/cardacquiringrefund_error.rb +2 -2
  344. data/lib/moov/models/errors/imagemetadata_error.rb +61 -0
  345. data/lib/moov/models/errors/imagemetadata_error.rbi +27 -0
  346. data/lib/moov/models/errors/transfer_error.rb +9 -5
  347. data/lib/moov/models/errors/upsertunderwritingerror.rb +6 -2
  348. data/lib/moov/models/errors/upsertunderwritingerror.rbi +2 -0
  349. data/lib/moov/models/errors.rb +2 -0
  350. data/lib/moov/models/operations/createbankaccountattestation_request.rb +40 -0
  351. data/lib/moov/models/operations/createbankaccountattestation_request.rbi +17 -0
  352. data/lib/moov/models/operations/createbankaccountattestation_response.rb +48 -0
  353. data/lib/moov/models/operations/createbankaccountattestation_response.rbi +21 -0
  354. data/lib/moov/models/operations/createcapture_request.rb +2 -2
  355. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rb +41 -0
  356. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rbi +17 -0
  357. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rb +48 -0
  358. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rbi +21 -0
  359. data/lib/moov/models/operations/getcapture_request.rb +2 -2
  360. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  361. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  362. data/lib/moov/models/operations/listbankaccountattestations_request.rb +36 -0
  363. data/lib/moov/models/operations/listbankaccountattestations_request.rbi +15 -0
  364. data/lib/moov/models/operations/listbankaccountattestations_response.rb +48 -0
  365. data/lib/moov/models/operations/listbankaccountattestations_response.rbi +21 -0
  366. data/lib/moov/models/operations/listcaptures_request.rb +2 -2
  367. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  368. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  369. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  370. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  371. data/lib/moov/models/operations/listinvoices_request.rb +1 -1
  372. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  373. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  374. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  375. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  376. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  377. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  378. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  379. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  380. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  381. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  382. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  383. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  384. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  385. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  386. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  387. data/lib/moov/models/operations/listtransfers_request.rb +4 -8
  388. data/lib/moov/models/operations/listtransfers_request.rbi +0 -2
  389. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  390. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  391. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  392. data/lib/moov/models/operations.rb +6 -0
  393. data/lib/moov/payment_methods.rb +2 -2
  394. data/lib/moov/sdkconfiguration.rb +3 -3
  395. data/lib/moov/transfers.rb +16 -9
  396. data/lib/moov/utils/retries.rb +41 -2
  397. data/lib/moov/utils/utils.rb +6 -2
  398. metadata +64 -2
@@ -13,7 +13,7 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # The type of wallet transaction the subtotal is for.
16
- field :type, Models::Components::WalletTransactionType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletTransactionType, false) } }
16
+ field :type, Models::Components::WalletTransactionType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletTransactionType, false) } }
17
17
  # The number of transactions of this type accrued in the sweep.
18
18
  field :count, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('count'), required: true } }
19
19
  # The value of transactions of this type accrued in the sweep.
@@ -15,9 +15,9 @@ module Moov
15
15
  # ID of the terminal application.
16
16
  field :terminal_application_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('terminalApplicationID'), required: true } }
17
17
  # Status of the terminal application.
18
- field :status, Models::Components::TerminalApplicationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TerminalApplicationStatus, false) } }
18
+ field :status, Models::Components::TerminalApplicationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TerminalApplicationStatus, false) } }
19
19
  # Platform of the terminal application.
20
- 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) } }
20
+ 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) } }
21
21
  # The app bundle identifier of the terminal application. Will be returned if platform is `ios`.
22
22
  field :app_bundle_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('appBundleID') } }
23
23
  # The app package name of the terminal application. Will be returned if platform is `android`.
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TerminalApplicationPlatform - Platform of the terminal application.
11
- class TerminalApplicationPlatform < T::Enum
11
+ class TerminalApplicationPlatform
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  UNDEFINED = new('undefined')
14
15
  IOS = new('ios')
15
16
  ANDROID = new('android')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TerminalApplicationStatus - Status of the terminal application.
11
- class TerminalApplicationStatus < T::Enum
11
+ class TerminalApplicationStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  UNDEFINED = new('undefined')
14
15
  PENDING = new('pending')
15
16
  ENABLED = new('enabled')
16
17
  DISABLED = new('disabled')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  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::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
@@ -10,11 +10,13 @@ module Moov
10
10
  # TipCalculationBasis - Defines which amount should be used when calculating the final payment total. This calculation applies for percentage tip values.
11
11
  # - `pre-tax`: Tip amounts are calculated using the subtotal amount before taxes
12
12
  # - `post-tax`: Tip amounts are calculated using the subtotal amount + taxes
13
- class TipCalculationBasis < T::Enum
13
+ class TipCalculationBasis
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  PRE_TAX = new('pre-tax')
16
17
  POST_TAX = new('post-tax')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -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.
@@ -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
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :transfer_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID'), required: true } }
17
17
  # The rail and direction used to move funds for a transfer.
18
- field :transfer_type, Models::Components::TransferType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferType, false) } }
18
+ field :transfer_type, Models::Components::TransferType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferType, false) } }
19
19
 
20
20
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
21
21
 
@@ -23,8 +23,11 @@ module Moov
23
23
 
24
24
  field :destination, Models::Components::TransferDestination, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
25
25
  # Status of a transfer.
26
- 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) } }
27
-
26
+ 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) } }
27
+ # Amount associated with this transfer.
28
+ # In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.
29
+ # For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
30
+ # For other transfer types, this is the transfer amount.
28
31
  field :amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
29
32
 
30
33
  field :options, Models::Components::TransferRailOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options'), required: true } }
@@ -33,7 +36,7 @@ module Moov
33
36
 
34
37
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
35
38
  # Reason for a transfer's failure.
36
- 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) } }
39
+ 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) } }
37
40
  # An optional description of the transfer that is used on receipts and for your own internal use.
38
41
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
39
42
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -69,7 +72,8 @@ module Moov
69
72
  field :invoice_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceID') } }
70
73
 
71
74
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
72
-
75
+ # Authorization amounts.
76
+ # This field is present only for an auth-capture `card-payment` transfer.
73
77
  field :authorization, Crystalline::Nilable.new(Models::Components::TransferAuthorization), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorization') } }
74
78
 
75
79
  sig { params(transfer_id: ::String, transfer_type: Models::Components::TransferType, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::AmountDecimal, options: Models::Components::TransferRailOptions, processing_details: Models::Components::TransferProcessingDetails, 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(Models::Components::AmountDecimal), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), refunded_amount: T.nilable(Models::Components::AmountDecimal), disputed_amount: T.nilable(Models::Components::AmountDecimal), 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), invoice_id: T.nilable(::String), amount_details: T.nilable(Models::Components::TransferAmountDetails), authorization: T.nilable(Models::Components::TransferAuthorization)).void }
@@ -7,22 +7,22 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Authorization and capture amounts for an auth-capture `card-payment` transfer.
11
11
  class TransferAuthorization
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
-
15
+ # Identifier for the authorization.
16
16
  field :authorization_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationID'), required: true } }
17
-
17
+ # Amount submitted for authorization.
18
18
  field :requested_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('requestedAmount'), required: true } }
19
-
19
+ # Hold approved by the issuer.
20
20
  field :authorized_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedAmount'), required: true } }
21
-
21
+ # Cumulative amount of captures that have not failed or been canceled.
22
22
  field :captured_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capturedAmount'), required: true } }
23
-
23
+ # Amount of the authorization still available after captures and authorization cancellations.
24
24
  field :capturable_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capturableAmount'), required: true } }
25
-
25
+ # Expiration time for the approved authorization, when available.
26
26
  field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
27
27
 
28
28
  sig { params(authorization_id: ::String, requested_amount: Models::Components::AmountDecimal, authorized_amount: Models::Components::AmountDecimal, captured_amount: Models::Components::AmountDecimal, capturable_amount: Models::Components::AmountDecimal, expires_on: T.nilable(::DateTime)).void }
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :payment_method_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID') } }
17
17
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
18
+ field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
19
19
 
20
20
  field :account, Crystalline::Nilable.new(Models::Components::TransferAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account') } }
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
@@ -12,8 +12,8 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # For payouts, indicates which party bears the fee. Defaults to `source`.
16
- field :payout, Crystalline::Nilable.new(Models::Components::FeePaidBy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FeePaidBy, true) } }
15
+ # Defaults to `source`.
16
+ field :payout, Crystalline::Nilable.new(Models::Components::FeePaidBy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::FeePaidBy, true) } }
17
17
 
18
18
  sig { params(payout: T.nilable(Models::Components::FeePaidBy)).void }
19
19
  def initialize(payout: nil)
@@ -13,11 +13,11 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :source_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceOptions') } }
16
+ field :source_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod, Models::Components::WireCreditTransferPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sourceOptions') } }
17
17
 
18
- field :destination_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationOptions') } }
18
+ field :destination_options, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod, Models::Components::WireCreditTransferPaymentMethod))), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destinationOptions') } }
19
19
 
20
- sig { params(source_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod)]), destination_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod)])).void }
20
+ sig { params(source_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod, Models::Components::WireCreditTransferPaymentMethod)]), destination_options: T.nilable(T::Array[T.any(Models::Components::MoovWalletTransferPaymentMethod, Models::Components::AchDebitFundTransferPaymentMethod, Models::Components::AchDebitCollectTransferPaymentMethod, Models::Components::AchCreditStandardTransferPaymentMethod, Models::Components::AchCreditSameDayTransferPaymentMethod, Models::Components::RtpCreditTransferPaymentMethod, Models::Components::CardPaymentTransferPaymentMethod, Models::Components::PushToCardTransferPaymentMethod, Models::Components::PullFromCardTransferPaymentMethod, Models::Components::ApplePayTransferPaymentMethod, Models::Components::CardPresentPaymentTransferPaymentMethod, Models::Components::InstantBankCreditTransferPaymentMethod, Models::Components::PushToApplePayTransferPaymentMethod, Models::Components::PullFromApplePayTransferPaymentMethod, Models::Components::GooglePayTransferPaymentMethod, Models::Components::PushToGooglePayTransferPaymentMethod, Models::Components::PullFromGooglePayTransferPaymentMethod, Models::Components::WireCreditTransferPaymentMethod)])).void }
21
21
  def initialize(source_options: nil, destination_options: nil)
22
22
  @source_options = source_options
23
23
  @destination_options = destination_options
@@ -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)
@@ -20,7 +20,7 @@ module Moov
20
20
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
21
21
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
22
22
  # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
23
- field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletType, false) } }
23
+ field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletType, false) } }
24
24
 
25
25
  sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
26
26
  def initialize(wallet_id:, partner_account_id:, wallet_type:)
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # 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')
@@ -27,7 +28,9 @@ module Moov
27
28
  GOOGLE_PAY = new('google-pay')
28
29
  PUSH_TO_GOOGLE_PAY = new('push-to-google-pay')
29
30
  PULL_FROM_GOOGLE_PAY = new('pull-from-google-pay')
31
+ WIRE_CREDIT = new('wire-credit')
30
32
  end
33
+ open!
31
34
  end
32
35
  end
33
36
  end
@@ -24,15 +24,18 @@ module Moov
24
24
  field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
25
 
26
26
  field :instant_bank_credit, Crystalline::Nilable.new(Models::Components::InstantBankCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankCredit') } }
27
+ # Wire-specific processing details returned on a transfer.
28
+ field :wire, Crystalline::Nilable.new(Models::Components::WireTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wire') } }
27
29
 
28
- sig { params(card_payment: T.nilable(Models::Components::CardPaymentTransferProcessingDetails), push_to_card: T.nilable(Models::Components::PushToCardTransferProcessingDetails), pull_from_card: T.nilable(Models::Components::PullFromCardTransferProcessingDetails), ach_debit: T.nilable(Models::Components::ACHDebitTransferProcessingDetails), ach_credit: T.nilable(Models::Components::ACHCreditTransferProcessingDetails), instant_bank_credit: T.nilable(Models::Components::InstantBankCreditTransferProcessingDetails)).void }
29
- def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, instant_bank_credit: nil)
30
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentTransferProcessingDetails), push_to_card: T.nilable(Models::Components::PushToCardTransferProcessingDetails), pull_from_card: T.nilable(Models::Components::PullFromCardTransferProcessingDetails), ach_debit: T.nilable(Models::Components::ACHDebitTransferProcessingDetails), ach_credit: T.nilable(Models::Components::ACHCreditTransferProcessingDetails), instant_bank_credit: T.nilable(Models::Components::InstantBankCreditTransferProcessingDetails), wire: T.nilable(Models::Components::WireTransferProcessingDetails)).void }
31
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, instant_bank_credit: nil, wire: nil)
30
32
  @card_payment = card_payment
31
33
  @push_to_card = push_to_card
32
34
  @pull_from_card = pull_from_card
33
35
  @ach_debit = ach_debit
34
36
  @ach_credit = ach_credit
35
37
  @instant_bank_credit = instant_bank_credit
38
+ @wire = wire
36
39
  end
37
40
 
38
41
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -44,6 +47,7 @@ module Moov
44
47
  return false unless @ach_debit == other.ach_debit
45
48
  return false unless @ach_credit == other.ach_credit
46
49
  return false unless @instant_bank_credit == other.instant_bank_credit
50
+ return false unless @wire == other.wire
47
51
  true
48
52
  end
49
53
  end
@@ -20,4 +20,6 @@ class Moov::Models::Components::TransferProcessingDetails
20
20
  def ach_credit=(str_); end
21
21
  def instant_bank_credit(); end
22
22
  def instant_bank_credit=(str_); end
23
+ def wire(); end
24
+ def wire=(str_); end
23
25
  end
@@ -22,14 +22,17 @@ module Moov
22
22
  field :ach_debit, Crystalline::Nilable.new(Models::Components::ACHDebitOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
23
 
24
24
  field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+ # Wire-specific options returned on a transfer.
26
+ field :wire, Crystalline::Nilable.new(Models::Components::WireOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wire') } }
25
27
 
26
- sig { params(card_payment: T.nilable(Models::Components::CardPaymentOptions), push_to_card: T.nilable(Models::Components::PushToCardOptions), pull_from_card: T.nilable(Models::Components::PullFromCardOptions), ach_debit: T.nilable(Models::Components::ACHDebitOptions), ach_credit: T.nilable(Models::Components::ACHCreditOptions)).void }
27
- def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil)
28
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentOptions), push_to_card: T.nilable(Models::Components::PushToCardOptions), pull_from_card: T.nilable(Models::Components::PullFromCardOptions), ach_debit: T.nilable(Models::Components::ACHDebitOptions), ach_credit: T.nilable(Models::Components::ACHCreditOptions), wire: T.nilable(Models::Components::WireOptions)).void }
29
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, wire: nil)
28
30
  @card_payment = card_payment
29
31
  @push_to_card = push_to_card
30
32
  @pull_from_card = pull_from_card
31
33
  @ach_debit = ach_debit
32
34
  @ach_credit = ach_credit
35
+ @wire = wire
33
36
  end
34
37
 
35
38
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -40,6 +43,7 @@ module Moov
40
43
  return false unless @pull_from_card == other.pull_from_card
41
44
  return false unless @ach_debit == other.ach_debit
42
45
  return false unless @ach_credit == other.ach_credit
46
+ return false unless @wire == other.wire
43
47
  true
44
48
  end
45
49
  end
@@ -18,4 +18,6 @@ class Moov::Models::Components::TransferRailOptions
18
18
  def ach_debit=(str_); end
19
19
  def ach_credit(); end
20
20
  def ach_credit=(str_); end
21
+ def wire(); end
22
+ def wire=(str_); end
21
23
  end
@@ -17,7 +17,7 @@ module Moov
17
17
 
18
18
  field :payment_method_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID') } }
19
19
  # The payment method type that represents a payment rail and directionality
20
- field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
20
+ field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
21
21
 
22
22
  field :account, Crystalline::Nilable.new(Models::Components::TransferAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account') } }
23
23
  # 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
  # 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')
@@ -19,6 +20,7 @@ module Moov
19
20
  AWAITING_CAPTURE = new('awaiting-capture')
20
21
  CANCELED = new('canceled')
21
22
  end
23
+ open!
22
24
  end
23
25
  end
24
26
  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.
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TransferType - The rail and direction used to move funds for a transfer.
11
- class TransferType < T::Enum
11
+ class TransferType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  CARD_PAYMENT = new('card-payment')
14
15
  PUSH_TO_CARD = new('push-to-card')
@@ -18,7 +19,9 @@ module Moov
18
19
  ACH_DEBIT_TO_ACH_CREDIT = new('ach-debit-to-ach-credit')
19
20
  INSTANT_BANK_CREDIT = new('instant-bank-credit')
20
21
  WALLET = new('wallet')
22
+ WIRE_CREDIT = new('wire-credit')
21
23
  end
24
+ open!
22
25
  end
23
26
  end
24
27
  end
@@ -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
 
@@ -40,9 +40,13 @@ module Moov
40
40
  field :money_transfer, Crystalline::Nilable.new(Models::Components::MoneyTransfer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moneyTransfer') } }
41
41
 
42
42
  field :send_funds, Crystalline::Nilable.new(Models::Components::SendFunds), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sendFunds') } }
43
+ # Underwriting data for the `card-issuing` capability.
44
+ #
45
+ # Issued cards are funded from the account's card-issuing wallet before they can be spent, so estimated activity is the only data collected.
46
+ field :card_issuing, Crystalline::Nilable.new(Models::Components::CardIssuing), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardIssuing') } }
43
47
 
44
- sig { params(average_transaction_size: T.nilable(::Integer), max_transaction_size: T.nilable(::Integer), average_monthly_transaction_volume: T.nilable(::Integer), status: T.nilable(Models::Components::UnderwritingStatus), volume_by_customer_type: T.nilable(Models::Components::VolumeByCustomerType), card_volume_distribution: T.nilable(Models::Components::CardVolumeDistribution), fulfillment: T.nilable(Models::Components::FulfillmentDetails), geographic_reach: T.nilable(Models::Components::GeographicReach), business_presence: T.nilable(Models::Components::BusinessPresence), pending_litigation: T.nilable(Models::Components::PendingLitigation), volume_share_by_customer_type: T.nilable(Models::Components::VolumeShareByCustomerType), collect_funds: T.nilable(Models::Components::CollectFunds), money_transfer: T.nilable(Models::Components::MoneyTransfer), send_funds: T.nilable(Models::Components::SendFunds)).void }
45
- def initialize(average_transaction_size: nil, max_transaction_size: nil, average_monthly_transaction_volume: nil, status: nil, volume_by_customer_type: nil, card_volume_distribution: nil, fulfillment: nil, geographic_reach: nil, business_presence: nil, pending_litigation: nil, volume_share_by_customer_type: nil, collect_funds: nil, money_transfer: nil, send_funds: nil)
48
+ sig { params(average_transaction_size: T.nilable(::Integer), max_transaction_size: T.nilable(::Integer), average_monthly_transaction_volume: T.nilable(::Integer), status: T.nilable(Models::Components::UnderwritingStatus), volume_by_customer_type: T.nilable(Models::Components::VolumeByCustomerType), card_volume_distribution: T.nilable(Models::Components::CardVolumeDistribution), fulfillment: T.nilable(Models::Components::FulfillmentDetails), geographic_reach: T.nilable(Models::Components::GeographicReach), business_presence: T.nilable(Models::Components::BusinessPresence), pending_litigation: T.nilable(Models::Components::PendingLitigation), volume_share_by_customer_type: T.nilable(Models::Components::VolumeShareByCustomerType), collect_funds: T.nilable(Models::Components::CollectFunds), money_transfer: T.nilable(Models::Components::MoneyTransfer), send_funds: T.nilable(Models::Components::SendFunds), card_issuing: T.nilable(Models::Components::CardIssuing)).void }
49
+ def initialize(average_transaction_size: nil, max_transaction_size: nil, average_monthly_transaction_volume: nil, status: nil, volume_by_customer_type: nil, card_volume_distribution: nil, fulfillment: nil, geographic_reach: nil, business_presence: nil, pending_litigation: nil, volume_share_by_customer_type: nil, collect_funds: nil, money_transfer: nil, send_funds: nil, card_issuing: nil)
46
50
  @average_transaction_size = average_transaction_size
47
51
  @max_transaction_size = max_transaction_size
48
52
  @average_monthly_transaction_volume = average_monthly_transaction_volume
@@ -57,6 +61,7 @@ module Moov
57
61
  @collect_funds = collect_funds
58
62
  @money_transfer = money_transfer
59
63
  @send_funds = send_funds
64
+ @card_issuing = card_issuing
60
65
  end
61
66
 
62
67
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -76,6 +81,7 @@ module Moov
76
81
  return false unless @collect_funds == other.collect_funds
77
82
  return false unless @money_transfer == other.money_transfer
78
83
  return false unless @send_funds == other.send_funds
84
+ return false unless @card_issuing == other.card_issuing
79
85
  true
80
86
  end
81
87
  end