moov_ruby 26.10.0.pre.dev.1 → 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 (503) 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/bank_accounts.rb +439 -0
  5. data/lib/moov/card_issuing.rb +117 -1
  6. data/lib/moov/client.rb +2 -2
  7. data/lib/moov/enriched_address.rb +1 -1
  8. data/lib/moov/enriched_profile.rb +1 -1
  9. data/lib/moov/images.rb +17 -2
  10. data/lib/moov/institutions.rb +2 -2
  11. data/lib/moov/models/components/account.rb +2 -2
  12. data/lib/moov/models/components/accountnameverification.rb +4 -4
  13. data/lib/moov/models/components/accounttype.rb +3 -1
  14. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  15. data/lib/moov/models/components/achcreditoptions.rb +40 -0
  16. data/lib/moov/models/components/achcreditoptions.rbi +17 -0
  17. data/lib/moov/models/components/achcredittransferprocessingdetails.rb +44 -0
  18. data/lib/moov/models/components/achcredittransferprocessingdetails.rbi +19 -0
  19. data/lib/moov/models/components/achdebitoptions.rb +48 -0
  20. data/lib/moov/models/components/achdebitoptions.rbi +21 -0
  21. data/lib/moov/models/components/achdebittransferprocessingdetails.rb +44 -0
  22. data/lib/moov/models/components/achdebittransferprocessingdetails.rbi +19 -0
  23. data/lib/moov/models/components/achreturncode.rb +3 -1
  24. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  25. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  26. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  27. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  28. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  29. data/lib/moov/models/components/amountdecimalrange.rb +0 -2
  30. data/lib/moov/models/components/amountdecimalrangeupdate.rb +0 -2
  31. data/lib/moov/models/components/applepayresponse.rb +2 -2
  32. data/lib/moov/models/components/applicationscope.rb +4 -2
  33. data/lib/moov/models/components/asynccreatedrefund.rb +7 -3
  34. data/lib/moov/models/components/asynccreatedrefund.rbi +2 -0
  35. data/lib/moov/models/components/authmethod.rb +3 -1
  36. data/lib/moov/models/components/bankaccount.rb +4 -4
  37. data/lib/moov/models/components/bankaccountattestation.rb +52 -0
  38. data/lib/moov/models/components/bankaccountattestation.rbi +23 -0
  39. data/lib/moov/models/components/bankaccountattestationeligibility.rb +36 -0
  40. data/lib/moov/models/components/bankaccountattestationeligibility.rbi +15 -0
  41. data/lib/moov/models/components/bankaccountattestationsummary.rb +44 -0
  42. data/lib/moov/models/components/bankaccountattestationsummary.rbi +19 -0
  43. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  44. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  45. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  46. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  47. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  48. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  49. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  50. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  51. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  52. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  53. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  54. data/lib/moov/models/components/billablefee.rb +2 -2
  55. data/lib/moov/models/components/billingadjustment.rb +40 -0
  56. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  57. data/lib/moov/models/components/billingsummary.rb +8 -4
  58. data/lib/moov/models/components/billingsummary.rbi +2 -0
  59. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  60. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  61. data/lib/moov/models/components/businesspresence.rb +3 -1
  62. data/lib/moov/models/components/businessprofile.rb +2 -2
  63. data/lib/moov/models/components/businesstype.rb +3 -1
  64. data/lib/moov/models/components/calltoaction.rb +3 -1
  65. data/lib/moov/models/components/cancellation.rb +2 -2
  66. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  67. data/lib/moov/models/components/capability.rb +2 -2
  68. data/lib/moov/models/components/capabilityid.rb +3 -1
  69. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  70. data/lib/moov/models/components/capture.rb +82 -0
  71. data/lib/moov/models/components/capture.rbi +37 -0
  72. data/lib/moov/models/components/{refundcardstatus.rb → capturestatus.rb} +6 -5
  73. data/lib/moov/models/components/{refundcardstatus.rbi → capturestatus.rbi} +2 -2
  74. data/lib/moov/models/components/card.rb +4 -4
  75. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  76. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  77. data/lib/moov/models/components/cardacquiringrefund.rb +12 -8
  78. data/lib/moov/models/components/cardacquiringrefund.rbi +4 -2
  79. data/lib/moov/models/components/cardbrand.rb +3 -1
  80. data/lib/moov/models/components/cardissuing.rb +34 -0
  81. data/lib/moov/models/components/cardissuing.rbi +13 -0
  82. data/lib/moov/models/components/cardissuingerror.rb +32 -0
  83. data/lib/moov/models/components/cardissuingerror.rbi +13 -0
  84. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  85. data/lib/moov/models/components/cardmetadata.rb +4 -4
  86. data/lib/moov/models/components/cardpaymentoptions.rb +39 -0
  87. data/lib/moov/models/components/cardpaymentoptions.rbi +15 -0
  88. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +32 -0
  89. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +13 -0
  90. data/lib/moov/models/components/{cardtransactionstatus.rb → cardpaymenttransactionstatus.rb} +4 -3
  91. data/lib/moov/models/components/cardpaymenttransactionstatus.rbi +11 -0
  92. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +48 -0
  93. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +21 -0
  94. data/lib/moov/models/components/cardtransactionfailurecode.rb +19 -1
  95. data/lib/moov/models/components/cardtype.rb +3 -1
  96. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  97. data/lib/moov/models/components/cardverification.rb +3 -3
  98. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  99. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  100. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  101. data/lib/moov/models/components/createaccount.rb +2 -2
  102. data/lib/moov/models/components/createaccounttype.rb +3 -1
  103. data/lib/moov/models/components/createbankaccountattestation.rb +36 -0
  104. data/lib/moov/models/components/createbankaccountattestation.rbi +15 -0
  105. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  106. data/lib/moov/models/components/createcancellation.rb +34 -0
  107. data/lib/moov/models/components/createcancellation.rbi +13 -0
  108. data/lib/moov/models/components/createcapture.rb +68 -0
  109. data/lib/moov/models/components/createcapture.rbi +29 -0
  110. data/lib/moov/models/components/createdtransfer.rb +29 -25
  111. data/lib/moov/models/components/createdtransfer.rbi +8 -8
  112. data/lib/moov/models/components/createevidencetext.rb +1 -1
  113. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  114. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  115. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  116. data/lib/moov/models/components/createrefund.rb +9 -5
  117. data/lib/moov/models/components/createrefund.rbi +2 -0
  118. data/lib/moov/models/components/createreversal.rb +6 -3
  119. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  120. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  121. data/lib/moov/models/components/createtippresets.rb +1 -1
  122. data/lib/moov/models/components/createtransfer.rb +5 -5
  123. data/lib/moov/models/components/createtransferdestination.rb +6 -2
  124. data/lib/moov/models/components/createtransferdestination.rbi +2 -0
  125. data/lib/moov/models/components/createtransferdestinationwire.rb +32 -0
  126. data/lib/moov/models/components/createtransferdestinationwire.rbi +13 -0
  127. data/lib/moov/models/components/createtransferfacilitatorfee.rb +36 -0
  128. data/lib/moov/models/components/createtransferfacilitatorfee.rbi +15 -0
  129. data/lib/moov/models/components/createtransferoptions.rb +2 -2
  130. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  131. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  132. data/lib/moov/models/components/createwebhook.rb +1 -1
  133. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  134. data/lib/moov/models/components/depositaccountingestedresponse.rb +1 -1
  135. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  136. data/lib/moov/models/components/dispute.rb +2 -2
  137. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  138. data/lib/moov/models/components/disputephase.rb +3 -1
  139. data/lib/moov/models/components/disputestatus.rb +3 -1
  140. data/lib/moov/models/components/document.rb +1 -1
  141. data/lib/moov/models/components/documenttype.rb +3 -1
  142. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  143. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  144. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  145. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  146. data/lib/moov/models/components/evidencetype.rb +3 -1
  147. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  148. data/lib/moov/models/components/facilitatorfee.rb +6 -17
  149. data/lib/moov/models/components/facilitatorfee.rbi +0 -4
  150. data/lib/moov/models/components/feecategory.rb +3 -1
  151. data/lib/moov/models/components/feemodel.rb +3 -1
  152. data/lib/moov/models/components/feepaidby.rb +4 -2
  153. data/lib/moov/models/components/feeplan.rb +1 -1
  154. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  155. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  156. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  157. data/lib/moov/models/components/filedetails.rb +2 -2
  158. data/lib/moov/models/components/filepurpose.rb +3 -1
  159. data/lib/moov/models/components/filestatus.rb +3 -1
  160. data/lib/moov/models/components/fulfillment.rb +2 -2
  161. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  162. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  163. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  164. data/lib/moov/models/components/fullissuedcard.rb +6 -5
  165. data/lib/moov/models/components/geographicreach.rb +3 -1
  166. data/lib/moov/models/components/googlepayresponse.rb +3 -3
  167. data/lib/moov/models/components/incurredfee.rb +1 -1
  168. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +48 -0
  169. data/lib/moov/models/components/{instantbanktransactiondetails.rbi → instantbankcredittransferprocessingdetails.rbi} +4 -12
  170. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  171. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  172. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  173. data/lib/moov/models/components/invoice.rb +1 -1
  174. data/lib/moov/models/components/invoicepayment.rb +1 -1
  175. data/lib/moov/models/components/invoicepaymenttype.rb +3 -1
  176. data/lib/moov/models/components/invoicestatus.rb +3 -1
  177. data/lib/moov/models/components/issuedcard.rb +6 -5
  178. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  179. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  180. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  181. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  182. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  183. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  184. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  185. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  186. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  187. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  188. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  189. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  190. data/lib/moov/models/components/issuingcontrols.rb +19 -3
  191. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  192. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  193. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  194. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  195. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  196. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +21 -0
  197. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  198. data/lib/moov/models/components/issuingintervallimit.rb +6 -1
  199. data/lib/moov/models/components/issuingmerchantcategory.rb +45 -0
  200. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  201. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  202. data/lib/moov/models/components/{cardtransactionstatus.rbi → issuingscheduleday.rbi} +2 -2
  203. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  204. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  205. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  206. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  207. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  208. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  209. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +1 -1
  210. data/lib/moov/models/components/merchantcategories.rb +32 -0
  211. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  212. data/lib/moov/models/components/merchantcategory.rb +37 -0
  213. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  214. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  215. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  216. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  217. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  218. data/lib/moov/models/components/merchantentry.rb +40 -0
  219. data/lib/moov/models/components/merchantentry.rbi +17 -0
  220. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  221. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  222. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  223. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  224. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  225. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  226. data/lib/moov/models/components/mode.rb +3 -1
  227. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  228. data/lib/moov/models/components/moovfee.rb +1 -1
  229. data/lib/moov/models/components/moovfeedetails.rb +5 -5
  230. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  231. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  232. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  233. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  234. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  235. data/lib/moov/models/components/patchbusiness.rb +2 -2
  236. data/lib/moov/models/components/patchwallet.rb +1 -1
  237. data/lib/moov/models/components/paymentlink.rb +4 -6
  238. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +0 -2
  239. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +0 -2
  240. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  241. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  242. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +5 -7
  243. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +5 -7
  244. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  245. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  246. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  247. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  248. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  249. data/lib/moov/models/components/paymentmethodtype.rb +4 -1
  250. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  251. data/lib/moov/models/components/primaryregulator.rb +3 -1
  252. data/lib/moov/models/components/pullfromcardoptions.rb +39 -0
  253. data/lib/moov/models/components/pullfromcardoptions.rbi +15 -0
  254. data/lib/moov/models/components/pullfromcardtransactionstatus.rb +22 -0
  255. data/lib/moov/models/components/pullfromcardtransactionstatus.rbi +11 -0
  256. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +48 -0
  257. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +21 -0
  258. data/lib/moov/models/components/pushdeliveryspeed.rb +3 -1
  259. data/lib/moov/models/components/pushoptions.rb +5 -4
  260. data/lib/moov/models/components/pushoptionsupdate.rb +5 -4
  261. data/lib/moov/models/components/pushtocardoptions.rb +32 -0
  262. data/lib/moov/models/components/pushtocardoptions.rbi +13 -0
  263. data/lib/moov/models/components/pushtocardtransactionstatus.rb +24 -0
  264. data/lib/moov/models/components/pushtocardtransactionstatus.rbi +11 -0
  265. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +48 -0
  266. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +21 -0
  267. data/lib/moov/models/components/puttippresets.rb +1 -1
  268. data/lib/moov/models/components/refundpolicy.rb +3 -1
  269. data/lib/moov/models/components/refundprocessingdetails.rb +32 -0
  270. data/lib/moov/models/components/refundprocessingdetails.rbi +13 -0
  271. data/lib/moov/models/components/refundstatus.rb +3 -1
  272. data/lib/moov/models/components/requestcard.rb +1 -1
  273. data/lib/moov/models/components/requirementerror.rb +2 -2
  274. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  275. data/lib/moov/models/components/requirementid.rb +18 -1
  276. data/lib/moov/models/components/resolutionlink.rb +1 -1
  277. data/lib/moov/models/components/resolutionlinkstatus.rb +3 -1
  278. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  279. data/lib/moov/models/components/reversalamountdetails.rb +3 -1
  280. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  281. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  282. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  283. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  284. data/lib/moov/models/components/schedulewindow.rb +40 -0
  285. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  286. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  287. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  288. data/lib/moov/models/components/seccode.rb +3 -1
  289. data/lib/moov/models/components/sendfunds.rb +6 -2
  290. data/lib/moov/models/components/sendfunds.rbi +2 -0
  291. data/lib/moov/models/components/sendfundserror.rb +6 -2
  292. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  293. data/lib/moov/models/components/sendfundswire.rb +32 -0
  294. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  295. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  296. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  297. data/lib/moov/models/components/sourcesystem.rb +3 -1
  298. data/lib/moov/models/components/statement.rb +6 -2
  299. data/lib/moov/models/components/statement.rbi +2 -0
  300. data/lib/moov/models/components/sweep.rb +1 -1
  301. data/lib/moov/models/components/sweepconfig.rb +3 -3
  302. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  303. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  304. data/lib/moov/models/components/sweepstatus.rb +3 -1
  305. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  306. data/lib/moov/models/components/terminalapplication.rb +2 -2
  307. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  308. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  309. data/lib/moov/models/components/terminalcard.rb +2 -2
  310. data/lib/moov/models/components/ticket.rb +1 -1
  311. data/lib/moov/models/components/ticketstatus.rb +3 -1
  312. data/lib/moov/models/components/tipcalculationbasis.rb +3 -1
  313. data/lib/moov/models/components/tippresets.rb +1 -1
  314. data/lib/moov/models/components/transactionsource.rb +3 -1
  315. data/lib/moov/models/components/transfer.rb +28 -24
  316. data/lib/moov/models/components/transfer.rbi +8 -8
  317. data/lib/moov/models/components/transferauthorization.rb +52 -0
  318. data/lib/moov/models/components/transferauthorization.rbi +23 -0
  319. data/lib/moov/models/components/transferdestination.rb +5 -17
  320. data/lib/moov/models/components/transferdestination.rbi +0 -6
  321. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  322. data/lib/moov/models/components/transferfeepaidby.rb +2 -2
  323. data/lib/moov/models/components/transferoptions.rb +3 -3
  324. data/lib/moov/models/components/transferparty.rb +3 -1
  325. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  326. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  327. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  328. data/lib/moov/models/components/transferpaymentmethodtype.rb +4 -1
  329. data/lib/moov/models/components/transferprocessingdetails.rb +56 -0
  330. data/lib/moov/models/components/transferprocessingdetails.rbi +25 -0
  331. data/lib/moov/models/components/transferrailoptions.rb +52 -0
  332. data/lib/moov/models/components/transferrailoptions.rbi +23 -0
  333. data/lib/moov/models/components/transfersource.rb +9 -17
  334. data/lib/moov/models/components/transfersource.rbi +2 -6
  335. data/lib/moov/models/components/transferstatus.rb +4 -1
  336. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  337. data/lib/moov/models/components/transfertype.rb +28 -0
  338. data/lib/moov/models/components/transfertype.rbi +11 -0
  339. data/lib/moov/models/components/underwriting.rb +12 -6
  340. data/lib/moov/models/components/underwriting.rbi +2 -0
  341. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  342. data/lib/moov/models/components/updateevidence.rb +1 -1
  343. data/lib/moov/models/components/updateinvoice.rb +1 -1
  344. data/lib/moov/models/components/updateissuedcard.rb +8 -2
  345. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  346. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  347. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  348. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  349. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  350. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  351. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  352. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  353. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  354. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  355. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  356. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  357. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  358. data/lib/moov/models/components/updatewebhook.rb +1 -1
  359. data/lib/moov/models/components/upsertunderwriting.rb +11 -5
  360. data/lib/moov/models/components/upsertunderwriting.rbi +2 -0
  361. data/lib/moov/models/components/use.rb +3 -1
  362. data/lib/moov/models/components/verification.rb +3 -3
  363. data/lib/moov/models/components/verificationstatus.rb +3 -1
  364. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  365. data/lib/moov/models/components/wallet.rb +3 -2
  366. data/lib/moov/models/components/walletstatus.rb +3 -1
  367. data/lib/moov/models/components/wallettransaction.rb +3 -3
  368. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  369. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  370. data/lib/moov/models/components/wallettransactiontype.rb +4 -1
  371. data/lib/moov/models/components/wallettype.rb +5 -1
  372. data/lib/moov/models/components/webhook.rb +1 -1
  373. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  374. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  375. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  376. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  377. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  378. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  379. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  380. data/lib/moov/models/components/webhookdatacaptureupdated.rb +44 -0
  381. data/lib/moov/models/components/webhookdatacaptureupdated.rbi +19 -0
  382. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  383. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  384. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  385. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +1 -1
  386. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  387. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  388. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  389. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  390. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  391. data/lib/moov/models/components/webhookdatatransferstatus.rb +4 -0
  392. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  393. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  394. data/lib/moov/models/components/webhookevent.rb +3 -3
  395. data/lib/moov/models/components/webhookeventtype.rb +4 -1
  396. data/lib/moov/models/components/webhookstatus.rb +3 -1
  397. data/lib/moov/models/components/wirecreditpaymentmethod.rb +40 -0
  398. data/lib/moov/models/components/wirecreditpaymentmethod.rbi +17 -0
  399. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rb +18 -0
  400. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rbi +11 -0
  401. data/lib/moov/models/components/wirecredittransferpaymentmethod.rb +40 -0
  402. data/lib/moov/models/components/wirecredittransferpaymentmethod.rbi +17 -0
  403. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  404. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  405. data/lib/moov/models/components/wirefailurecode.rb +28 -0
  406. data/lib/moov/models/components/wirefailurecode.rbi +11 -0
  407. data/lib/moov/models/components/wireoptions.rb +32 -0
  408. data/lib/moov/models/components/wireoptions.rbi +13 -0
  409. data/lib/moov/models/components/wiretransactionstatus.rb +23 -0
  410. data/lib/moov/models/components/wiretransactionstatus.rbi +11 -0
  411. data/lib/moov/models/components/wiretransferprocessingdetails.rb +40 -0
  412. data/lib/moov/models/components/wiretransferprocessingdetails.rbi +17 -0
  413. data/lib/moov/models/components.rb +69 -8
  414. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rb +40 -0
  415. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rbi +17 -0
  416. data/lib/moov/models/errors/capturevalidationerror.rb +68 -0
  417. data/lib/moov/models/errors/capturevalidationerror.rbi +31 -0
  418. data/lib/moov/models/errors/cardacquiringrefund_error.rb +12 -8
  419. data/lib/moov/models/errors/cardacquiringrefund_error.rbi +4 -2
  420. data/lib/moov/models/errors/imagemetadata_error.rb +61 -0
  421. data/lib/moov/models/errors/imagemetadata_error.rbi +27 -0
  422. data/lib/moov/models/errors/transfer_error.rb +28 -24
  423. data/lib/moov/models/errors/transfer_error.rbi +8 -8
  424. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  425. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  426. data/lib/moov/models/errors/upsertunderwritingerror.rb +6 -2
  427. data/lib/moov/models/errors/upsertunderwritingerror.rbi +2 -0
  428. data/lib/moov/models/errors.rb +3 -0
  429. data/lib/moov/models/operations/createbankaccountattestation_request.rb +40 -0
  430. data/lib/moov/models/operations/createbankaccountattestation_request.rbi +17 -0
  431. data/lib/moov/models/operations/createbankaccountattestation_response.rb +48 -0
  432. data/lib/moov/models/operations/createbankaccountattestation_response.rbi +21 -0
  433. data/lib/moov/models/operations/createcancellation_request.rb +6 -2
  434. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  435. data/lib/moov/models/operations/createcapture_request.rb +44 -0
  436. data/lib/moov/models/operations/createcapture_request.rbi +19 -0
  437. data/lib/moov/models/operations/createcapture_response.rb +48 -0
  438. data/lib/moov/models/operations/createcapture_response.rbi +21 -0
  439. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  440. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rb +41 -0
  441. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rbi +17 -0
  442. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rb +48 -0
  443. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rbi +21 -0
  444. data/lib/moov/models/operations/getcapture_request.rb +40 -0
  445. data/lib/moov/models/operations/getcapture_request.rbi +17 -0
  446. data/lib/moov/models/operations/getcapture_response.rb +48 -0
  447. data/lib/moov/models/operations/getcapture_response.rbi +21 -0
  448. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  449. data/lib/moov/models/operations/initiaterefund_request.rb +6 -6
  450. data/lib/moov/models/operations/initiaterefund_request.rbi +2 -2
  451. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  452. data/lib/moov/models/operations/listbankaccountattestations_request.rb +36 -0
  453. data/lib/moov/models/operations/listbankaccountattestations_request.rbi +15 -0
  454. data/lib/moov/models/operations/listbankaccountattestations_response.rb +48 -0
  455. data/lib/moov/models/operations/listbankaccountattestations_response.rbi +21 -0
  456. data/lib/moov/models/operations/listcaptures_request.rb +36 -0
  457. data/lib/moov/models/operations/listcaptures_request.rbi +15 -0
  458. data/lib/moov/models/operations/listcaptures_response.rb +48 -0
  459. data/lib/moov/models/operations/listcaptures_response.rbi +21 -0
  460. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  461. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  462. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  463. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  464. data/lib/moov/models/operations/listinvoices_request.rb +1 -1
  465. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  466. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  467. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  468. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  469. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  470. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  471. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  472. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  473. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  474. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  475. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  476. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  477. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  478. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  479. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  480. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  481. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  482. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  483. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  484. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  485. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  486. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  487. data/lib/moov/models/operations.rb +13 -0
  488. data/lib/moov/payment_methods.rb +2 -2
  489. data/lib/moov/sdkconfiguration.rb +3 -3
  490. data/lib/moov/transfers.rb +446 -10
  491. data/lib/moov/utils/retries.rb +41 -2
  492. data/lib/moov/utils/utils.rb +6 -2
  493. data/lib/moov_ruby.rb +1 -1
  494. metadata +170 -16
  495. data/lib/moov/models/components/achtransactiondetails.rb +0 -92
  496. data/lib/moov/models/components/achtransactiondetails.rbi +0 -43
  497. data/lib/moov/models/components/cardacquiringdispute.rb +0 -40
  498. data/lib/moov/models/components/cardacquiringdispute.rbi +0 -17
  499. data/lib/moov/models/components/cardtransactiondetails.rb +0 -93
  500. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -41
  501. data/lib/moov/models/components/instantbanktransactiondetails.rb +0 -64
  502. data/lib/moov/models/components/refundcarddetails.rb +0 -56
  503. data/lib/moov/models/components/refundcarddetails.rbi +0 -25
