moov_ruby 25.5.12 → 25.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +1 -1
  4. data/lib/moov/card_issuing.rb +1 -1
  5. data/lib/moov/enriched_address.rb +1 -1
  6. data/lib/moov/enriched_profile.rb +1 -1
  7. data/lib/moov/images.rb +1 -1
  8. data/lib/moov/institutions.rb +2 -2
  9. data/lib/moov/models/components/account.rb +2 -2
  10. data/lib/moov/models/components/accountnameverification.rb +4 -4
  11. data/lib/moov/models/components/accounttype.rb +3 -1
  12. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  13. data/lib/moov/models/components/achreturncode.rb +3 -1
  14. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  15. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  16. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  17. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  18. data/lib/moov/models/components/applepayresponse.rb +2 -2
  19. data/lib/moov/models/components/applicationscope.rb +4 -2
  20. data/lib/moov/models/components/bankaccount.rb +4 -4
  21. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  22. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  23. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  24. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  25. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  26. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  27. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  28. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  29. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  30. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  31. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  32. data/lib/moov/models/components/billablefee.rb +2 -2
  33. data/lib/moov/models/components/billingadjustment.rb +40 -0
  34. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  35. data/lib/moov/models/components/billingsummary.rb +8 -4
  36. data/lib/moov/models/components/billingsummary.rbi +2 -0
  37. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  38. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  39. data/lib/moov/models/components/businessprofile.rb +2 -2
  40. data/lib/moov/models/components/businesstype.rb +3 -1
  41. data/lib/moov/models/components/calltoaction.rb +3 -1
  42. data/lib/moov/models/components/cancellation.rb +2 -2
  43. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  44. data/lib/moov/models/components/capability.rb +2 -2
  45. data/lib/moov/models/components/capabilityid.rb +3 -1
  46. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  47. data/lib/moov/models/components/card.rb +4 -4
  48. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  49. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  50. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  51. data/lib/moov/models/components/cardbrand.rb +3 -1
  52. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  53. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  54. data/lib/moov/models/components/cardtransactionfailurecode.rb +3 -1
  55. data/lib/moov/models/components/cardtransactionstatus.rb +3 -1
  56. data/lib/moov/models/components/cardtype.rb +3 -1
  57. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  58. data/lib/moov/models/components/cardverification.rb +3 -3
  59. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  60. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  61. data/lib/moov/models/components/createaccount.rb +2 -2
  62. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  63. data/lib/moov/models/components/createdtransfer.rb +12 -5
  64. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  65. data/lib/moov/models/components/createevidencetext.rb +1 -1
  66. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  67. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  68. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  69. data/lib/moov/models/components/createrefund.rb +2 -2
  70. data/lib/moov/models/components/createreversal.rb +4 -1
  71. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  72. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  73. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  74. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  75. data/lib/moov/models/components/createwebhook.rb +1 -1
  76. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  77. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  78. data/lib/moov/models/components/dispute.rb +2 -2
  79. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  80. data/lib/moov/models/components/disputephase.rb +3 -1
  81. data/lib/moov/models/components/disputestatus.rb +3 -1
  82. data/lib/moov/models/components/document.rb +1 -1
  83. data/lib/moov/models/components/documenttype.rb +3 -1
  84. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  85. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  86. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  87. data/lib/moov/models/components/evidencetype.rb +3 -1
  88. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  89. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  90. data/lib/moov/models/components/feecategory.rb +3 -1
  91. data/lib/moov/models/components/feemodel.rb +3 -1
  92. data/lib/moov/models/components/feeplan.rb +1 -1
  93. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  94. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  95. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  96. data/lib/moov/models/components/filedetails.rb +2 -2
  97. data/lib/moov/models/components/filepurpose.rb +3 -1
  98. data/lib/moov/models/components/filestatus.rb +3 -1
  99. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  100. data/lib/moov/models/components/fullissuedcard.rb +4 -3
  101. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  102. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  103. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  104. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  105. data/lib/moov/models/components/issuedcard.rb +4 -3
  106. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  107. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  108. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  109. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  110. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  111. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  112. data/lib/moov/models/components/issuingcontrols.rb +1 -1
  113. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  114. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  115. data/lib/moov/models/components/mode.rb +3 -1
  116. data/lib/moov/models/components/moovfee.rb +1 -1
  117. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  118. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  119. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  120. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  121. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  122. data/lib/moov/models/components/patchbusiness.rb +2 -2
  123. data/lib/moov/models/components/patchwallet.rb +1 -1
  124. data/lib/moov/models/components/paymentlink.rb +4 -4
  125. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  126. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  127. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +1 -1
  128. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +1 -1
  129. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  130. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  131. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  132. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  133. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  134. data/lib/moov/models/components/paymentmethodtype.rb +3 -1
  135. data/lib/moov/models/components/primaryregulator.rb +3 -1
  136. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  137. data/lib/moov/models/components/refundcardstatus.rb +3 -1
  138. data/lib/moov/models/components/refundstatus.rb +3 -1
  139. data/lib/moov/models/components/requestcard.rb +1 -1
  140. data/lib/moov/models/components/requirementerror.rb +2 -2
  141. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  142. data/lib/moov/models/components/requirementid.rb +3 -1
  143. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  144. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  145. data/lib/moov/models/components/rtpfailurecode.rb +3 -1
  146. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  147. data/lib/moov/models/components/rtptransactiondetails.rb +2 -2
  148. data/lib/moov/models/components/rtptransactionstatus.rb +3 -1
  149. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  150. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  151. data/lib/moov/models/components/seccode.rb +3 -1
  152. data/lib/moov/models/components/statement.rb +6 -2
  153. data/lib/moov/models/components/statement.rbi +2 -0
  154. data/lib/moov/models/components/sweep.rb +1 -1
  155. data/lib/moov/models/components/sweepconfig.rb +3 -3
  156. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  157. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  158. data/lib/moov/models/components/sweepstatus.rb +3 -1
  159. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  160. data/lib/moov/models/components/terminalapplication.rb +2 -2
  161. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  162. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  163. data/lib/moov/models/components/terminalcard.rb +2 -2
  164. data/lib/moov/models/components/transactionsource.rb +3 -1
  165. data/lib/moov/models/components/transfer.rb +12 -5
  166. data/lib/moov/models/components/transfer.rbi +2 -0
  167. data/lib/moov/models/components/transfercapture.rb +36 -0
  168. data/lib/moov/models/components/transfercapture.rbi +15 -0
  169. data/lib/moov/models/components/transferdestination.rb +1 -1
  170. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  171. data/lib/moov/models/components/transferparty.rb +3 -1
  172. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  173. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  174. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  175. data/lib/moov/models/components/transferpaymentmethodtype.rb +3 -1
  176. data/lib/moov/models/components/transfersource.rb +1 -1
  177. data/lib/moov/models/components/transferstatus.rb +3 -1
  178. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  179. data/lib/moov/models/components/underwriting.rb +1 -1
  180. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  181. data/lib/moov/models/components/updateevidence.rb +1 -1
  182. data/lib/moov/models/components/updateissuedcard.rb +2 -0
  183. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  184. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  185. data/lib/moov/models/components/updatewebhook.rb +1 -1
  186. data/lib/moov/models/components/use.rb +3 -1
  187. data/lib/moov/models/components/verification.rb +3 -3
  188. data/lib/moov/models/components/verificationstatus.rb +3 -1
  189. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  190. data/lib/moov/models/components/wallet.rb +3 -2
  191. data/lib/moov/models/components/walletstatus.rb +3 -1
  192. data/lib/moov/models/components/wallettransaction.rb +3 -3
  193. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  194. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  195. data/lib/moov/models/components/wallettransactiontype.rb +3 -1
  196. data/lib/moov/models/components/wallettype.rb +5 -1
  197. data/lib/moov/models/components/webhook.rb +1 -1
  198. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  199. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  200. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  201. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  202. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  203. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  204. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  205. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  206. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  207. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  208. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  209. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  210. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  211. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  212. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  213. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  214. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  215. data/lib/moov/models/components/webhookevent.rb +1 -1
  216. data/lib/moov/models/components/webhookeventtype.rb +3 -1
  217. data/lib/moov/models/components/webhookstatus.rb +3 -1
  218. data/lib/moov/models/components.rb +4 -1
  219. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  220. data/lib/moov/models/errors/transfer_error.rb +12 -5
  221. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  222. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  223. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  224. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  225. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  226. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  227. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  228. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  229. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  230. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  231. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  232. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  233. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  234. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  235. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  236. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  237. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  238. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  239. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  240. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  241. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  242. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  243. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  244. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  245. data/lib/moov/sdkconfiguration.rb +3 -3
  246. data/lib/moov/transfers.rb +11 -5
  247. data/lib/moov/utils/retries.rb +41 -2
  248. data/lib/moov/utils/utils.rb +6 -2
  249. metadata +8 -2