@@ -14,20 +14,29 @@ module Moov
14
14
 
15
15
 
16
16
  field :transfer_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID'), required: true } }
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.open_enum_from_string(Models::Components::TransferType, false) } }
17
19
 
18
20
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
19
21
 
22
+ field :options, Models::Components::TransferRailOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('options'), required: true } }
23
+
24
+ field :processing_details, Models::Components::TransferProcessingDetails, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('processingDetails'), required: true } }
25
+
20
26
  field :source, Crystalline::Nilable.new(Models::Components::TransferSource), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('source') } }
21
27
 
22
28
  field :destination, Crystalline::Nilable.new(Models::Components::TransferDestination), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination') } }
23
29
 
24
30
  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
31
  # 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) } }
32
+ 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
33
  # 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
-
30
- field :amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
34
+ 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) } }
35
+ # Amount associated with this transfer.
36
+ # In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.
37
+ # For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
38
+ # For other transfer types, this is the transfer amount.
39
+ field :amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
31
40
  # An optional description of the transfer that is used on receipts and for your own internal use.
32
41
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
33
42
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -35,23 +44,15 @@ module Moov
35
44
  # Total or markup fee.
36
45
  field :facilitator_fee, Crystalline::Nilable.new(Models::Components::FacilitatorFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFee') } }
37
46
  # Fees charged to your platform account for transfers.
38
- field :moov_fee, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFee') } }
39
- # Same as `moovFee`, but a decimal-formatted numerical string that represents up to 9 decimal place precision.
40
- field :moov_fee_decimal, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFeeDecimal') } }
47
+ field :moov_fee, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFee') } }
41
48
  # Processing and pass-through costs that add up to the moovFee.
42
49
  field :moov_fee_details, Crystalline::Nilable.new(Models::Components::MoovFeeDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovFeeDetails') } }
43
50
 
44
51
  field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('groupID') } }
45
52
 
46
- field :cancellations, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::Cancellation)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cancellations') } }
47
-
48
- field :refunded_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundedAmount') } }
49
-
50
- field :refunds, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CardAcquiringRefund)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refunds') } }
51
-
52
- field :disputed_amount, Crystalline::Nilable.new(Models::Components::Amount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputedAmount') } }
53
+ field :refunded_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('refundedAmount') } }
53
54
 
54
- field :disputes, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CardAcquiringDispute)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputes') } }
55
+ field :disputed_amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('disputedAmount') } }
55
56
 
56
57
  field :sweep_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sweepID') } }
57
58
 
@@ -67,11 +68,17 @@ module Moov
67
68
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
68
69
 
69
70
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
71
+ # Authorization amounts.
72
+ # This field is present only for an auth-capture `card-payment` transfer.
73
+ field :authorization, Crystalline::Nilable.new(Models::Components::TransferAuthorization), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorization') } }
70
74
 
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)
75
+ sig { params(transfer_id: ::String, transfer_type: Models::Components::TransferType, created_on: ::DateTime, options: Models::Components::TransferRailOptions, processing_details: Models::Components::TransferProcessingDetails, 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::AmountDecimal), 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), 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), amount_details: T.nilable(Models::Components::TransferAmountDetails), authorization: T.nilable(Models::Components::TransferAuthorization)).void }
76
+ def initialize(transfer_id:, transfer_type:, created_on:, options:, processing_details:, 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_details: nil, group_id: nil, refunded_amount: nil, disputed_amount: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, amount_details: nil, authorization: nil)
73
77
  @transfer_id = transfer_id