@@ -32,8 +32,11 @@ module Moov
32
32
  DESTINATION_RETURNED = new('destination.returned')
33
33
  DESTINATION_ORIGINATED = new('destination.originated')
34
34
  DESTINATION_CONFIRMED = new('destination.confirmed')
35
+ DESTINATION_SETTLED = new('destination.settled')
35
36
  DESTINATION_FAILED = new('destination.failed')
37
+ DESTINATION_CANCELED = new('destination.canceled')
36
38
  DESTINATION_ACCEPTED_WITHOUT_POSTING = new('destination.accepted-without-posting')
39
+ DESTINATION_DEFERRED = new('destination.deferred')
37
40
  end
38
41
  end
39
42
  end
@@ -19,7 +19,7 @@ module Moov
19
19
 
20
20
  field :transaction_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transactionID'), required: true } }
21
21
 
22
- field :status, Models::Components::WalletTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletTransactionStatus, false) } }
22
+ field :status, Models::Components::WalletTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletTransactionStatus, false) } }
23
23
 
24
24
  field :available_balance, Crystalline::Nilable.new(Models::Components::WalletAvailableBalance), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('availableBalance') } }
25
25
 
@@ -19,7 +19,7 @@ module Moov
19
19
  # Status of a wallet.
20
20
  # - `active`: The wallet is available for use and has an enabled payment method.