78
+ @transfer_type = transfer_type
74
79
  @created_on = created_on
80
+ @options = options
81
+ @processing_details = processing_details
75
82
  @source = source
76
83
  @destination = destination
77
84
  @completed_on = completed_on
@@ -82,14 +89,10 @@ module Moov
82
89
  @metadata = metadata
83
90
  @facilitator_fee = facilitator_fee
84
91
  @moov_fee = moov_fee
85
- @moov_fee_decimal = moov_fee_decimal
86
92
  @moov_fee_details = moov_fee_details
87
93
  @group_id = group_id
88
- @cancellations = cancellations
89
94
  @refunded_amount = refunded_amount
90
- @refunds = refunds
91
95
  @disputed_amount = disputed_amount
92
- @disputes = disputes
93
96
  @sweep_id = sweep_id
94
97
  @schedule_id = schedule_id
95
98
  @occurrence_id = occurrence_id
@@ -97,13 +100,17 @@ module Moov
97
100
  @foreign_id = foreign_id
98
101
  @line_items = line_items
99
102
  @amount_details = amount_details
103
+ @authorization = authorization
100
104
  end
101
105
 
102
106
  sig { params(other: T.untyped).returns(T::Boolean) }
103
107
  def ==(other)
104
108
  return false unless other.is_a? self.class
105
109
  return false unless @transfer_id == other.transfer_id
110
+ return false unless @transfer_type == other.transfer_type
106
111
  return false unless @created_on == other.created_on
112
+ return false unless @options == other.options
113
+ return false unless @processing_details == other.processing_details
107
114
  return false unless @source == other.source
108
115
  return false unless @destination == other.destination
109
116
  return false unless @completed_on == other.completed_on
@@ -114,14 +121,10 @@ module Moov
114
121
  return false unless @metadata == other.metadata
115
122
  return false unless @facilitator_fee == other.facilitator_fee
116
123
  return false unless @moov_fee == other.moov_fee
117
- return false unless @moov_fee_decimal == other.moov_fee_decimal
118
124
  return false unless @moov_fee_details == other.moov_fee_details
119
125
  return false unless @group_id == other.group_id
120
- return false unless @cancellations == other.cancellations
121
126
  return false unless @refunded_amount == other.refunded_amount
122
- return false unless @refunds == other.refunds
123
127
  return false unless @disputed_amount == other.disputed_amount
124
- return false unless @disputes == other.disputes
125
128
  return false unless @sweep_id == other.sweep_id
126
129
  return false unless @schedule_id == other.schedule_id
127
130
  return false unless @occurrence_id == other.occurrence_id