21
21
  # - `closed`: The wallet is no longer active and the corresponding payment method has been disabled.
22
- field :status, Models::Components::WalletStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletStatus, false) } }
22
+ field :status, Models::Components::WalletStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletStatus, false) } }
23
23
 
24
24
  sig { params(account_id: ::String, wallet_id: ::String, status: Models::Components::WalletStatus).void }
25
25
  def initialize(account_id:, wallet_id:, status:)
@@ -15,7 +15,7 @@ module Moov
15
15
  # Unique identifier for the webhook event.
16
16
  field :event_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventID'), required: true } }
17
17
  # The type of event that occurred.
18
- field :type, Models::Components::WebhookEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WebhookEventType, false) } }
18
+ field :type, Models::Components::WebhookEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('type'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WebhookEventType, false) } }
19
19
  # The data for the webhook event. The contents are based on the event type.
20
20
  field :data, Crystalline::Union.new(Models::Components::WebhookDataAccountCreated, Models::Components::WebhookDataAccountUpdated, Models::Components::WebhookDataAccountDisconnected, Models::Components::WebhookDataBalanceUpdated, Models::Components::WebhookDataBankAccountCreated, Models::Components::WebhookDataBankAccountUpdated, Models::Components::WebhookDataBankAccountDeleted, Models::Components::WebhookDataCancellationCreated, Models::Components::WebhookDataCancellationUpdated, Models::Components::WebhookDataCardAutoUpdated, Models::Components::WebhookDataCapabilityRequested, Models::Components::WebhookDataCapabilityUpdated, Models::Components::WebhookDataDisputeCreated, Models::Components::WebhookDataDisputeUpdated, Models::Components::WebhookDataInvoiceCreated, Models::Components::WebhookDataInvoiceUpdated, Models::Components::WebhookDataNetworkIDUpdated, Models::Components::WebhookDataPaymentMethodEnabled, Models::Components::WebhookDataPaymentMethodDisabled, Models::Components::WebhookDataRefundCreated, Models::Components::WebhookDataRefundUpdated, Models::Components::WebhookDataRepresentativeCreated, Models::Components::WebhookDataRepresentativeUpdated, Models::Components::WebhookDataRepresentativeDisabled, Models::Components::WebhookDataSweepCreated, Models::Components::WebhookDataSweepUpdated, Models::Components::WebhookDataTerminalApplicationCreated, Models::Components::WebhookDataTerminalApplicationUpdated, Models::Components::WebhookDataTicketCreated, Models::Components::WebhookDataTicketUpdated, Models::Components::WebhookDataTicketMessageAdded, Models::Components::WebhookDataTransferCreated, Models::Components::WebhookDataTransferUpdated, Models::Components::WebhookDataWalletCreated, Models::Components::WebhookDataWalletUpdated, Models::Components::WebhookDataWalletTransactionUpdated, Models::Components::WebhookBillingStatementCreated, Models::Components::WebhookDataAuthorizationExpiring), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('data'), required: true } }
21
21
 
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # WebhookEventType - The type of event that occurred.
11
- class WebhookEventType < T::Enum
11
+ class WebhookEventType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  WILDCARD_ = new('*')
14
15
  ACCOUNT_CREATED = new('account.created')
@@ -50,6 +51,7 @@ module Moov
50
51
  BILLING_STATEMENT_CREATED = new('billingStatement.created')
51
52
  AUTHORIZATION_EXPIRING = new('authorization.expiring')
52
53
  end
54
+ open!
53
55
  end
54
56
  end
55
57
  end
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # WebhookStatus - The status of a webhook.
11
- class WebhookStatus < T::Enum
11
+ class WebhookStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  ENABLED = new('enabled')
14
15
  DISABLED = new('disabled')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -47,6 +47,7 @@ module Moov
47
47
  autoload :AddressSuggestion, 'moov/models/components/addresssuggestion.rb'
48
48
  autoload :AddressUpdate, 'moov/models/components/addressupdate.rb'
49
49
  autoload :Adjustment, 'moov/models/components/adjustment.rb'
50
+ autoload :AdjustmentFees, 'moov/models/components/adjustmentfees.rb'
50
51
  autoload :Amount, 'moov/models/components/amount.rb'
51
52
  autoload :AmountDecimal, 'moov/models/components/amountdecimal.rb'