@@ -129,6 +132,7 @@ module Moov
129
132
  return false unless @foreign_id == other.foreign_id
130
133
  return false unless @line_items == other.line_items
131
134
  return false unless @amount_details == other.amount_details
135
+ return false unless @authorization == other.authorization
132
136
  true
133
137
  end
134
138
  end
@@ -10,8 +10,14 @@ end
10
10
  class Moov::Models::Components::CreatedTransfer
11
11
  def transfer_id(); end
12
12
  def transfer_id=(str_); end
13
+ def transfer_type(); end
14
+ def transfer_type=(str_); end
13
15
  def created_on(); end
14
16
  def created_on=(str_); end
17
+ def options(); end
18
+ def options=(str_); end
19
+ def processing_details(); end
20
+ def processing_details=(str_); end
15
21
  def source(); end
16
22
  def source=(str_); end
17
23
  def destination(); end
@@ -32,22 +38,14 @@ class Moov::Models::Components::CreatedTransfer
32
38
  def facilitator_fee=(str_); end
33
39
  def moov_fee(); end
34
40
  def moov_fee=(str_); end
35
- def moov_fee_decimal(); end
36
- def moov_fee_decimal=(str_); end
37
41
  def moov_fee_details(); end
38
42
  def moov_fee_details=(str_); end
39
43
  def group_id(); end
40
44
  def group_id=(str_); end
41
- def cancellations(); end
42
- def cancellations=(str_); end
43
45
  def refunded_amount(); end
44
46
  def refunded_amount=(str_); end
45
- def refunds(); end
46
- def refunds=(str_); end
47
47
  def disputed_amount(); end
48
48
  def disputed_amount=(str_); end
49
- def disputes(); end
50
- def disputes=(str_); end
51
49
  def sweep_id(); end
52
50
  def sweep_id=(str_); end
53
51
  def schedule_id(); end
@@ -62,4 +60,6 @@ class Moov::Models::Components::CreatedTransfer
62
60
  def line_items=(str_); end
63
61
  def amount_details(); end
64
62
  def amount_details=(str_); end
63
+ def authorization(); end
64
+ def authorization=(str_); end
65
65
  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,19 +9,22 @@ 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.
18
- field :amount, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
17
+ # Amount to refund. If omitted, the original transfer's full amount will be refunded.
18
+ field :amount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
19
+ # ID of the capture to refund. This field is only relevant for an auth-capture `card-payment` transfer.
20
+ field :capture_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('captureID') } }
19
21
  # Breakdown of the refunded amount.
20
22
  field :amount_details, Crystalline::Nilable.new(Models::Components::RefundAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
21
23
 
22
- sig { params(amount: T.nilable(::Integer), amount_details: T.nilable(Models::Components::RefundAmountDetails)).void }
23
- def initialize(amount: nil, amount_details: nil)
24
+ sig { params(amount: T.nilable(Models::Components::AmountDecimal), capture_id: T.nilable(::String), amount_details: T.nilable(Models::Components::RefundAmountDetails)).void }
25
+ def initialize(amount: nil, capture_id: nil, amount_details: nil)
24
26
  @amount = amount
27
+ @capture_id = capture_id
25
28
  @amount_details = amount_details
26
29
  end
27
30
 
@@ -29,6 +32,7 @@ module Moov
29
32
  def ==(other)
30
33
  return false unless other.is_a? self.class
31
34
  return false unless @amount == other.amount
35
+ return false unless @capture_id == other.capture_id
32
36
  return false unless @amount_details == other.amount_details
33
37
  true
34
38
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::CreateRefund
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def capture_id(); end
14
+ def capture_id=(str_); end
13
15
  def amount_details(); end
14
16
  def amount_details=(str_); end
15
17
  end
@@ -12,12 +12,15 @@ 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.
16
- field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
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.
19
+ field :amount, Models::Components::AmountDecimal, { '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') } }
19
22
 
20
- sig { params(amount: ::Integer, amount_details: T.nilable(Models::Components::ReversalAmountDetails)).void }
23
+ sig { params(amount: Models::Components::AmountDecimal, amount_details: T.nilable(Models::Components::ReversalAmountDetails)).void }
21
24
  def initialize(amount:, amount_details: nil)
22
25
  @amount = amount
23
26
  @amount_details = amount_details
@@ -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.
@@ -17,9 +17,9 @@ module Moov
17
17
  # The final stage of a transfer and the ultimate recipient of the funds.
18
18
  field :destination, Models::Components::CreateTransferDestination, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
19
19
 