52
53
  autoload :AmountDecimalValidationError, 'moov/models/components/amountdecimalvalidationerror.rb'
@@ -83,12 +84,14 @@ module Moov
83
84
  autoload :BasicPaymentMethod, 'moov/models/components/basicpaymentmethod.rb'
84
85
  autoload :BatchGetTransfersRequest, 'moov/models/components/batchgettransfersrequest.rb'
85
86
  autoload :BillableFee, 'moov/models/components/billablefee.rb'
87
+ autoload :BillingAdjustment, 'moov/models/components/billingadjustment.rb'
86
88
  autoload :BillingCountAndAmount, 'moov/models/components/billingcountandamount.rb'
87
89
  autoload :BillingInterchangeProgramFee, 'moov/models/components/billinginterchangeprogramfee.rb'
88
90
  autoload :BillingSummary, 'moov/models/components/billingsummary.rb'
89
91
  autoload :BillingSummaryDetails, 'moov/models/components/billingsummarydetails.rb'
90
92
  autoload :BillingSummaryDetailsVolumeAmount, 'moov/models/components/billingsummarydetails_volumeamount.rb'
91
93
  autoload :BillingSummaryInterchange, 'moov/models/components/billingsummaryinterchange.rb'
94
+ autoload :BillingSummaryAdjustmentFees, 'moov/models/components/billingsummary_adjustmentfees.rb'
92
95
  autoload :BillingSummaryPlatformFees, 'moov/models/components/billingsummary_platformfees.rb'
93
96
  autoload :BillingSummaryVolumeAmount, 'moov/models/components/billingsummary_volumeamount.rb'
94
97
  autoload :BirthDate, 'moov/models/components/birthdate.rb'
@@ -459,6 +462,7 @@ module Moov
459
462
  autoload :Transfer, 'moov/models/components/transfer.rb'
460
463
  autoload :TransferACHAddendaRecord, 'moov/models/components/transferachaddendarecord.rb'
461
464
  autoload :TransferAccount, 'moov/models/components/transferaccount.rb'
465
+ autoload :TransferCapture, 'moov/models/components/transfercapture.rb'
462
466
  autoload :TransferDestination, 'moov/models/components/transferdestination.rb'
463
467
  autoload :TransferEntryMode, 'moov/models/components/transferentrymode.rb'
464
468
  autoload :TransferFailureReason, 'moov/models/components/transferfailurereason.rb'
@@ -561,7 +565,6 @@ module Moov
561
565
  autoload :WireServices, 'moov/models/components/wireservices.rb'
562
566
  autoload :AchDetails, 'moov/models/components/achdetails.rb'
563
567
  autoload :AchPayment, 'moov/models/components/achpayment.rb'
564
- autoload :AdjustmentFees, 'moov/models/components/adjustmentfees.rb'
565
568
  autoload :BillingAddress, 'moov/models/components/billingaddress.rb'
566
569
  autoload :CardAcquiring, 'moov/models/components/cardacquiring.rb'
567
570
  autoload :CardDetails, 'moov/models/components/carddetails.rb'
@@ -19,7 +19,7 @@ module Moov
19
19
 
20
20
  field :updated_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('updatedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
21
21
 
22
- field :status, Models::Components::RefundStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::RefundStatus, false) } }
22
+ field :status, Models::Components::RefundStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::RefundStatus, false) } }
23
23
 
24
24
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
25
25
 
@@ -21,13 +21,16 @@ module Moov
21
21
 
22
22
  field :destination, Models::Components::TransferDestination, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('destination'), required: true } }
23
23
  # Status of a transfer.
24
- field :status, Models::Components::TransferStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferStatus, false) } }
25
-
24
+ field :status, Models::Components::TransferStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferStatus, false) } }
25
+ # Amount associated with this transfer.
26
+ # In v2026.10 and later, an auth-capture `card-payment` transfer reports the approved authorization amount until a final capture is created.
27
+ # For these transfers, when a final capture is created, this is updated to the cumulative captured amount.
28
+ # For other transfer types, this is the transfer amount.
26
29
  field :amount, Models::Components::Amount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
27
30
 
28
31
  field :completed_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('completedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
29
32
  # Reason for a transfer's failure.
30
- field :failure_reason, Crystalline::Nilable.new(Models::Components::TransferFailureReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureReason'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferFailureReason, true) } }
33
+ field :failure_reason, Crystalline::Nilable.new(Models::Components::TransferFailureReason), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureReason'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferFailureReason, true) } }
31
34
  # An optional description of the transfer that is used on receipts and for your own internal use.
32
35
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
33
36
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -69,11 +72,13 @@ module Moov
69
72
  # An optional collection of line items for a transfer.
70
73
  # When line items are provided, their total plus tax must equal the transfer amount.
71
74
  field :line_items, Crystalline::Nilable.new(Models::Components::TransferLineItems), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lineItems') } }
75
+ # The card authorization and capture IDs associated with a transfer.
76
+ field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
72
77
  # Raw HTTP response; suitable for custom response parsing
73
78
  field :raw_response, Crystalline::Nilable.new(::Faraday::Response), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('-') } }
74
79
 
75
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), raw_response: T.nilable(::Faraday::Response)).void }
76
- def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, raw_response: nil)
80
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), sales_tax_amount: T.nilable(Models::Components::Amount), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), capture: T.nilable(Models::Components::TransferCapture), raw_response: T.nilable(::Faraday::Response)).void }
81
+ def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, sales_tax_amount: nil, foreign_id: nil, line_items: nil, capture: nil, raw_response: nil)
77
82
  @transfer_id = transfer_id
78
83
  @created_on = created_on
79
84
  @source = source
@@ -102,6 +107,7 @@ module Moov
102
107
  @sales_tax_amount = sales_tax_amount
103
108
  @foreign_id = foreign_id
104
109
  @line_items = line_items
110
+ @capture = capture
105
111
  @raw_response = raw_response
106
112
  end
107
113
 
@@ -136,6 +142,7 @@ module Moov
136
142
  return false unless @sales_tax_amount == other.sales_tax_amount
137
143
  return false unless @foreign_id == other.foreign_id
138
144
  return false unless @line_items == other.line_items
145
+ return false unless @capture == other.capture
139
146
  return false unless @raw_response == other.raw_response
140
147
  true
141
148
  end
@@ -64,6 +64,8 @@ class Moov::Models::Errors::TransferError
64
64
  def foreign_id=(str_); end
65
65
  def line_items(); end
66
66
  def line_items=(str_); end
67
+ def capture(); end
68
+ def capture=(str_); end
67
69
  def raw_response(); end
68
70
  def raw_response=(str_); end
69
71
  end
@@ -47,7 +47,7 @@ module Moov
47
47
  field :capability_status, Crystalline::Nilable.new(Models::Components::CapabilityStatus), { 'query_param': { 'field_name': 'capabilityStatus', 'style': 'form', 'explode': false } }
48
48
 
49
49
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
50
-
50
+ # Page size. When omitted, the server defaults to `200`.
51
51
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
52
52
 
53
53
  sig { params(name: T.nilable(::String), email: T.nilable(::String), type: T.nilable(Models::Components::AccountType), foreign_id: T.nilable(::String), include_disconnected: T.nilable(T::Boolean), capability: T.nilable(Models::Components::CapabilityID), capability_status: T.nilable(Models::Components::CapabilityStatus), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -49,7 +49,7 @@ module Moov
49
49
  field :capability_status, Crystalline::Nilable.new(Models::Components::CapabilityStatus), { 'query_param': { 'field_name': 'capabilityStatus', 'style': 'form', 'explode': false } }
50
50
 
51
51
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
52
-
52
+ # Page size. When omitted, the server defaults to `200`.
53
53
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
54
54
 
55
55
  sig { params(account_id: ::String, name: T.nilable(::String), email: T.nilable(::String), type: T.nilable(Models::Components::AccountType), foreign_id: T.nilable(::String), include_disconnected: T.nilable(T::Boolean), capability: T.nilable(Models::Components::CapabilityID), capability_status: T.nilable(Models::Components::CapabilityStatus), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional date-time parameter to filter all disputes created on and after the provided date and time.
22
22
  field :start_date_time, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'startDateTime', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # A comma-separated list of agreement IDs to filter the results by.
22
22
  field :agreement_id, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'agreementID', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional transfer ID to filter the results by.
22
22
  field :transfer_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'transferID', 'style': 'form', 'explode': false } }
@@ -18,7 +18,7 @@ module Moov
18
18
  field :authorization_id, ::String, { 'path_param': { 'field_name': 'authorizationID', 'style': 'simple', 'explode': false } }
19
19
 
20
20
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
21
-
21
+ # Page size. When omitted, the server defaults to `200`.
22
22
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
23
23
 
24
24
  sig { params(account_id: ::String, authorization_id: ::String, skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional ID of the issued card to filter results.
22
22
  field :issued_card_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'issuedCardID', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional, comma-separated states to filter the Moov list issued cards response. For example `active,closed`
22
22
  field :states, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::IssuedCardState)), { 'query_param': { 'field_name': 'states', 'style': 'form', 'explode': false } }
@@ -16,21 +16,24 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional ID of the issued card to filter results.
22
22
  field :issued_card_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'issuedCardID', 'style': 'form', 'explode': false } }
23
+ # Optional case-insensitive substring match on the merchant name to filter results.
24
+ field :merchant_name, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'merchantName', 'style': 'form', 'explode': false } }
23
25
  # Optional date-time which inclusively filters all card transactions created after this date-time.
24
26
  field :start_date_time, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'startDateTime', 'style': 'form', 'explode': false } }