20
- field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
- # Total or markup fee.
22
- field :facilitator_fee, Crystalline::Nilable.new(Models::Components::FacilitatorFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFee') } }
20
+ field :amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
+ # Total or markup fee to apply when creating a transfer.
22
+ field :facilitator_fee, Crystalline::Nilable.new(Models::Components::CreateTransferFacilitatorFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('facilitatorFee') } }
23
23
  # An optional description of the transfer that is used on receipts and for your own internal use.
24
24
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
25
25
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -31,10 +31,10 @@ 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
- 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 }
37
+ sig { params(source: Models::Components::CreateTransferSource, destination: Models::Components::CreateTransferDestination, amount: Models::Components::AmountDecimal, facilitator_fee: T.nilable(Models::Components::CreateTransferFacilitatorFee), 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 }
38
38
  def initialize(source:, destination:, amount:, facilitator_fee: nil, description: nil, metadata: nil, foreign_id: nil, line_items: nil, amount_details: nil, fee_paid_by: nil)
39
39
  @source = source
40
40
  @destination = destination
@@ -18,12 +18,15 @@ module Moov
18
18
  field :card_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
19
19
 
20
20
  field :ach_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationACH), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
21
+ # Wire-specific options supplied when creating a transfer.
22
+ field :wire_details, Crystalline::Nilable.new(Models::Components::CreateTransferDestinationWire), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wireDetails') } }
21
23
 
22
- sig { params(payment_method_id: ::String, card_details: T.nilable(Models::Components::CreateTransferDestinationCard), ach_details: T.nilable(Models::Components::CreateTransferDestinationACH)).void }
23
- def initialize(payment_method_id:, card_details: nil, ach_details: nil)
24
+ sig { params(payment_method_id: ::String, card_details: T.nilable(Models::Components::CreateTransferDestinationCard), ach_details: T.nilable(Models::Components::CreateTransferDestinationACH), wire_details: T.nilable(Models::Components::CreateTransferDestinationWire)).void }
25
+ def initialize(payment_method_id:, card_details: nil, ach_details: nil, wire_details: nil)
24
26
  @payment_method_id = payment_method_id
25
27
  @card_details = card_details
26
28
  @ach_details = ach_details
29
+ @wire_details = wire_details
27
30
  end
28
31
 
29
32
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -32,6 +35,7 @@ module Moov
32
35
  return false unless @payment_method_id == other.payment_method_id
33
36
  return false unless @card_details == other.card_details
34
37
  return false unless @ach_details == other.ach_details
38
+ return false unless @wire_details == other.wire_details
35
39
  true
36
40
  end
37
41
  end
@@ -14,4 +14,6 @@ class Moov::Models::Components::CreateTransferDestination
14
14
  def card_details=(str_); end
15
15
  def ach_details(); end
16
16
  def ach_details=(str_); end
17
+ def wire_details(); end
18
+ def wire_details=(str_); end
17
19
  end
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # Wire-specific options supplied when creating a transfer.
11
+ class CreateTransferDestinationWire
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Optional beneficiary reference for the wire transfer. Maximum 15 characters.
16
+ field :beneficiary_reference, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('beneficiaryReference') } }
17
+
18
+ sig { params(beneficiary_reference: T.nilable(::String)).void }
19
+ def initialize(beneficiary_reference: nil)
20
+ @beneficiary_reference = beneficiary_reference
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @beneficiary_reference == other.beneficiary_reference
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferDestinationWire
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferDestinationWire
11
+ def beneficiary_reference(); end
12
+ def beneficiary_reference=(str_); end
13
+ end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # Total or markup fee to apply when creating a transfer.
11
+ class CreateTransferFacilitatorFee
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Total facilitator fee. Only either `total` or `markup` can be set.
16
+ field :total, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('total') } }
17
+ # Markup facilitator fee. Only either `total` or `markup` can be set.
18
+ field :markup, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('markup') } }
19
+
20
+ sig { params(total: T.nilable(Models::Components::AmountDecimal), markup: T.nilable(Models::Components::AmountDecimal)).void }
21
+ def initialize(total: nil, markup: nil)
22
+ @total = total
23
+ @markup = markup
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @total == other.total
30
+ return false unless @markup == other.markup
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::CreateTransferFacilitatorFee
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CreateTransferFacilitatorFee
11
+ def total(); end
12
+ def total=(str_); end
13
+ def markup(); end
14
+ def markup=(str_); end
15
+ end
@@ -17,9 +17,9 @@ module Moov
17
17
 
18
18
  field :destination, Models::Components::SourceDestinationOptions, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
19
19
 
20
- field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
20
+ field :amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
21
 
22
- sig { params(source: Models::Components::SourceDestinationOptions, destination: Models::Components::SourceDestinationOptions, amount: Models::Components::Amount).void }
22
+ sig { params(source: Models::Components::SourceDestinationOptions, destination: Models::Components::SourceDestinationOptions, amount: Models::Components::AmountDecimal).void }
23
23
  def initialize(source:, destination:, amount:)
24
24
  @source = source
25
25
  @destination = destination
@@ -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