25
27
  # Optional date-time which exclusively filters all card transactions created before this date-time.
26
28
  field :end_date_time, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'endDateTime', 'style': 'form', 'explode': false } }
27
29
 
28
- sig { params(account_id: ::String, skip: T.nilable(::Integer), count: T.nilable(::Integer), issued_card_id: T.nilable(::String), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime)).void }
29
- def initialize(account_id:, skip: nil, count: nil, issued_card_id: nil, start_date_time: nil, end_date_time: nil)
30
+ sig { params(account_id: ::String, skip: T.nilable(::Integer), count: T.nilable(::Integer), issued_card_id: T.nilable(::String), merchant_name: T.nilable(::String), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime)).void }
31
+ def initialize(account_id:, skip: nil, count: nil, issued_card_id: nil, merchant_name: nil, start_date_time: nil, end_date_time: nil)
30
32
  @account_id = account_id
31
33
  @skip = skip
32
34
  @count = count
33
35
  @issued_card_id = issued_card_id
36
+ @merchant_name = merchant_name
34
37
  @start_date_time = start_date_time
35
38
  @end_date_time = end_date_time
36
39
  end
@@ -42,6 +45,7 @@ module Moov
42
45
  return false unless @skip == other.skip
43
46
  return false unless @count == other.count
44
47
  return false unless @issued_card_id == other.issued_card_id
48
+ return false unless @merchant_name == other.merchant_name
45
49
  return false unless @start_date_time == other.start_date_time
46
50
  return false unless @end_date_time == other.end_date_time
47
51
  true
@@ -16,6 +16,8 @@ class Moov::Models::Operations::ListIssuedCardTransactionsRequest
16
16
  def count=(str_); end
17
17
  def issued_card_id(); end
18
18
  def issued_card_id=(str_); end
19
+ def merchant_name(); end
20
+ def merchant_name=(str_); end
19
21
  def start_date_time(); end
20
22
  def start_date_time=(str_); end
21
23
  def end_date_time(); end
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # A comma-separated list of agreement IDs to filter the results by.
22
22
  field :agreement_id, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'agreementID', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # A comma-separated list of payment link types to filter results.
22
22
  field :types, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PaymentLinkType)), { 'query_param': { 'field_name': 'types', 'style': 'form', 'explode': false } }
@@ -18,7 +18,7 @@ module Moov
18
18
  field :title, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'title', 'style': 'form', 'explode': false } }
19
19
 
20
20
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
21
-
21
+ # Page size. When omitted, the server defaults to `200`.
22
22
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
23
23
 
24
24
  sig { params(account_id: ::String, title: T.nilable(::String), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -18,7 +18,7 @@ module Moov
18
18
  field :residual_id, ::String, { 'path_param': { 'field_name': 'residualID', 'style': 'simple', 'explode': false } }
19
19
 
20
20
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
21
-
21
+ # Page size. When omitted, the server defaults to `200`.
22
22
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
23
23
  # Optional date-time to inclusively filter all fees created after this date-time.
24
24
  field :start_date_time, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'startDateTime', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
  # Optional date-time to inclusively filter all residuals with a period start after this date-time.
22
22
  field :start_date_time, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'startDateTime', 'style': 'form', 'explode': false } }
@@ -16,7 +16,7 @@ module Moov
16
16
  field :account_id, ::String, { 'path_param': { 'field_name': 'accountID', 'style': 'simple', 'explode': false } }
17
17
 
18
18
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
19
-
19
+ # Page size. When omitted, the server defaults to `200`.
20
20
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
21
21
 
22
22
  field :hydrate, Crystalline::Nilable.new(Models::Operations::Hydrate), { 'query_param': { 'field_name': 'hydrate', 'style': 'form', 'explode': false } }
@@ -20,7 +20,7 @@ module Moov
20
20
  field :billing_period_end_date_time, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'billingPeriodEndDateTime', 'style': 'form', 'explode': false } }
21
21
 
22
22
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
23
-
23
+ # Page size. When omitted, the server defaults to `200`.
24
24
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
25
25
 
26
26
  sig { params(account_id: ::String, billing_period_start_date_time: T.nilable(::DateTime), billing_period_end_date_time: T.nilable(::DateTime), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -18,7 +18,7 @@ module Moov
18
18
  field :wallet_id, ::String, { 'path_param': { 'field_name': 'walletID', 'style': 'simple', 'explode': false } }
19
19
 
20
20
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
21
-
21
+ # Page size. When omitted, the server defaults to `200`.
22
22
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
23
23
  # Optional parameter to filter by sweep status.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::SweepStatus), { 'query_param': { 'field_name': 'status', 'style': 'form', 'explode': false } }
@@ -34,13 +34,17 @@ module Moov
34
34
  field :disputed, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'disputed', 'style': 'form', 'explode': false } }
35
35
  # Optional alias from a foreign/external system which can be used to reference this resource.
36
36
  field :foreign_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'foreignID', 'style': 'form', 'explode': false } }
37
+ # Optional comma-separated authorization IDs.
38
+ field :authorization_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'authorizationIDs', 'style': 'form', 'explode': false } }
39
+ # Optional comma-separated IDs to filter for transfers associated with specific card captures.
40
+ field :capture_i_ds, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'captureIDs', 'style': 'form', 'explode': false } }
37
41
 
38
42
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
39
-
43
+ # Page size. When omitted, the server defaults to `200`.
40
44
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
41
45
 
42
- sig { params(account_id: ::String, account_i_ds: T.nilable(T::Array[::String]), status: T.nilable(Models::Components::TransferStatus), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime), group_id: T.nilable(::String), schedule_id: T.nilable(::String), payment_link_code: T.nilable(::String), refunded: T.nilable(T::Boolean), disputed: T.nilable(T::Boolean), foreign_id: T.nilable(::String), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
43
- def initialize(account_id:, account_i_ds: nil, status: nil, start_date_time: nil, end_date_time: nil, group_id: nil, schedule_id: nil, payment_link_code: nil, refunded: nil, disputed: nil, foreign_id: nil, skip: nil, count: nil)
46
+ sig { params(account_id: ::String, account_i_ds: T.nilable(T::Array[::String]), status: T.nilable(Models::Components::TransferStatus), start_date_time: T.nilable(::DateTime), end_date_time: T.nilable(::DateTime), group_id: T.nilable(::String), schedule_id: T.nilable(::String), payment_link_code: T.nilable(::String), refunded: T.nilable(T::Boolean), disputed: T.nilable(T::Boolean), foreign_id: T.nilable(::String), authorization_i_ds: T.nilable(T::Array[::String]), capture_i_ds: T.nilable(T::Array[::String]), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
47
+ def initialize(account_id:, account_i_ds: nil, status: nil, start_date_time: nil, end_date_time: nil, group_id: nil, schedule_id: nil, payment_link_code: nil, refunded: nil, disputed: nil, foreign_id: nil, authorization_i_ds: nil, capture_i_ds: nil, skip: nil, count: nil)
44
48
  @account_id = account_id
45
49
  @account_i_ds = account_i_ds
46
50
  @status = status
@@ -52,6 +56,8 @@ module Moov
52
56
  @refunded = refunded
53
57
  @disputed = disputed
54
58
  @foreign_id = foreign_id
59
+ @authorization_i_ds = authorization_i_ds
60
+ @capture_i_ds = capture_i_ds
55
61
  @skip = skip
56
62
  @count = count
57
63
  end
@@ -70,6 +76,8 @@ module Moov
70
76
  return false unless @refunded == other.refunded
71
77
  return false unless @disputed == other.disputed
72
78
  return false unless @foreign_id == other.foreign_id
79
+ return false unless @authorization_i_ds == other.authorization_i_ds
80
+ return false unless @capture_i_ds == other.capture_i_ds
73
81
  return false unless @skip == other.skip
74
82
  return false unless @count == other.count
75
83
  true
@@ -30,6 +30,10 @@ class Moov::Models::Operations::ListTransfersRequest
30
30
  def disputed=(str_); end
31
31
  def foreign_id(); end
32
32
  def foreign_id=(str_); end
33
+ def authorization_i_ds(); end
34
+ def authorization_i_ds=(str_); end
35
+ def capture_i_ds(); end
36
+ def capture_i_ds=(str_); end
33
37
  def skip(); end
34
38
  def skip=(str_); end
35
39
  def count(); end
@@ -20,7 +20,7 @@ module Moov
20
20
  field :wallet_type, Crystalline::Nilable.new(Models::Components::WalletType), { 'query_param': { 'field_name': 'walletType', 'style': 'form', 'explode': false } }
21
21
 
22
22
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
23
-
23
+ # Page size. When omitted, the server defaults to `200`.
24
24
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
25
25
 
26
26
  sig { params(account_id: ::String, status: T.nilable(Models::Components::WalletStatus), wallet_type: T.nilable(Models::Components::WalletType), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -18,7 +18,7 @@ module Moov
18
18
  field :wallet_id, ::String, { 'path_param': { 'field_name': 'walletID', 'style': 'simple', 'explode': false } }
19
19
 
20
20
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
21
-
21
+ # Page size. When omitted, the server defaults to `200`.
22
22
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
23
23
  # Optional parameter to filter by transaction type.
24
24
  field :transaction_type, Crystalline::Nilable.new(Models::Components::WalletTransactionType), { 'query_param': { 'field_name': 'transactionType', 'style': 'form', 'explode': false } }
@@ -26,7 +26,7 @@ module Moov
26
26
  field :end_date_time, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'endDateTime', 'style': 'form', 'explode': false } }
27
27
 
28
28
  field :skip, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': false } }
29
-
29
+ # Page size. When omitted, the server defaults to `200`.
30
30
  field :count, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': false } }
31
31
 
32
32
  sig { params(account_id: ::String, transfer_id: T.nilable(::String), dispute_id: T.nilable(::String), residual_id: T.nilable(::String), start_date_time: T.nilable(::String), end_date_time: T.nilable(::String), skip: T.nilable(::Integer), count: T.nilable(::Integer)).void }
@@ -88,9 +88,9 @@ module Moov
88
88
  end
89
89
  @language = 'ruby'
90
90
  @openapi_doc_version = 'v2025.04.00'
91
- @sdk_version = '25.5.12'
92
- @gen_version = '2.924.0'
93
- @user_agent = 'speakeasy-sdk/ruby 25.5.12 2.924.0 v2025.04.00 moov_ruby'
91
+ @sdk_version = '25.5.14'
92
+ @gen_version = '2.935.1'
93
+ @user_agent = 'speakeasy-sdk/ruby 25.5.14 2.935.1 v2025.04.00 moov_ruby'
94
94
  end
95
95
 
96
96
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -1004,6 +1004,9 @@ module Moov
1004
1004
  def create_cancellation(account_id:, transfer_id:, timeout_ms: nil, http_headers: nil)
1005
1005
  # create_cancellation - Initiate a cancellation for a card, ACH, or queued transfer.
1006
1006
  #
1007
+ # In v2026.10 and later, an auth-capture `card-payment` transfer can be canceled before any captures exist.
1008
+ # For these transfers, a successful cancellation reduces `capturableAmount` without changing `authorizedAmount`.
1009
+ # For these transfers, a partial cancellation leaves the remaining `capturableAmount` available for capture.
1007
1010
  # To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
1008
1011
  # to specify the `/accounts/{accountID}/transfers.write` scope.
1009
1012
  request = Models::Operations::CreateCancellationRequest.new(
@@ -1108,7 +1111,7 @@ module Moov
1108
1111
  else
1109
1112
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
1110
1113
  end
1111
- elsif Utils.match_status_code(http_response.status, ['400'])
1114
+ elsif Utils.match_status_code(http_response.status, ['400', '409', '422'])
1112
1115
  if Utils.match_content_type(content_type, 'application/json')
1113
1116
  http_response = @sdk_configuration.hooks.after_success(
1114
1117
  hook_ctx: SDKHooks::AfterSuccessHookContext.new(
@@ -1141,7 +1144,7 @@ module Moov
1141
1144
  sig { params(account_id: ::String, transfer_id: ::String, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::ListCancellationsResponse) }
1142
1145
  def list_cancellations(account_id:, transfer_id:, timeout_ms: nil, http_headers: nil)
1143
1146
  # list_cancellations - Get a list of cancellations for a transfer.
1144
- #
1147
+ #
1145
1148
  # To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
1146
1149
  # to specify the `/accounts/{accountID}/transfers.read` scope.
1147
1150
  request = Models::Operations::ListCancellationsRequest.new(
@@ -1246,7 +1249,7 @@ module Moov
1246
1249
  else
1247
1250
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
1248
1251
  end
1249
- elsif Utils.match_status_code(http_response.status, ['401', '403', '429'])
1252
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
1250
1253
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
1251
1254
  elsif Utils.match_status_code(http_response.status, ['500', '504'])
1252
1255
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
@@ -1693,7 +1696,7 @@ module Moov
1693
1696
  else
1694
1697
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
1695
1698
  end
1696
- elsif Utils.match_status_code(http_response.status, ['401', '403', '429'])
1699
+ elsif Utils.match_status_code(http_response.status, ['401', '403', '404', '429'])
1697
1700
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
1698
1701
  elsif Utils.match_status_code(http_response.status, ['500', '504'])
1699
1702
  raise ::Moov::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
@@ -1834,7 +1837,10 @@ module Moov
1834
1837
 
1835
1838
  sig { params(x_idempotency_key: ::String, account_id: ::String, transfer_id: ::String, create_reversal: T.nilable(Models::Components::CreateReversal), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::CreateReversalResponse) }
1836
1839
  def create_reversal(x_idempotency_key:, account_id:, transfer_id:, create_reversal: nil, timeout_ms: nil, http_headers: nil)
1837
- # create_reversal - Reverses a card transfer by initiating a cancellation or refund depending on the transaction status.
1840
+ # create_reversal - Reverses a card transfer by initiating a cancellation or refund depending on the transaction status.
1841
+ # In v2026.10 and later, reversing an auth-capture `card-payment` transfer with no captures cancels the entire `capturableAmount`.
1842
+ # In those API versions, an auth-capture `card-payment` transfer with one final capture is canceled or refunded depending on its processing state.
1843
+ # Auth-capture `card-payment` transfers with a non-final capture or multiple captures are not supported in those API versions.
1838
1844
  # Read our [reversals guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/reversals/)
1839
1845
  # to learn more.
1840
1846
  #