moovio_sdk 0.3.8__py3-none-any.whl

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 (586) hide show
  1. moovio_sdk/__init__.py +17 -0
  2. moovio_sdk/_hooks/__init__.py +5 -0
  3. moovio_sdk/_hooks/registration.py +13 -0
  4. moovio_sdk/_hooks/sdkhooks.py +76 -0
  5. moovio_sdk/_hooks/types.py +106 -0
  6. moovio_sdk/_version.py +15 -0
  7. moovio_sdk/accounts.py +2461 -0
  8. moovio_sdk/adjustments.py +463 -0
  9. moovio_sdk/apple_pay.py +1417 -0
  10. moovio_sdk/authentication.py +531 -0
  11. moovio_sdk/avatars.py +231 -0
  12. moovio_sdk/bank_accounts.py +2445 -0
  13. moovio_sdk/basesdk.py +363 -0
  14. moovio_sdk/branding.py +1089 -0
  15. moovio_sdk/capabilities.py +1001 -0
  16. moovio_sdk/card_issuing.py +1351 -0
  17. moovio_sdk/cards.py +1469 -0
  18. moovio_sdk/disputes.py +2985 -0
  19. moovio_sdk/end_to_end_encryption.py +453 -0
  20. moovio_sdk/enriched_address.py +307 -0
  21. moovio_sdk/enriched_profile.py +235 -0
  22. moovio_sdk/fee_plans.py +1759 -0
  23. moovio_sdk/files.py +775 -0
  24. moovio_sdk/httpclient.py +136 -0
  25. moovio_sdk/industries.py +239 -0
  26. moovio_sdk/institutions.py +261 -0
  27. moovio_sdk/issuing_transactions.py +1228 -0
  28. moovio_sdk/models/__init__.py +4 -0
  29. moovio_sdk/models/components/__init__.py +1411 -0
  30. moovio_sdk/models/components/account.py +96 -0
  31. moovio_sdk/models/components/accountcapability.py +20 -0
  32. moovio_sdk/models/components/accountcountries.py +18 -0
  33. moovio_sdk/models/components/accountnameverification.py +28 -0
  34. moovio_sdk/models/components/accounttype.py +11 -0
  35. moovio_sdk/models/components/accountverificationstatus.py +19 -0
  36. moovio_sdk/models/components/achcreditsamedaypaymentmethod.py +38 -0
  37. moovio_sdk/models/components/achcreditstandardpaymentmethod.py +38 -0
  38. moovio_sdk/models/components/achdebitcollectpaymentmethod.py +38 -0
  39. moovio_sdk/models/components/achdebitfundpaymentmethod.py +38 -0
  40. moovio_sdk/models/components/achexception.py +20 -0
  41. moovio_sdk/models/components/achlocation.py +26 -0
  42. moovio_sdk/models/components/achparticipant.py +93 -0
  43. moovio_sdk/models/components/achpaymentdetails.py +30 -0
  44. moovio_sdk/models/components/achpaymentdetailserror.py +22 -0
  45. moovio_sdk/models/components/achpaymentsettings.py +16 -0
  46. moovio_sdk/models/components/achreturncode.py +51 -0
  47. moovio_sdk/models/components/achtransactiondetails.py +94 -0
  48. moovio_sdk/models/components/achtransactionstatus.py +15 -0
  49. moovio_sdk/models/components/addcapabilities.py +15 -0
  50. moovio_sdk/models/components/address.py +30 -0
  51. moovio_sdk/models/components/addresserror.py +32 -0
  52. moovio_sdk/models/components/addresssuggestion.py +34 -0
  53. moovio_sdk/models/components/addressupdate.py +32 -0
  54. moovio_sdk/models/components/adjustment.py +29 -0
  55. moovio_sdk/models/components/amount.py +26 -0
  56. moovio_sdk/models/components/amountdecimal.py +27 -0
  57. moovio_sdk/models/components/amountupdate.py +27 -0
  58. moovio_sdk/models/components/amountvalidationerror.py +17 -0
  59. moovio_sdk/models/components/applebillingcontact.py +53 -0
  60. moovio_sdk/models/components/applepayheader.py +41 -0
  61. moovio_sdk/models/components/applepaymerchantdomains.py +32 -0
  62. moovio_sdk/models/components/applepaypaymentmethod.py +33 -0
  63. moovio_sdk/models/components/applepayresponse.py +70 -0
  64. moovio_sdk/models/components/applicationscope.py +41 -0
  65. moovio_sdk/models/components/asynccreatedrefund.py +26 -0
  66. moovio_sdk/models/components/asynctransfer.py +18 -0
  67. moovio_sdk/models/components/authorizeduser.py +21 -0
  68. moovio_sdk/models/components/authtoken.py +36 -0
  69. moovio_sdk/models/components/authtokenrequest.py +46 -0
  70. moovio_sdk/models/components/bankaccount.py +98 -0
  71. moovio_sdk/models/components/bankaccountexception.py +96 -0
  72. moovio_sdk/models/components/bankaccountholdertype.py +11 -0
  73. moovio_sdk/models/components/bankaccountintegration.py +34 -0
  74. moovio_sdk/models/components/bankaccountpayload.py +21 -0
  75. moovio_sdk/models/components/bankaccountstatus.py +12 -0
  76. moovio_sdk/models/components/bankaccountstatusreason.py +23 -0
  77. moovio_sdk/models/components/bankaccounttype.py +13 -0
  78. moovio_sdk/models/components/bankaccountverification.py +30 -0
  79. moovio_sdk/models/components/bankaccountverificationcreated.py +21 -0
  80. moovio_sdk/models/components/bankaccountverificationmethod.py +9 -0
  81. moovio_sdk/models/components/bankaccountverificationstatus.py +13 -0
  82. moovio_sdk/models/components/bankaccountwaitfor.py +9 -0
  83. moovio_sdk/models/components/basicpaymentmethod.py +24 -0
  84. moovio_sdk/models/components/billablefee.py +54 -0
  85. moovio_sdk/models/components/birthdate.py +19 -0
  86. moovio_sdk/models/components/birthdateerror.py +20 -0
  87. moovio_sdk/models/components/birthdateupdate.py +20 -0
  88. moovio_sdk/models/components/birthdatevalidationerror.py +20 -0
  89. moovio_sdk/models/components/brandcolor.py +15 -0
  90. moovio_sdk/models/components/brandcolors.py +21 -0
  91. moovio_sdk/models/components/brandcolorvalidationerror.py +14 -0
  92. moovio_sdk/models/components/brandproperties.py +16 -0
  93. moovio_sdk/models/components/businessprofile.py +81 -0
  94. moovio_sdk/models/components/businesstype.py +19 -0
  95. moovio_sdk/models/components/calltoaction.py +19 -0
  96. moovio_sdk/models/components/cancellation.py +22 -0
  97. moovio_sdk/models/components/cancellationstatus.py +10 -0
  98. moovio_sdk/models/components/capabilitieserror.py +14 -0
  99. moovio_sdk/models/components/capability.py +56 -0
  100. moovio_sdk/models/components/capabilityid.py +18 -0
  101. moovio_sdk/models/components/capabilityrequirement.py +26 -0
  102. moovio_sdk/models/components/capabilitystatus.py +13 -0
  103. moovio_sdk/models/components/card.py +164 -0
  104. moovio_sdk/models/components/cardaccountupdater.py +28 -0
  105. moovio_sdk/models/components/cardacquiringdispute.py +26 -0
  106. moovio_sdk/models/components/cardacquiringmodel.py +11 -0
  107. moovio_sdk/models/components/cardacquiringrefund.py +42 -0
  108. moovio_sdk/models/components/cardaddress.py +32 -0
  109. moovio_sdk/models/components/cardbrand.py +14 -0
  110. moovio_sdk/models/components/cardexpiration.py +20 -0
  111. moovio_sdk/models/components/cardexpirationerror.py +17 -0
  112. moovio_sdk/models/components/cardissuingnetwork.py +12 -0
  113. moovio_sdk/models/components/cardpaymentdetails.py +23 -0
  114. moovio_sdk/models/components/cardpaymentdetailserror.py +17 -0
  115. moovio_sdk/models/components/cardpaymentpaymentmethod.py +33 -0
  116. moovio_sdk/models/components/cardpaymentsettings.py +23 -0
  117. moovio_sdk/models/components/cardtransactiondetails.py +94 -0
  118. moovio_sdk/models/components/cardtransactionfailurecode.py +32 -0
  119. moovio_sdk/models/components/cardtransactionstatus.py +15 -0
  120. moovio_sdk/models/components/cardtype.py +13 -0
  121. moovio_sdk/models/components/cardupdatereason.py +16 -0
  122. moovio_sdk/models/components/cardverification.py +38 -0
  123. moovio_sdk/models/components/cardverificationresult.py +12 -0
  124. moovio_sdk/models/components/cardvolumedistribution.py +29 -0
  125. moovio_sdk/models/components/cardvolumedistributionerror.py +32 -0
  126. moovio_sdk/models/components/collectionpaymentmethodtype.py +12 -0
  127. moovio_sdk/models/components/colorsvalidationerror.py +21 -0
  128. moovio_sdk/models/components/completebankaccountverification.py +15 -0
  129. moovio_sdk/models/components/completedmicrodeposits.py +14 -0
  130. moovio_sdk/models/components/completemicrodeposits.py +20 -0
  131. moovio_sdk/models/components/countrieserrors.py +14 -0
  132. moovio_sdk/models/components/createaccount.py +78 -0
  133. moovio_sdk/models/components/createaccounterror.py +44 -0
  134. moovio_sdk/models/components/createaccountsettings.py +40 -0
  135. moovio_sdk/models/components/createapplepaysession.py +21 -0
  136. moovio_sdk/models/components/createauthorizeduser.py +26 -0
  137. moovio_sdk/models/components/createauthorizedusererror.py +24 -0
  138. moovio_sdk/models/components/createauthorizeduserupdate.py +28 -0
  139. moovio_sdk/models/components/createbusinesserror.py +88 -0
  140. moovio_sdk/models/components/createbusinessprofile.py +69 -0
  141. moovio_sdk/models/components/createevidencefilemultipart.py +63 -0
  142. moovio_sdk/models/components/createevidencetext.py +20 -0
  143. moovio_sdk/models/components/createfeeplanagreement.py +14 -0
  144. moovio_sdk/models/components/createindividualerror.py +72 -0
  145. moovio_sdk/models/components/createindividualprofile.py +37 -0
  146. moovio_sdk/models/components/createpaymentlink.py +95 -0
  147. moovio_sdk/models/components/createprofile.py +22 -0
  148. moovio_sdk/models/components/createprofileerror.py +19 -0
  149. moovio_sdk/models/components/createrefund.py +26 -0
  150. moovio_sdk/models/components/createrefundresponse.py +18 -0
  151. moovio_sdk/models/components/createrepresentative.py +50 -0
  152. moovio_sdk/models/components/createreversal.py +15 -0
  153. moovio_sdk/models/components/createsweepconfig.py +41 -0
  154. moovio_sdk/models/components/createterminalapplication.py +42 -0
  155. moovio_sdk/models/components/createtransfer.py +49 -0
  156. moovio_sdk/models/components/createtransferdestination.py +37 -0
  157. moovio_sdk/models/components/createtransferdestinationach.py +26 -0
  158. moovio_sdk/models/components/createtransferdestinationcard.py +19 -0
  159. moovio_sdk/models/components/createtransferoptions.py +24 -0
  160. moovio_sdk/models/components/createtransfersource.py +48 -0
  161. moovio_sdk/models/components/createtransfersourceach.py +40 -0
  162. moovio_sdk/models/components/createtransfersourcecard.py +35 -0
  163. moovio_sdk/models/components/customersupport.py +33 -0
  164. moovio_sdk/models/components/customersupporterror.py +25 -0
  165. moovio_sdk/models/components/debitholdperiod.py +12 -0
  166. moovio_sdk/models/components/disbursementpaymentmethodtype.py +13 -0
  167. moovio_sdk/models/components/displayoptionserror.py +23 -0
  168. moovio_sdk/models/components/dispute.py +76 -0
  169. moovio_sdk/models/components/disputeevidenceresponse.py +49 -0
  170. moovio_sdk/models/components/disputephase.py +13 -0
  171. moovio_sdk/models/components/disputestatus.py +20 -0
  172. moovio_sdk/models/components/disputetransferdetails.py +16 -0
  173. moovio_sdk/models/components/document.py +37 -0
  174. moovio_sdk/models/components/documenttype.py +13 -0
  175. moovio_sdk/models/components/domesticpullfromcard.py +12 -0
  176. moovio_sdk/models/components/domesticpushtocard.py +13 -0
  177. moovio_sdk/models/components/e2eetoken.py +25 -0
  178. moovio_sdk/models/components/e2eetokenupdate.py +26 -0
  179. moovio_sdk/models/components/end2endencryptionerror.py +14 -0
  180. moovio_sdk/models/components/enrichedaddressresponse.py +15 -0
  181. moovio_sdk/models/components/enrichedbusinessprofile.py +37 -0
  182. moovio_sdk/models/components/enrichedbusinessresponse.py +18 -0
  183. moovio_sdk/models/components/enrichedindustries.py +15 -0
  184. moovio_sdk/models/components/enrichedindustry.py +32 -0
  185. moovio_sdk/models/components/enrichedindustrycodes.py +17 -0
  186. moovio_sdk/models/components/evidencetextresponse.py +28 -0
  187. moovio_sdk/models/components/evidencetype.py +15 -0
  188. moovio_sdk/models/components/evidenceuploadresponse.py +50 -0
  189. moovio_sdk/models/components/facilitatorfee.py +48 -0
  190. moovio_sdk/models/components/feecategory.py +16 -0
  191. moovio_sdk/models/components/feemodel.py +12 -0
  192. moovio_sdk/models/components/feeplan.py +43 -0
  193. moovio_sdk/models/components/feeplanagreement.py +51 -0
  194. moovio_sdk/models/components/feeplanagreementstatus.py +9 -0
  195. moovio_sdk/models/components/feeproperties.py +49 -0
  196. moovio_sdk/models/components/filedetails.py +55 -0
  197. moovio_sdk/models/components/filepurpose.py +15 -0
  198. moovio_sdk/models/components/filestatus.py +12 -0
  199. moovio_sdk/models/components/fileuploadrequestmultipart.py +69 -0
  200. moovio_sdk/models/components/financialinstitutions.py +18 -0
  201. moovio_sdk/models/components/fulfillmentdetails.py +24 -0
  202. moovio_sdk/models/components/fulfillmentdetailserror.py +20 -0
  203. moovio_sdk/models/components/fullissuedcard.py +92 -0
  204. moovio_sdk/models/components/generatedby.py +39 -0
  205. moovio_sdk/models/components/generatedbyaccountid.py +15 -0
  206. moovio_sdk/models/components/generatedbybankaccountid.py +17 -0
  207. moovio_sdk/models/components/generatedbycardid.py +15 -0
  208. moovio_sdk/models/components/generatedbydisputeid.py +15 -0
  209. moovio_sdk/models/components/generatedbytransferid.py +15 -0
  210. moovio_sdk/models/components/governmentid.py +40 -0
  211. moovio_sdk/models/components/governmentiderror.py +40 -0
  212. moovio_sdk/models/components/granttype.py +15 -0
  213. moovio_sdk/models/components/incurredfee.py +44 -0
  214. moovio_sdk/models/components/individualname.py +32 -0
  215. moovio_sdk/models/components/individualnameerror.py +24 -0
  216. moovio_sdk/models/components/individualnameupdate.py +32 -0
  217. moovio_sdk/models/components/individualprofile.py +45 -0
  218. moovio_sdk/models/components/industrycodes.py +20 -0
  219. moovio_sdk/models/components/issuedcard.py +78 -0
  220. moovio_sdk/models/components/issuedcardauthorization.py +53 -0
  221. moovio_sdk/models/components/issuedcardauthorizationevent.py +37 -0
  222. moovio_sdk/models/components/issuedcardauthorizationeventresult.py +12 -0
  223. moovio_sdk/models/components/issuedcardeventtype.py +15 -0
  224. moovio_sdk/models/components/issuedcardformfactor.py +10 -0
  225. moovio_sdk/models/components/issuedcardstate.py +19 -0
  226. moovio_sdk/models/components/issuedcardtransaction.py +42 -0
  227. moovio_sdk/models/components/issuingauthorizationstatus.py +14 -0
  228. moovio_sdk/models/components/issuingcontrols.py +25 -0
  229. moovio_sdk/models/components/issuingcontrolserror.py +22 -0
  230. moovio_sdk/models/components/issuingintervallimit.py +10 -0
  231. moovio_sdk/models/components/issuingmerchantdata.py +47 -0
  232. moovio_sdk/models/components/issuingvelocitylimit.py +21 -0
  233. moovio_sdk/models/components/issuingvelocitylimiterror.py +17 -0
  234. moovio_sdk/models/components/jsonwebkey.py +103 -0
  235. moovio_sdk/models/components/linkapplepay.py +54 -0
  236. moovio_sdk/models/components/linkapplepaymentdata.py +51 -0
  237. moovio_sdk/models/components/linkapplepaymentmethod.py +38 -0
  238. moovio_sdk/models/components/linkapplepaytoken.py +63 -0
  239. moovio_sdk/models/components/linkbankaccount.py +26 -0
  240. moovio_sdk/models/components/linkcard.py +54 -0
  241. moovio_sdk/models/components/linkcardwaitfor.py +8 -0
  242. moovio_sdk/models/components/linkedapplepaypaymentmethod.py +30 -0
  243. moovio_sdk/models/components/listfeesfetchrequest.py +19 -0
  244. moovio_sdk/models/components/manualtermsofservice.py +34 -0
  245. moovio_sdk/models/components/manualtermsofserviceupdate.py +41 -0
  246. moovio_sdk/models/components/microdepositstatus.py +8 -0
  247. moovio_sdk/models/components/mode.py +11 -0
  248. moovio_sdk/models/components/moovfeedetails.py +36 -0
  249. moovio_sdk/models/components/moovwalletpaymentmethod.py +31 -0
  250. moovio_sdk/models/components/mxauthorizationcode.py +26 -0
  251. moovio_sdk/models/components/mxpayload.py +46 -0
  252. moovio_sdk/models/components/occurrence.py +44 -0
  253. moovio_sdk/models/components/occurrencesresponse.py +80 -0
  254. moovio_sdk/models/components/occurrencestatus.py +12 -0
  255. moovio_sdk/models/components/onboardinginvite.py +91 -0
  256. moovio_sdk/models/components/onboardinginviterequest.py +57 -0
  257. moovio_sdk/models/components/onboardingpartneraccount.py +31 -0
  258. moovio_sdk/models/components/partnerpricing.py +46 -0
  259. moovio_sdk/models/components/partnerpricingagreement.py +56 -0
  260. moovio_sdk/models/components/patchaccount.py +138 -0
  261. moovio_sdk/models/components/patchaccounterror.py +38 -0
  262. moovio_sdk/models/components/patchbusiness.py +72 -0
  263. moovio_sdk/models/components/patchindividual.py +43 -0
  264. moovio_sdk/models/components/patchprofile.py +29 -0
  265. moovio_sdk/models/components/patchsweepconfig.py +147 -0
  266. moovio_sdk/models/components/patchtransfer.py +51 -0
  267. moovio_sdk/models/components/paymentdetailserror.py +35 -0
  268. moovio_sdk/models/components/paymentlink.py +125 -0
  269. moovio_sdk/models/components/paymentlinkcustomeroptions.py +31 -0
  270. moovio_sdk/models/components/paymentlinkdisplayoptions.py +39 -0
  271. moovio_sdk/models/components/paymentlinkdisplayoptionsupdate.py +42 -0
  272. moovio_sdk/models/components/paymentlinkpaymentdetails.py +40 -0
  273. moovio_sdk/models/components/paymentlinkpaymentdetailsupdate.py +41 -0
  274. moovio_sdk/models/components/paymentlinkpayoutdetails.py +32 -0
  275. moovio_sdk/models/components/paymentlinkpayoutdetailsupdate.py +33 -0
  276. moovio_sdk/models/components/paymentlinkstatus.py +11 -0
  277. moovio_sdk/models/components/paymentmethod.py +82 -0
  278. moovio_sdk/models/components/paymentmethodsbankaccount.py +65 -0
  279. moovio_sdk/models/components/paymentmethodscard.py +121 -0
  280. moovio_sdk/models/components/paymentmethodswallet.py +14 -0
  281. moovio_sdk/models/components/paymentmethodtype.py +19 -0
  282. moovio_sdk/models/components/payoutdetailserror.py +21 -0
  283. moovio_sdk/models/components/payoutrecipient.py +23 -0
  284. moovio_sdk/models/components/payoutrecipienterror.py +14 -0
  285. moovio_sdk/models/components/payoutrecipientupdate.py +24 -0
  286. moovio_sdk/models/components/phonenumber.py +18 -0
  287. moovio_sdk/models/components/phonenumbererror.py +18 -0
  288. moovio_sdk/models/components/plaidintegration.py +39 -0
  289. moovio_sdk/models/components/plaidlinkintegration.py +36 -0
  290. moovio_sdk/models/components/plaidlinkpayload.py +45 -0
  291. moovio_sdk/models/components/plaidpayload.py +42 -0
  292. moovio_sdk/models/components/primaryregulator.py +13 -0
  293. moovio_sdk/models/components/profile.py +27 -0
  294. moovio_sdk/models/components/pullfromcardpaymentmethod.py +33 -0
  295. moovio_sdk/models/components/pushtocardpaymentmethod.py +33 -0
  296. moovio_sdk/models/components/qrcode.py +16 -0
  297. moovio_sdk/models/components/receiptkind.py +10 -0
  298. moovio_sdk/models/components/receiptrequest.py +75 -0
  299. moovio_sdk/models/components/receiptresponse.py +95 -0
  300. moovio_sdk/models/components/recur.py +40 -0
  301. moovio_sdk/models/components/refundcarddetails.py +44 -0
  302. moovio_sdk/models/components/refundcardstatus.py +12 -0
  303. moovio_sdk/models/components/refundstatus.py +11 -0
  304. moovio_sdk/models/components/registerapplepaymerchantdomains.py +22 -0
  305. moovio_sdk/models/components/representative.py +71 -0
  306. moovio_sdk/models/components/representativeresponsibilities.py +42 -0
  307. moovio_sdk/models/components/representativeresponsibilitieserror.py +26 -0
  308. moovio_sdk/models/components/requestcard.py +44 -0
  309. moovio_sdk/models/components/requirementerror.py +24 -0
  310. moovio_sdk/models/components/requirementerrorcode.py +25 -0
  311. moovio_sdk/models/components/requirementid.py +71 -0
  312. moovio_sdk/models/components/returnpolicytype.py +11 -0
  313. moovio_sdk/models/components/reversal.py +23 -0
  314. moovio_sdk/models/components/reversedwithcancellation.py +14 -0
  315. moovio_sdk/models/components/reversedwithrefund.py +16 -0
  316. moovio_sdk/models/components/revoketokenrequest.py +40 -0
  317. moovio_sdk/models/components/rtpcreditpaymentmethod.py +38 -0
  318. moovio_sdk/models/components/rtpfailurecode.py +19 -0
  319. moovio_sdk/models/components/rtprejectioncode.py +25 -0
  320. moovio_sdk/models/components/rtptransactiondetails.py +56 -0
  321. moovio_sdk/models/components/rtptransactionstatus.py +13 -0
  322. moovio_sdk/models/components/runtransfer.py +34 -0
  323. moovio_sdk/models/components/schedulepaymentmethod.py +56 -0
  324. moovio_sdk/models/components/scheduleresponse.py +60 -0
  325. moovio_sdk/models/components/seccode.py +13 -0
  326. moovio_sdk/models/components/security.py +32 -0
  327. moovio_sdk/models/components/sentreceipt.py +27 -0
  328. moovio_sdk/models/components/settings.py +30 -0
  329. moovio_sdk/models/components/sourcedestinationoptions.py +20 -0
  330. moovio_sdk/models/components/sweep.py +80 -0
  331. moovio_sdk/models/components/sweepconfig.py +81 -0
  332. moovio_sdk/models/components/sweepconfigpaymentmethod.py +31 -0
  333. moovio_sdk/models/components/sweepconfigstatus.py +9 -0
  334. moovio_sdk/models/components/sweepstatus.py +13 -0
  335. moovio_sdk/models/components/taxid.py +25 -0
  336. moovio_sdk/models/components/taxidupdate.py +26 -0
  337. moovio_sdk/models/components/terminalapplication.py +55 -0
  338. moovio_sdk/models/components/terminalapplicationplatform.py +12 -0
  339. moovio_sdk/models/components/terminalapplicationstatus.py +13 -0
  340. moovio_sdk/models/components/termsofservice.py +26 -0
  341. moovio_sdk/models/components/termsofserviceerror.py +39 -0
  342. moovio_sdk/models/components/termsofservicetoken.py +17 -0
  343. moovio_sdk/models/components/termsofservicetokenupdate.py +18 -0
  344. moovio_sdk/models/components/tokentype.py +10 -0
  345. moovio_sdk/models/components/transactionsource.py +16 -0
  346. moovio_sdk/models/components/transfer.py +126 -0
  347. moovio_sdk/models/components/transferaccount.py +20 -0
  348. moovio_sdk/models/components/transferdestination.py +83 -0
  349. moovio_sdk/models/components/transferfailurereason.py +14 -0
  350. moovio_sdk/models/components/transferoptions.py +23 -0
  351. moovio_sdk/models/components/transferresponse.py +15 -0
  352. moovio_sdk/models/components/transfersource.py +80 -0
  353. moovio_sdk/models/components/transferstatus.py +16 -0
  354. moovio_sdk/models/components/transferwaitfor.py +8 -0
  355. moovio_sdk/models/components/underwriting.py +56 -0
  356. moovio_sdk/models/components/underwritingstatus.py +16 -0
  357. moovio_sdk/models/components/updateapplepaymerchantdomains.py +26 -0
  358. moovio_sdk/models/components/updatebrand.py +15 -0
  359. moovio_sdk/models/components/updatecard.py +51 -0
  360. moovio_sdk/models/components/updatecardaddress.py +32 -0
  361. moovio_sdk/models/components/updatecardexpiration.py +17 -0
  362. moovio_sdk/models/components/updatecolor.py +14 -0
  363. moovio_sdk/models/components/updatecolors.py +18 -0
  364. moovio_sdk/models/components/updateevidence.py +23 -0
  365. moovio_sdk/models/components/updateissuedcard.py +44 -0
  366. moovio_sdk/models/components/updatepaymentlink.py +98 -0
  367. moovio_sdk/models/components/updaterepresentative.py +224 -0
  368. moovio_sdk/models/components/updateunderwriting.py +43 -0
  369. moovio_sdk/models/components/upsertschedule.py +26 -0
  370. moovio_sdk/models/components/verification.py +54 -0
  371. moovio_sdk/models/components/verificationstatus.py +17 -0
  372. moovio_sdk/models/components/verificationstatusdetail.py +23 -0
  373. moovio_sdk/models/components/volumebycustomertype.py +21 -0
  374. moovio_sdk/models/components/volumebycustomertypeerror.py +22 -0
  375. moovio_sdk/models/components/wallet.py +27 -0
  376. moovio_sdk/models/components/walletavailablebalance.py +30 -0
  377. moovio_sdk/models/components/wallettransaction.py +114 -0
  378. moovio_sdk/models/components/wallettransactionsourcetype.py +13 -0
  379. moovio_sdk/models/components/wallettransactionstatus.py +11 -0
  380. moovio_sdk/models/components/wallettransactiontype.py +32 -0
  381. moovio_sdk/models/errors/__init__.py +155 -0
  382. moovio_sdk/models/errors/addcapabilitieserror.py +23 -0
  383. moovio_sdk/models/errors/apierror.py +22 -0
  384. moovio_sdk/models/errors/assigncountrieserror.py +20 -0
  385. moovio_sdk/models/errors/authtokenrequesterror.py +22 -0
  386. moovio_sdk/models/errors/bankaccountvalidationerror.py +30 -0
  387. moovio_sdk/models/errors/brandvalidationerror.py +23 -0
  388. moovio_sdk/models/errors/cardacquiringrefund.py +44 -0
  389. moovio_sdk/models/errors/createaccount.py +24 -0
  390. moovio_sdk/models/errors/createpaymentlinkerror.py +46 -0
  391. moovio_sdk/models/errors/createsweepconfigerror.py +40 -0
  392. moovio_sdk/models/errors/feeplanagreementerror.py +22 -0
  393. moovio_sdk/models/errors/fileuploadvalidationerror.py +35 -0
  394. moovio_sdk/models/errors/filevalidationerror.py +28 -0
  395. moovio_sdk/models/errors/genericerror.py +19 -0
  396. moovio_sdk/models/errors/linkapplepayerror.py +36 -0
  397. moovio_sdk/models/errors/linkcarderror.py +47 -0
  398. moovio_sdk/models/errors/microdepositvalidationerror.py +20 -0
  399. moovio_sdk/models/errors/onboardinginviteerror.py +34 -0
  400. moovio_sdk/models/errors/patchsweepconfigerror.py +38 -0
  401. moovio_sdk/models/errors/receiptvalidationerror.py +40 -0
  402. moovio_sdk/models/errors/refundvalidationerror.py +23 -0
  403. moovio_sdk/models/errors/representativevalidationerror.py +68 -0
  404. moovio_sdk/models/errors/requestcarderror.py +42 -0
  405. moovio_sdk/models/errors/reversalvalidationerror.py +20 -0
  406. moovio_sdk/models/errors/revoketokenrequesterror.py +22 -0
  407. moovio_sdk/models/errors/schedulevalidationerror.py +24 -0
  408. moovio_sdk/models/errors/terminalapplicationerror.py +30 -0
  409. moovio_sdk/models/errors/transfer.py +108 -0
  410. moovio_sdk/models/errors/transferoptionsvalidationerror.py +24 -0
  411. moovio_sdk/models/errors/transfervalidationerror.py +49 -0
  412. moovio_sdk/models/errors/updateaccount.py +24 -0
  413. moovio_sdk/models/errors/updatecarderror.py +43 -0
  414. moovio_sdk/models/errors/updateissuedcarderror.py +32 -0
  415. moovio_sdk/models/errors/updatepaymentlinkerror.py +36 -0
  416. moovio_sdk/models/errors/updateunderwritingerror.py +70 -0
  417. moovio_sdk/models/internal/__init__.py +6 -0
  418. moovio_sdk/models/internal/globals.py +40 -0
  419. moovio_sdk/models/operations/__init__.py +1824 -0
  420. moovio_sdk/models/operations/acceptdispute.py +71 -0
  421. moovio_sdk/models/operations/assignaccountcountries.py +75 -0
  422. moovio_sdk/models/operations/cancelschedule.py +67 -0
  423. moovio_sdk/models/operations/completebankaccountverification.py +85 -0
  424. moovio_sdk/models/operations/completemicrodeposits.py +87 -0
  425. moovio_sdk/models/operations/createaccesstoken.py +52 -0
  426. moovio_sdk/models/operations/createaccount.py +52 -0
  427. moovio_sdk/models/operations/createapplepaysession.py +81 -0
  428. moovio_sdk/models/operations/createbrand.py +75 -0
  429. moovio_sdk/models/operations/createcancellation.py +75 -0
  430. moovio_sdk/models/operations/createfeeplanagreements.py +80 -0
  431. moovio_sdk/models/operations/createonboardinginvite.py +52 -0
  432. moovio_sdk/models/operations/createpaymentlink.py +78 -0
  433. moovio_sdk/models/operations/createreceipts.py +52 -0
  434. moovio_sdk/models/operations/createrepresentative.py +80 -0
  435. moovio_sdk/models/operations/createreversal.py +98 -0
  436. moovio_sdk/models/operations/createschedule.py +78 -0
  437. moovio_sdk/models/operations/createsweepconfig.py +78 -0
  438. moovio_sdk/models/operations/createterminalapplication.py +54 -0
  439. moovio_sdk/models/operations/createtransfer.py +125 -0
  440. moovio_sdk/models/operations/createtransferoptions.py +52 -0
  441. moovio_sdk/models/operations/deletedisputeevidencefile.py +74 -0
  442. moovio_sdk/models/operations/deleterepresentative.py +71 -0
  443. moovio_sdk/models/operations/deleteterminalapplication.py +60 -0
  444. moovio_sdk/models/operations/disablebankaccount.py +67 -0
  445. moovio_sdk/models/operations/disablecapability.py +76 -0
  446. moovio_sdk/models/operations/disablecard.py +67 -0
  447. moovio_sdk/models/operations/disablepaymentlink.py +67 -0
  448. moovio_sdk/models/operations/disconnectaccount.py +60 -0
  449. moovio_sdk/models/operations/generateendtoendkey.py +60 -0
  450. moovio_sdk/models/operations/getaccount.py +64 -0
  451. moovio_sdk/models/operations/getaccountcountries.py +64 -0
  452. moovio_sdk/models/operations/getadjustment.py +71 -0
  453. moovio_sdk/models/operations/getapplepaymerchantdomains.py +68 -0
  454. moovio_sdk/models/operations/getavatar.py +66 -0
  455. moovio_sdk/models/operations/getbankaccount.py +71 -0
  456. moovio_sdk/models/operations/getbankaccountverification.py +73 -0
  457. moovio_sdk/models/operations/getbrand.py +64 -0
  458. moovio_sdk/models/operations/getcancellation.py +84 -0
  459. moovio_sdk/models/operations/getcapability.py +82 -0
  460. moovio_sdk/models/operations/getcard.py +71 -0
  461. moovio_sdk/models/operations/getdispute.py +71 -0
  462. moovio_sdk/models/operations/getdisputeevidence.py +80 -0
  463. moovio_sdk/models/operations/getdisputeevidencedata.py +90 -0
  464. moovio_sdk/models/operations/getenrichmentaddress.py +178 -0
  465. moovio_sdk/models/operations/getenrichmentprofile.py +64 -0
  466. moovio_sdk/models/operations/getfiledetails.py +71 -0
  467. moovio_sdk/models/operations/getfullissuedcard.py +73 -0
  468. moovio_sdk/models/operations/getissuedcard.py +73 -0
  469. moovio_sdk/models/operations/getissuedcardauthorization.py +75 -0
  470. moovio_sdk/models/operations/getissuedcardtransaction.py +75 -0
  471. moovio_sdk/models/operations/getmerchantprocessingagreement.py +64 -0
  472. moovio_sdk/models/operations/getonboardinginvite.py +62 -0
  473. moovio_sdk/models/operations/getpaymentlink.py +71 -0
  474. moovio_sdk/models/operations/getpaymentlinkqrcode.py +84 -0
  475. moovio_sdk/models/operations/getpaymentmethod.py +71 -0
  476. moovio_sdk/models/operations/getrefund.py +84 -0
  477. moovio_sdk/models/operations/getrepresentative.py +75 -0
  478. moovio_sdk/models/operations/getscheduledoccurrence.py +92 -0
  479. moovio_sdk/models/operations/getschedules.py +71 -0
  480. moovio_sdk/models/operations/getsweep.py +78 -0
  481. moovio_sdk/models/operations/getsweepconfig.py +71 -0
  482. moovio_sdk/models/operations/getterminalapplication.py +66 -0
  483. moovio_sdk/models/operations/gettermsofservicetoken.py +75 -0
  484. moovio_sdk/models/operations/gettransfer.py +73 -0
  485. moovio_sdk/models/operations/getunderwriting.py +64 -0
  486. moovio_sdk/models/operations/getwallet.py +71 -0
  487. moovio_sdk/models/operations/getwallettransaction.py +80 -0
  488. moovio_sdk/models/operations/initiatebankaccountverification.py +89 -0
  489. moovio_sdk/models/operations/initiatemicrodeposits.py +67 -0
  490. moovio_sdk/models/operations/initiaterefund.py +131 -0
  491. moovio_sdk/models/operations/linkapplepaytoken.py +80 -0
  492. moovio_sdk/models/operations/linkbankaccount.py +96 -0
  493. moovio_sdk/models/operations/linkcard.py +96 -0
  494. moovio_sdk/models/operations/listaccounts.py +171 -0
  495. moovio_sdk/models/operations/listadjustments.py +78 -0
  496. moovio_sdk/models/operations/listbankaccounts.py +64 -0
  497. moovio_sdk/models/operations/listcapabilities.py +64 -0
  498. moovio_sdk/models/operations/listcards.py +64 -0
  499. moovio_sdk/models/operations/listdisputeevidence.py +73 -0
  500. moovio_sdk/models/operations/listdisputes.py +172 -0
  501. moovio_sdk/models/operations/listfeeplanagreements.py +101 -0
  502. moovio_sdk/models/operations/listfeeplans.py +78 -0
  503. moovio_sdk/models/operations/listfeesfetch.py +80 -0
  504. moovio_sdk/models/operations/listfiles.py +64 -0
  505. moovio_sdk/models/operations/listindustries.py +62 -0
  506. moovio_sdk/models/operations/listinstitutions.py +92 -0
  507. moovio_sdk/models/operations/listissuedcardauthorizationevents.py +94 -0
  508. moovio_sdk/models/operations/listissuedcardauthorizations.py +126 -0
  509. moovio_sdk/models/operations/listissuedcards.py +94 -0
  510. moovio_sdk/models/operations/listissuedcardtransactions.py +113 -0
  511. moovio_sdk/models/operations/listonboardinginvites.py +60 -0
  512. moovio_sdk/models/operations/listpartnerpricing.py +78 -0
  513. moovio_sdk/models/operations/listpartnerpricingagreements.py +101 -0
  514. moovio_sdk/models/operations/listpaymentlinks.py +64 -0
  515. moovio_sdk/models/operations/listpaymentmethods.py +98 -0
  516. moovio_sdk/models/operations/listreceipts.py +65 -0
  517. moovio_sdk/models/operations/listrefunds.py +75 -0
  518. moovio_sdk/models/operations/listrepresentatives.py +66 -0
  519. moovio_sdk/models/operations/listschedules.py +81 -0
  520. moovio_sdk/models/operations/listsweepconfigs.py +64 -0
  521. moovio_sdk/models/operations/listsweeps.py +108 -0
  522. moovio_sdk/models/operations/listterminalapplications.py +62 -0
  523. moovio_sdk/models/operations/listtransfers.py +145 -0
  524. moovio_sdk/models/operations/listwallets.py +64 -0
  525. moovio_sdk/models/operations/listwallettransactions.py +189 -0
  526. moovio_sdk/models/operations/ping.py +56 -0
  527. moovio_sdk/models/operations/registerapplepaymerchantdomains.py +80 -0
  528. moovio_sdk/models/operations/requestcapabilities.py +78 -0
  529. moovio_sdk/models/operations/requestcard.py +80 -0
  530. moovio_sdk/models/operations/retrievefees.py +117 -0
  531. moovio_sdk/models/operations/revokeaccesstoken.py +48 -0
  532. moovio_sdk/models/operations/revokeonboardinginvite.py +58 -0
  533. moovio_sdk/models/operations/submitdisputeevidence.py +71 -0
  534. moovio_sdk/models/operations/testendtoendtoken.py +56 -0
  535. moovio_sdk/models/operations/updateaccount.py +78 -0
  536. moovio_sdk/models/operations/updateapplepaymerchantdomains.py +78 -0
  537. moovio_sdk/models/operations/updatebrand.py +78 -0
  538. moovio_sdk/models/operations/updatecard.py +85 -0
  539. moovio_sdk/models/operations/updatedisputeevidence.py +92 -0
  540. moovio_sdk/models/operations/updateissuedcard.py +81 -0
  541. moovio_sdk/models/operations/updatepaymentlink.py +85 -0
  542. moovio_sdk/models/operations/updaterepresentative.py +89 -0
  543. moovio_sdk/models/operations/updateschedule.py +85 -0
  544. moovio_sdk/models/operations/updatesweepconfig.py +85 -0
  545. moovio_sdk/models/operations/updatetransfer.py +87 -0
  546. moovio_sdk/models/operations/uploaddisputeevidencefile.py +87 -0
  547. moovio_sdk/models/operations/uploaddisputeevidencetext.py +85 -0
  548. moovio_sdk/models/operations/uploadfile.py +80 -0
  549. moovio_sdk/models/operations/upsertbrand.py +75 -0
  550. moovio_sdk/models/operations/upsertunderwriting.py +78 -0
  551. moovio_sdk/onboarding.py +965 -0
  552. moovio_sdk/payment_links.py +1694 -0
  553. moovio_sdk/payment_methods.py +475 -0
  554. moovio_sdk/ping.py +233 -0
  555. moovio_sdk/py.typed +1 -0
  556. moovio_sdk/receipts.py +507 -0
  557. moovio_sdk/representatives.py +1513 -0
  558. moovio_sdk/scheduling.py +1565 -0
  559. moovio_sdk/sdk.py +242 -0
  560. moovio_sdk/sdkconfiguration.py +59 -0
  561. moovio_sdk/sweeps.py +1617 -0
  562. moovio_sdk/terminal_applications.py +1013 -0
  563. moovio_sdk/transfers.py +3040 -0
  564. moovio_sdk/types/__init__.py +21 -0
  565. moovio_sdk/types/basemodel.py +39 -0
  566. moovio_sdk/underwriting.py +581 -0
  567. moovio_sdk/utils/__init__.py +101 -0
  568. moovio_sdk/utils/annotations.py +55 -0
  569. moovio_sdk/utils/enums.py +34 -0
  570. moovio_sdk/utils/eventstreaming.py +238 -0
  571. moovio_sdk/utils/forms.py +202 -0
  572. moovio_sdk/utils/headers.py +136 -0
  573. moovio_sdk/utils/logger.py +27 -0
  574. moovio_sdk/utils/metadata.py +118 -0
  575. moovio_sdk/utils/queryparams.py +205 -0
  576. moovio_sdk/utils/requestbodies.py +66 -0
  577. moovio_sdk/utils/retries.py +217 -0
  578. moovio_sdk/utils/security.py +195 -0
  579. moovio_sdk/utils/serializers.py +215 -0
  580. moovio_sdk/utils/url.py +155 -0
  581. moovio_sdk/utils/values.py +137 -0
  582. moovio_sdk/wallet_transactions.py +558 -0
  583. moovio_sdk/wallets.py +465 -0
  584. moovio_sdk-0.3.8.dist-info/METADATA +1920 -0
  585. moovio_sdk-0.3.8.dist-info/RECORD +586 -0
  586. moovio_sdk-0.3.8.dist-info/WHEEL +4 -0
moovio_sdk/disputes.py ADDED
@@ -0,0 +1,2985 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from datetime import datetime
5
+ from enum import Enum
6
+ from moovio_sdk import utils
7
+ from moovio_sdk._hooks import HookContext
8
+ from moovio_sdk.models import components, errors, operations
9
+ from moovio_sdk.types import OptionalNullable, UNSET
10
+ from moovio_sdk.utils import get_security_from_env
11
+ from typing import Any, List, Mapping, Optional, Union
12
+
13
+
14
+ class GetEvidenceDataAcceptEnum(str, Enum):
15
+ APPLICATION_PDF = "application/pdf"
16
+ IMAGE_JPEG = "image/jpeg"
17
+ IMAGE_TIFF = "image/tiff"
18
+
19
+
20
+ class Disputes(BaseSDK):
21
+ def list(
22
+ self,
23
+ *,
24
+ account_id: str,
25
+ skip: Optional[int] = None,
26
+ count: Optional[int] = None,
27
+ start_date_time: Optional[datetime] = None,
28
+ end_date_time: Optional[datetime] = None,
29
+ respond_start_date_time: Optional[datetime] = None,
30
+ respond_end_date_time: Optional[datetime] = None,
31
+ status: Optional[components.DisputeStatus] = None,
32
+ merchant_account_id: Optional[str] = None,
33
+ cardholder_account_id: Optional[str] = None,
34
+ dispute_i_ds: Optional[List[str]] = None,
35
+ transfer_i_ds: Optional[List[str]] = None,
36
+ order_by: Optional[str] = None,
37
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
38
+ server_url: Optional[str] = None,
39
+ timeout_ms: Optional[int] = None,
40
+ http_headers: Optional[Mapping[str, str]] = None,
41
+ ) -> operations.ListDisputesResponse:
42
+ r"""Returns the list of disputes.
43
+
44
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
45
+
46
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
47
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
48
+
49
+ :param account_id:
50
+ :param skip:
51
+ :param count:
52
+ :param start_date_time: Optional date-time parameter to filter all disputes created on and after the provided date and time.
53
+ :param end_date_time: Optional date-time parameter to filter all disputes created on and before the provided date and time.
54
+ :param respond_start_date_time: Optional date-time which exclusively filters all disputes with respond by before this date-time.
55
+ :param respond_end_date_time: Optional date-time which exclusively filters all disputes with respond by before this date-time.
56
+ :param status: Optional dispute status by which to filter the disputes.
57
+ :param merchant_account_id: Optional parameter to filter by merchant account ID.
58
+ :param cardholder_account_id: Optional parameter to filter by cardholder account ID.
59
+ :param dispute_i_ds: Optional parameter to filter by a comma separated list of dispute IDs.
60
+ :param transfer_i_ds: Optional parameter to filter by a comma separated list of transfer IDs.
61
+ :param order_by:
62
+ :param retries: Override the default retry configuration for this method
63
+ :param server_url: Override the default server URL for this method
64
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
65
+ :param http_headers: Additional headers to set or replace on requests.
66
+ """
67
+ base_url = None
68
+ url_variables = None
69
+ if timeout_ms is None:
70
+ timeout_ms = self.sdk_configuration.timeout_ms
71
+
72
+ if server_url is not None:
73
+ base_url = server_url
74
+ else:
75
+ base_url = self._get_url(base_url, url_variables)
76
+
77
+ request = operations.ListDisputesRequest(
78
+ account_id=account_id,
79
+ skip=skip,
80
+ count=count,
81
+ start_date_time=start_date_time,
82
+ end_date_time=end_date_time,
83
+ respond_start_date_time=respond_start_date_time,
84
+ respond_end_date_time=respond_end_date_time,
85
+ status=status,
86
+ merchant_account_id=merchant_account_id,
87
+ cardholder_account_id=cardholder_account_id,
88
+ dispute_i_ds=dispute_i_ds,
89
+ transfer_i_ds=transfer_i_ds,
90
+ order_by=order_by,
91
+ )
92
+
93
+ req = self._build_request(
94
+ method="GET",
95
+ path="/accounts/{accountID}/disputes",
96
+ base_url=base_url,
97
+ url_variables=url_variables,
98
+ request=request,
99
+ request_body_required=False,
100
+ request_has_path_params=True,
101
+ request_has_query_params=True,
102
+ user_agent_header="user-agent",
103
+ accept_header_value="application/json",
104
+ http_headers=http_headers,
105
+ _globals=operations.ListDisputesGlobals(
106
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
107
+ ),
108
+ security=self.sdk_configuration.security,
109
+ timeout_ms=timeout_ms,
110
+ )
111
+
112
+ if retries == UNSET:
113
+ if self.sdk_configuration.retry_config is not UNSET:
114
+ retries = self.sdk_configuration.retry_config
115
+
116
+ retry_config = None
117
+ if isinstance(retries, utils.RetryConfig):
118
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
119
+
120
+ http_res = self.do_request(
121
+ hook_ctx=HookContext(
122
+ base_url=base_url or "",
123
+ operation_id="listDisputes",
124
+ oauth2_scopes=[],
125
+ security_source=get_security_from_env(
126
+ self.sdk_configuration.security, components.Security
127
+ ),
128
+ ),
129
+ request=req,
130
+ error_status_codes=[
131
+ "400",
132
+ "401",
133
+ "403",
134
+ "409",
135
+ "429",
136
+ "4XX",
137
+ "500",
138
+ "504",
139
+ "5XX",
140
+ ],
141
+ retry_config=retry_config,
142
+ )
143
+
144
+ response_data: Any = None
145
+ if utils.match_response(http_res, "200", "application/json"):
146
+ return operations.ListDisputesResponse(
147
+ result=utils.unmarshal_json(http_res.text, List[components.Dispute]),
148
+ headers=utils.get_response_headers(http_res.headers),
149
+ )
150
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
151
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
152
+ raise errors.GenericError(data=response_data)
153
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
154
+ http_res_text = utils.stream_to_text(http_res)
155
+ raise errors.APIError(
156
+ "API error occurred", http_res.status_code, http_res_text, http_res
157
+ )
158
+ if utils.match_response(http_res, ["500", "504"], "*"):
159
+ http_res_text = utils.stream_to_text(http_res)
160
+ raise errors.APIError(
161
+ "API error occurred", http_res.status_code, http_res_text, http_res
162
+ )
163
+ if utils.match_response(http_res, "4XX", "*"):
164
+ http_res_text = utils.stream_to_text(http_res)
165
+ raise errors.APIError(
166
+ "API error occurred", http_res.status_code, http_res_text, http_res
167
+ )
168
+ if utils.match_response(http_res, "5XX", "*"):
169
+ http_res_text = utils.stream_to_text(http_res)
170
+ raise errors.APIError(
171
+ "API error occurred", http_res.status_code, http_res_text, http_res
172
+ )
173
+
174
+ content_type = http_res.headers.get("Content-Type")
175
+ http_res_text = utils.stream_to_text(http_res)
176
+ raise errors.APIError(
177
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
178
+ http_res.status_code,
179
+ http_res_text,
180
+ http_res,
181
+ )
182
+
183
+ async def list_async(
184
+ self,
185
+ *,
186
+ account_id: str,
187
+ skip: Optional[int] = None,
188
+ count: Optional[int] = None,
189
+ start_date_time: Optional[datetime] = None,
190
+ end_date_time: Optional[datetime] = None,
191
+ respond_start_date_time: Optional[datetime] = None,
192
+ respond_end_date_time: Optional[datetime] = None,
193
+ status: Optional[components.DisputeStatus] = None,
194
+ merchant_account_id: Optional[str] = None,
195
+ cardholder_account_id: Optional[str] = None,
196
+ dispute_i_ds: Optional[List[str]] = None,
197
+ transfer_i_ds: Optional[List[str]] = None,
198
+ order_by: Optional[str] = None,
199
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
200
+ server_url: Optional[str] = None,
201
+ timeout_ms: Optional[int] = None,
202
+ http_headers: Optional[Mapping[str, str]] = None,
203
+ ) -> operations.ListDisputesResponse:
204
+ r"""Returns the list of disputes.
205
+
206
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
207
+
208
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
209
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
210
+
211
+ :param account_id:
212
+ :param skip:
213
+ :param count:
214
+ :param start_date_time: Optional date-time parameter to filter all disputes created on and after the provided date and time.
215
+ :param end_date_time: Optional date-time parameter to filter all disputes created on and before the provided date and time.
216
+ :param respond_start_date_time: Optional date-time which exclusively filters all disputes with respond by before this date-time.
217
+ :param respond_end_date_time: Optional date-time which exclusively filters all disputes with respond by before this date-time.
218
+ :param status: Optional dispute status by which to filter the disputes.
219
+ :param merchant_account_id: Optional parameter to filter by merchant account ID.
220
+ :param cardholder_account_id: Optional parameter to filter by cardholder account ID.
221
+ :param dispute_i_ds: Optional parameter to filter by a comma separated list of dispute IDs.
222
+ :param transfer_i_ds: Optional parameter to filter by a comma separated list of transfer IDs.
223
+ :param order_by:
224
+ :param retries: Override the default retry configuration for this method
225
+ :param server_url: Override the default server URL for this method
226
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
227
+ :param http_headers: Additional headers to set or replace on requests.
228
+ """
229
+ base_url = None
230
+ url_variables = None
231
+ if timeout_ms is None:
232
+ timeout_ms = self.sdk_configuration.timeout_ms
233
+
234
+ if server_url is not None:
235
+ base_url = server_url
236
+ else:
237
+ base_url = self._get_url(base_url, url_variables)
238
+
239
+ request = operations.ListDisputesRequest(
240
+ account_id=account_id,
241
+ skip=skip,
242
+ count=count,
243
+ start_date_time=start_date_time,
244
+ end_date_time=end_date_time,
245
+ respond_start_date_time=respond_start_date_time,
246
+ respond_end_date_time=respond_end_date_time,
247
+ status=status,
248
+ merchant_account_id=merchant_account_id,
249
+ cardholder_account_id=cardholder_account_id,
250
+ dispute_i_ds=dispute_i_ds,
251
+ transfer_i_ds=transfer_i_ds,
252
+ order_by=order_by,
253
+ )
254
+
255
+ req = self._build_request_async(
256
+ method="GET",
257
+ path="/accounts/{accountID}/disputes",
258
+ base_url=base_url,
259
+ url_variables=url_variables,
260
+ request=request,
261
+ request_body_required=False,
262
+ request_has_path_params=True,
263
+ request_has_query_params=True,
264
+ user_agent_header="user-agent",
265
+ accept_header_value="application/json",
266
+ http_headers=http_headers,
267
+ _globals=operations.ListDisputesGlobals(
268
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
269
+ ),
270
+ security=self.sdk_configuration.security,
271
+ timeout_ms=timeout_ms,
272
+ )
273
+
274
+ if retries == UNSET:
275
+ if self.sdk_configuration.retry_config is not UNSET:
276
+ retries = self.sdk_configuration.retry_config
277
+
278
+ retry_config = None
279
+ if isinstance(retries, utils.RetryConfig):
280
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
281
+
282
+ http_res = await self.do_request_async(
283
+ hook_ctx=HookContext(
284
+ base_url=base_url or "",
285
+ operation_id="listDisputes",
286
+ oauth2_scopes=[],
287
+ security_source=get_security_from_env(
288
+ self.sdk_configuration.security, components.Security
289
+ ),
290
+ ),
291
+ request=req,
292
+ error_status_codes=[
293
+ "400",
294
+ "401",
295
+ "403",
296
+ "409",
297
+ "429",
298
+ "4XX",
299
+ "500",
300
+ "504",
301
+ "5XX",
302
+ ],
303
+ retry_config=retry_config,
304
+ )
305
+
306
+ response_data: Any = None
307
+ if utils.match_response(http_res, "200", "application/json"):
308
+ return operations.ListDisputesResponse(
309
+ result=utils.unmarshal_json(http_res.text, List[components.Dispute]),
310
+ headers=utils.get_response_headers(http_res.headers),
311
+ )
312
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
313
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
314
+ raise errors.GenericError(data=response_data)
315
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
316
+ http_res_text = await utils.stream_to_text_async(http_res)
317
+ raise errors.APIError(
318
+ "API error occurred", http_res.status_code, http_res_text, http_res
319
+ )
320
+ if utils.match_response(http_res, ["500", "504"], "*"):
321
+ http_res_text = await utils.stream_to_text_async(http_res)
322
+ raise errors.APIError(
323
+ "API error occurred", http_res.status_code, http_res_text, http_res
324
+ )
325
+ if utils.match_response(http_res, "4XX", "*"):
326
+ http_res_text = await utils.stream_to_text_async(http_res)
327
+ raise errors.APIError(
328
+ "API error occurred", http_res.status_code, http_res_text, http_res
329
+ )
330
+ if utils.match_response(http_res, "5XX", "*"):
331
+ http_res_text = await utils.stream_to_text_async(http_res)
332
+ raise errors.APIError(
333
+ "API error occurred", http_res.status_code, http_res_text, http_res
334
+ )
335
+
336
+ content_type = http_res.headers.get("Content-Type")
337
+ http_res_text = await utils.stream_to_text_async(http_res)
338
+ raise errors.APIError(
339
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
340
+ http_res.status_code,
341
+ http_res_text,
342
+ http_res,
343
+ )
344
+
345
+ def get(
346
+ self,
347
+ *,
348
+ account_id: str,
349
+ dispute_id: str,
350
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
351
+ server_url: Optional[str] = None,
352
+ timeout_ms: Optional[int] = None,
353
+ http_headers: Optional[Mapping[str, str]] = None,
354
+ ) -> operations.GetDisputeResponse:
355
+ r"""Get a dispute by ID.
356
+
357
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
358
+
359
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
360
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
361
+
362
+ :param account_id:
363
+ :param dispute_id:
364
+ :param retries: Override the default retry configuration for this method
365
+ :param server_url: Override the default server URL for this method
366
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
367
+ :param http_headers: Additional headers to set or replace on requests.
368
+ """
369
+ base_url = None
370
+ url_variables = None
371
+ if timeout_ms is None:
372
+ timeout_ms = self.sdk_configuration.timeout_ms
373
+
374
+ if server_url is not None:
375
+ base_url = server_url
376
+ else:
377
+ base_url = self._get_url(base_url, url_variables)
378
+
379
+ request = operations.GetDisputeRequest(
380
+ account_id=account_id,
381
+ dispute_id=dispute_id,
382
+ )
383
+
384
+ req = self._build_request(
385
+ method="GET",
386
+ path="/accounts/{accountID}/disputes/{disputeID}",
387
+ base_url=base_url,
388
+ url_variables=url_variables,
389
+ request=request,
390
+ request_body_required=False,
391
+ request_has_path_params=True,
392
+ request_has_query_params=True,
393
+ user_agent_header="user-agent",
394
+ accept_header_value="application/json",
395
+ http_headers=http_headers,
396
+ _globals=operations.GetDisputeGlobals(
397
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
398
+ ),
399
+ security=self.sdk_configuration.security,
400
+ timeout_ms=timeout_ms,
401
+ )
402
+
403
+ if retries == UNSET:
404
+ if self.sdk_configuration.retry_config is not UNSET:
405
+ retries = self.sdk_configuration.retry_config
406
+
407
+ retry_config = None
408
+ if isinstance(retries, utils.RetryConfig):
409
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
410
+
411
+ http_res = self.do_request(
412
+ hook_ctx=HookContext(
413
+ base_url=base_url or "",
414
+ operation_id="getDispute",
415
+ oauth2_scopes=[],
416
+ security_source=get_security_from_env(
417
+ self.sdk_configuration.security, components.Security
418
+ ),
419
+ ),
420
+ request=req,
421
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
422
+ retry_config=retry_config,
423
+ )
424
+
425
+ if utils.match_response(http_res, "200", "application/json"):
426
+ return operations.GetDisputeResponse(
427
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
428
+ headers=utils.get_response_headers(http_res.headers),
429
+ )
430
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
431
+ http_res_text = utils.stream_to_text(http_res)
432
+ raise errors.APIError(
433
+ "API error occurred", http_res.status_code, http_res_text, http_res
434
+ )
435
+ if utils.match_response(http_res, ["500", "504"], "*"):
436
+ http_res_text = utils.stream_to_text(http_res)
437
+ raise errors.APIError(
438
+ "API error occurred", http_res.status_code, http_res_text, http_res
439
+ )
440
+ if utils.match_response(http_res, "4XX", "*"):
441
+ http_res_text = utils.stream_to_text(http_res)
442
+ raise errors.APIError(
443
+ "API error occurred", http_res.status_code, http_res_text, http_res
444
+ )
445
+ if utils.match_response(http_res, "5XX", "*"):
446
+ http_res_text = utils.stream_to_text(http_res)
447
+ raise errors.APIError(
448
+ "API error occurred", http_res.status_code, http_res_text, http_res
449
+ )
450
+
451
+ content_type = http_res.headers.get("Content-Type")
452
+ http_res_text = utils.stream_to_text(http_res)
453
+ raise errors.APIError(
454
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
455
+ http_res.status_code,
456
+ http_res_text,
457
+ http_res,
458
+ )
459
+
460
+ async def get_async(
461
+ self,
462
+ *,
463
+ account_id: str,
464
+ dispute_id: str,
465
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
466
+ server_url: Optional[str] = None,
467
+ timeout_ms: Optional[int] = None,
468
+ http_headers: Optional[Mapping[str, str]] = None,
469
+ ) -> operations.GetDisputeResponse:
470
+ r"""Get a dispute by ID.
471
+
472
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
473
+
474
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
475
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
476
+
477
+ :param account_id:
478
+ :param dispute_id:
479
+ :param retries: Override the default retry configuration for this method
480
+ :param server_url: Override the default server URL for this method
481
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
482
+ :param http_headers: Additional headers to set or replace on requests.
483
+ """
484
+ base_url = None
485
+ url_variables = None
486
+ if timeout_ms is None:
487
+ timeout_ms = self.sdk_configuration.timeout_ms
488
+
489
+ if server_url is not None:
490
+ base_url = server_url
491
+ else:
492
+ base_url = self._get_url(base_url, url_variables)
493
+
494
+ request = operations.GetDisputeRequest(
495
+ account_id=account_id,
496
+ dispute_id=dispute_id,
497
+ )
498
+
499
+ req = self._build_request_async(
500
+ method="GET",
501
+ path="/accounts/{accountID}/disputes/{disputeID}",
502
+ base_url=base_url,
503
+ url_variables=url_variables,
504
+ request=request,
505
+ request_body_required=False,
506
+ request_has_path_params=True,
507
+ request_has_query_params=True,
508
+ user_agent_header="user-agent",
509
+ accept_header_value="application/json",
510
+ http_headers=http_headers,
511
+ _globals=operations.GetDisputeGlobals(
512
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
513
+ ),
514
+ security=self.sdk_configuration.security,
515
+ timeout_ms=timeout_ms,
516
+ )
517
+
518
+ if retries == UNSET:
519
+ if self.sdk_configuration.retry_config is not UNSET:
520
+ retries = self.sdk_configuration.retry_config
521
+
522
+ retry_config = None
523
+ if isinstance(retries, utils.RetryConfig):
524
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
525
+
526
+ http_res = await self.do_request_async(
527
+ hook_ctx=HookContext(
528
+ base_url=base_url or "",
529
+ operation_id="getDispute",
530
+ oauth2_scopes=[],
531
+ security_source=get_security_from_env(
532
+ self.sdk_configuration.security, components.Security
533
+ ),
534
+ ),
535
+ request=req,
536
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
537
+ retry_config=retry_config,
538
+ )
539
+
540
+ if utils.match_response(http_res, "200", "application/json"):
541
+ return operations.GetDisputeResponse(
542
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
543
+ headers=utils.get_response_headers(http_res.headers),
544
+ )
545
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
546
+ http_res_text = await utils.stream_to_text_async(http_res)
547
+ raise errors.APIError(
548
+ "API error occurred", http_res.status_code, http_res_text, http_res
549
+ )
550
+ if utils.match_response(http_res, ["500", "504"], "*"):
551
+ http_res_text = await utils.stream_to_text_async(http_res)
552
+ raise errors.APIError(
553
+ "API error occurred", http_res.status_code, http_res_text, http_res
554
+ )
555
+ if utils.match_response(http_res, "4XX", "*"):
556
+ http_res_text = await utils.stream_to_text_async(http_res)
557
+ raise errors.APIError(
558
+ "API error occurred", http_res.status_code, http_res_text, http_res
559
+ )
560
+ if utils.match_response(http_res, "5XX", "*"):
561
+ http_res_text = await utils.stream_to_text_async(http_res)
562
+ raise errors.APIError(
563
+ "API error occurred", http_res.status_code, http_res_text, http_res
564
+ )
565
+
566
+ content_type = http_res.headers.get("Content-Type")
567
+ http_res_text = await utils.stream_to_text_async(http_res)
568
+ raise errors.APIError(
569
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
570
+ http_res.status_code,
571
+ http_res_text,
572
+ http_res,
573
+ )
574
+
575
+ def accept(
576
+ self,
577
+ *,
578
+ account_id: str,
579
+ dispute_id: str,
580
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
581
+ server_url: Optional[str] = None,
582
+ timeout_ms: Optional[int] = None,
583
+ http_headers: Optional[Mapping[str, str]] = None,
584
+ ) -> operations.AcceptDisputeResponse:
585
+ r"""Accepts liability for a dispute.
586
+
587
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
588
+
589
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
590
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
591
+
592
+ :param account_id:
593
+ :param dispute_id:
594
+ :param retries: Override the default retry configuration for this method
595
+ :param server_url: Override the default server URL for this method
596
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
597
+ :param http_headers: Additional headers to set or replace on requests.
598
+ """
599
+ base_url = None
600
+ url_variables = None
601
+ if timeout_ms is None:
602
+ timeout_ms = self.sdk_configuration.timeout_ms
603
+
604
+ if server_url is not None:
605
+ base_url = server_url
606
+ else:
607
+ base_url = self._get_url(base_url, url_variables)
608
+
609
+ request = operations.AcceptDisputeRequest(
610
+ account_id=account_id,
611
+ dispute_id=dispute_id,
612
+ )
613
+
614
+ req = self._build_request(
615
+ method="POST",
616
+ path="/accounts/{accountID}/disputes/{disputeID}/accept",
617
+ base_url=base_url,
618
+ url_variables=url_variables,
619
+ request=request,
620
+ request_body_required=False,
621
+ request_has_path_params=True,
622
+ request_has_query_params=True,
623
+ user_agent_header="user-agent",
624
+ accept_header_value="application/json",
625
+ http_headers=http_headers,
626
+ _globals=operations.AcceptDisputeGlobals(
627
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
628
+ ),
629
+ security=self.sdk_configuration.security,
630
+ timeout_ms=timeout_ms,
631
+ )
632
+
633
+ if retries == UNSET:
634
+ if self.sdk_configuration.retry_config is not UNSET:
635
+ retries = self.sdk_configuration.retry_config
636
+
637
+ retry_config = None
638
+ if isinstance(retries, utils.RetryConfig):
639
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
640
+
641
+ http_res = self.do_request(
642
+ hook_ctx=HookContext(
643
+ base_url=base_url or "",
644
+ operation_id="acceptDispute",
645
+ oauth2_scopes=[],
646
+ security_source=get_security_from_env(
647
+ self.sdk_configuration.security, components.Security
648
+ ),
649
+ ),
650
+ request=req,
651
+ error_status_codes=[
652
+ "400",
653
+ "401",
654
+ "403",
655
+ "404",
656
+ "409",
657
+ "429",
658
+ "4XX",
659
+ "500",
660
+ "504",
661
+ "5XX",
662
+ ],
663
+ retry_config=retry_config,
664
+ )
665
+
666
+ response_data: Any = None
667
+ if utils.match_response(http_res, "200", "application/json"):
668
+ return operations.AcceptDisputeResponse(
669
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
670
+ headers=utils.get_response_headers(http_res.headers),
671
+ )
672
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
673
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
674
+ raise errors.GenericError(data=response_data)
675
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
676
+ http_res_text = utils.stream_to_text(http_res)
677
+ raise errors.APIError(
678
+ "API error occurred", http_res.status_code, http_res_text, http_res
679
+ )
680
+ if utils.match_response(http_res, ["500", "504"], "*"):
681
+ http_res_text = utils.stream_to_text(http_res)
682
+ raise errors.APIError(
683
+ "API error occurred", http_res.status_code, http_res_text, http_res
684
+ )
685
+ if utils.match_response(http_res, "4XX", "*"):
686
+ http_res_text = utils.stream_to_text(http_res)
687
+ raise errors.APIError(
688
+ "API error occurred", http_res.status_code, http_res_text, http_res
689
+ )
690
+ if utils.match_response(http_res, "5XX", "*"):
691
+ http_res_text = utils.stream_to_text(http_res)
692
+ raise errors.APIError(
693
+ "API error occurred", http_res.status_code, http_res_text, http_res
694
+ )
695
+
696
+ content_type = http_res.headers.get("Content-Type")
697
+ http_res_text = utils.stream_to_text(http_res)
698
+ raise errors.APIError(
699
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
700
+ http_res.status_code,
701
+ http_res_text,
702
+ http_res,
703
+ )
704
+
705
+ async def accept_async(
706
+ self,
707
+ *,
708
+ account_id: str,
709
+ dispute_id: str,
710
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
711
+ server_url: Optional[str] = None,
712
+ timeout_ms: Optional[int] = None,
713
+ http_headers: Optional[Mapping[str, str]] = None,
714
+ ) -> operations.AcceptDisputeResponse:
715
+ r"""Accepts liability for a dispute.
716
+
717
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
718
+
719
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
720
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
721
+
722
+ :param account_id:
723
+ :param dispute_id:
724
+ :param retries: Override the default retry configuration for this method
725
+ :param server_url: Override the default server URL for this method
726
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
727
+ :param http_headers: Additional headers to set or replace on requests.
728
+ """
729
+ base_url = None
730
+ url_variables = None
731
+ if timeout_ms is None:
732
+ timeout_ms = self.sdk_configuration.timeout_ms
733
+
734
+ if server_url is not None:
735
+ base_url = server_url
736
+ else:
737
+ base_url = self._get_url(base_url, url_variables)
738
+
739
+ request = operations.AcceptDisputeRequest(
740
+ account_id=account_id,
741
+ dispute_id=dispute_id,
742
+ )
743
+
744
+ req = self._build_request_async(
745
+ method="POST",
746
+ path="/accounts/{accountID}/disputes/{disputeID}/accept",
747
+ base_url=base_url,
748
+ url_variables=url_variables,
749
+ request=request,
750
+ request_body_required=False,
751
+ request_has_path_params=True,
752
+ request_has_query_params=True,
753
+ user_agent_header="user-agent",
754
+ accept_header_value="application/json",
755
+ http_headers=http_headers,
756
+ _globals=operations.AcceptDisputeGlobals(
757
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
758
+ ),
759
+ security=self.sdk_configuration.security,
760
+ timeout_ms=timeout_ms,
761
+ )
762
+
763
+ if retries == UNSET:
764
+ if self.sdk_configuration.retry_config is not UNSET:
765
+ retries = self.sdk_configuration.retry_config
766
+
767
+ retry_config = None
768
+ if isinstance(retries, utils.RetryConfig):
769
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
770
+
771
+ http_res = await self.do_request_async(
772
+ hook_ctx=HookContext(
773
+ base_url=base_url or "",
774
+ operation_id="acceptDispute",
775
+ oauth2_scopes=[],
776
+ security_source=get_security_from_env(
777
+ self.sdk_configuration.security, components.Security
778
+ ),
779
+ ),
780
+ request=req,
781
+ error_status_codes=[
782
+ "400",
783
+ "401",
784
+ "403",
785
+ "404",
786
+ "409",
787
+ "429",
788
+ "4XX",
789
+ "500",
790
+ "504",
791
+ "5XX",
792
+ ],
793
+ retry_config=retry_config,
794
+ )
795
+
796
+ response_data: Any = None
797
+ if utils.match_response(http_res, "200", "application/json"):
798
+ return operations.AcceptDisputeResponse(
799
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
800
+ headers=utils.get_response_headers(http_res.headers),
801
+ )
802
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
803
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
804
+ raise errors.GenericError(data=response_data)
805
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
806
+ http_res_text = await utils.stream_to_text_async(http_res)
807
+ raise errors.APIError(
808
+ "API error occurred", http_res.status_code, http_res_text, http_res
809
+ )
810
+ if utils.match_response(http_res, ["500", "504"], "*"):
811
+ http_res_text = await utils.stream_to_text_async(http_res)
812
+ raise errors.APIError(
813
+ "API error occurred", http_res.status_code, http_res_text, http_res
814
+ )
815
+ if utils.match_response(http_res, "4XX", "*"):
816
+ http_res_text = await utils.stream_to_text_async(http_res)
817
+ raise errors.APIError(
818
+ "API error occurred", http_res.status_code, http_res_text, http_res
819
+ )
820
+ if utils.match_response(http_res, "5XX", "*"):
821
+ http_res_text = await utils.stream_to_text_async(http_res)
822
+ raise errors.APIError(
823
+ "API error occurred", http_res.status_code, http_res_text, http_res
824
+ )
825
+
826
+ content_type = http_res.headers.get("Content-Type")
827
+ http_res_text = await utils.stream_to_text_async(http_res)
828
+ raise errors.APIError(
829
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
830
+ http_res.status_code,
831
+ http_res_text,
832
+ http_res,
833
+ )
834
+
835
+ def list_evidence(
836
+ self,
837
+ *,
838
+ account_id: str,
839
+ dispute_id: str,
840
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
841
+ server_url: Optional[str] = None,
842
+ timeout_ms: Optional[int] = None,
843
+ http_headers: Optional[Mapping[str, str]] = None,
844
+ ) -> operations.ListDisputeEvidenceResponse:
845
+ r"""Returns a dispute's public evidence by its ID.
846
+
847
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
848
+
849
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
850
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
851
+
852
+ :param account_id:
853
+ :param dispute_id:
854
+ :param retries: Override the default retry configuration for this method
855
+ :param server_url: Override the default server URL for this method
856
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
857
+ :param http_headers: Additional headers to set or replace on requests.
858
+ """
859
+ base_url = None
860
+ url_variables = None
861
+ if timeout_ms is None:
862
+ timeout_ms = self.sdk_configuration.timeout_ms
863
+
864
+ if server_url is not None:
865
+ base_url = server_url
866
+ else:
867
+ base_url = self._get_url(base_url, url_variables)
868
+
869
+ request = operations.ListDisputeEvidenceRequest(
870
+ account_id=account_id,
871
+ dispute_id=dispute_id,
872
+ )
873
+
874
+ req = self._build_request(
875
+ method="GET",
876
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence",
877
+ base_url=base_url,
878
+ url_variables=url_variables,
879
+ request=request,
880
+ request_body_required=False,
881
+ request_has_path_params=True,
882
+ request_has_query_params=True,
883
+ user_agent_header="user-agent",
884
+ accept_header_value="application/json",
885
+ http_headers=http_headers,
886
+ _globals=operations.ListDisputeEvidenceGlobals(
887
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
888
+ ),
889
+ security=self.sdk_configuration.security,
890
+ timeout_ms=timeout_ms,
891
+ )
892
+
893
+ if retries == UNSET:
894
+ if self.sdk_configuration.retry_config is not UNSET:
895
+ retries = self.sdk_configuration.retry_config
896
+
897
+ retry_config = None
898
+ if isinstance(retries, utils.RetryConfig):
899
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
900
+
901
+ http_res = self.do_request(
902
+ hook_ctx=HookContext(
903
+ base_url=base_url or "",
904
+ operation_id="listDisputeEvidence",
905
+ oauth2_scopes=[],
906
+ security_source=get_security_from_env(
907
+ self.sdk_configuration.security, components.Security
908
+ ),
909
+ ),
910
+ request=req,
911
+ error_status_codes=["401", "403", "429", "4XX", "500", "504", "5XX"],
912
+ retry_config=retry_config,
913
+ )
914
+
915
+ if utils.match_response(http_res, "200", "application/json"):
916
+ return operations.ListDisputeEvidenceResponse(
917
+ result=utils.unmarshal_json(
918
+ http_res.text, List[components.DisputeEvidenceResponse]
919
+ ),
920
+ headers=utils.get_response_headers(http_res.headers),
921
+ )
922
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
923
+ http_res_text = utils.stream_to_text(http_res)
924
+ raise errors.APIError(
925
+ "API error occurred", http_res.status_code, http_res_text, http_res
926
+ )
927
+ if utils.match_response(http_res, ["500", "504"], "*"):
928
+ http_res_text = utils.stream_to_text(http_res)
929
+ raise errors.APIError(
930
+ "API error occurred", http_res.status_code, http_res_text, http_res
931
+ )
932
+ if utils.match_response(http_res, "4XX", "*"):
933
+ http_res_text = utils.stream_to_text(http_res)
934
+ raise errors.APIError(
935
+ "API error occurred", http_res.status_code, http_res_text, http_res
936
+ )
937
+ if utils.match_response(http_res, "5XX", "*"):
938
+ http_res_text = utils.stream_to_text(http_res)
939
+ raise errors.APIError(
940
+ "API error occurred", http_res.status_code, http_res_text, http_res
941
+ )
942
+
943
+ content_type = http_res.headers.get("Content-Type")
944
+ http_res_text = utils.stream_to_text(http_res)
945
+ raise errors.APIError(
946
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
947
+ http_res.status_code,
948
+ http_res_text,
949
+ http_res,
950
+ )
951
+
952
+ async def list_evidence_async(
953
+ self,
954
+ *,
955
+ account_id: str,
956
+ dispute_id: str,
957
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
958
+ server_url: Optional[str] = None,
959
+ timeout_ms: Optional[int] = None,
960
+ http_headers: Optional[Mapping[str, str]] = None,
961
+ ) -> operations.ListDisputeEvidenceResponse:
962
+ r"""Returns a dispute's public evidence by its ID.
963
+
964
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
965
+
966
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
967
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
968
+
969
+ :param account_id:
970
+ :param dispute_id:
971
+ :param retries: Override the default retry configuration for this method
972
+ :param server_url: Override the default server URL for this method
973
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
974
+ :param http_headers: Additional headers to set or replace on requests.
975
+ """
976
+ base_url = None
977
+ url_variables = None
978
+ if timeout_ms is None:
979
+ timeout_ms = self.sdk_configuration.timeout_ms
980
+
981
+ if server_url is not None:
982
+ base_url = server_url
983
+ else:
984
+ base_url = self._get_url(base_url, url_variables)
985
+
986
+ request = operations.ListDisputeEvidenceRequest(
987
+ account_id=account_id,
988
+ dispute_id=dispute_id,
989
+ )
990
+
991
+ req = self._build_request_async(
992
+ method="GET",
993
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence",
994
+ base_url=base_url,
995
+ url_variables=url_variables,
996
+ request=request,
997
+ request_body_required=False,
998
+ request_has_path_params=True,
999
+ request_has_query_params=True,
1000
+ user_agent_header="user-agent",
1001
+ accept_header_value="application/json",
1002
+ http_headers=http_headers,
1003
+ _globals=operations.ListDisputeEvidenceGlobals(
1004
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1005
+ ),
1006
+ security=self.sdk_configuration.security,
1007
+ timeout_ms=timeout_ms,
1008
+ )
1009
+
1010
+ if retries == UNSET:
1011
+ if self.sdk_configuration.retry_config is not UNSET:
1012
+ retries = self.sdk_configuration.retry_config
1013
+
1014
+ retry_config = None
1015
+ if isinstance(retries, utils.RetryConfig):
1016
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1017
+
1018
+ http_res = await self.do_request_async(
1019
+ hook_ctx=HookContext(
1020
+ base_url=base_url or "",
1021
+ operation_id="listDisputeEvidence",
1022
+ oauth2_scopes=[],
1023
+ security_source=get_security_from_env(
1024
+ self.sdk_configuration.security, components.Security
1025
+ ),
1026
+ ),
1027
+ request=req,
1028
+ error_status_codes=["401", "403", "429", "4XX", "500", "504", "5XX"],
1029
+ retry_config=retry_config,
1030
+ )
1031
+
1032
+ if utils.match_response(http_res, "200", "application/json"):
1033
+ return operations.ListDisputeEvidenceResponse(
1034
+ result=utils.unmarshal_json(
1035
+ http_res.text, List[components.DisputeEvidenceResponse]
1036
+ ),
1037
+ headers=utils.get_response_headers(http_res.headers),
1038
+ )
1039
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
1040
+ http_res_text = await utils.stream_to_text_async(http_res)
1041
+ raise errors.APIError(
1042
+ "API error occurred", http_res.status_code, http_res_text, http_res
1043
+ )
1044
+ if utils.match_response(http_res, ["500", "504"], "*"):
1045
+ http_res_text = await utils.stream_to_text_async(http_res)
1046
+ raise errors.APIError(
1047
+ "API error occurred", http_res.status_code, http_res_text, http_res
1048
+ )
1049
+ if utils.match_response(http_res, "4XX", "*"):
1050
+ http_res_text = await utils.stream_to_text_async(http_res)
1051
+ raise errors.APIError(
1052
+ "API error occurred", http_res.status_code, http_res_text, http_res
1053
+ )
1054
+ if utils.match_response(http_res, "5XX", "*"):
1055
+ http_res_text = await utils.stream_to_text_async(http_res)
1056
+ raise errors.APIError(
1057
+ "API error occurred", http_res.status_code, http_res_text, http_res
1058
+ )
1059
+
1060
+ content_type = http_res.headers.get("Content-Type")
1061
+ http_res_text = await utils.stream_to_text_async(http_res)
1062
+ raise errors.APIError(
1063
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1064
+ http_res.status_code,
1065
+ http_res_text,
1066
+ http_res,
1067
+ )
1068
+
1069
+ def upload_evidence_file(
1070
+ self,
1071
+ *,
1072
+ account_id: str,
1073
+ dispute_id: str,
1074
+ file: Union[components.File, components.FileTypedDict],
1075
+ evidence_type: components.EvidenceType,
1076
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1077
+ server_url: Optional[str] = None,
1078
+ timeout_ms: Optional[int] = None,
1079
+ http_headers: Optional[Mapping[str, str]] = None,
1080
+ ) -> operations.UploadDisputeEvidenceFileResponse:
1081
+ r"""Uploads a file as evidence for a dispute.
1082
+
1083
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1084
+
1085
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1086
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1087
+
1088
+ :param account_id:
1089
+ :param dispute_id:
1090
+ :param file: The file to upload as evidence. Valid types are [jpeg, tiff, pdf]. The `Content-Type` header for this form part must be one of the following: - `image/jpeg` - `image/tiff` - `application/pdf`
1091
+ :param evidence_type:
1092
+ :param retries: Override the default retry configuration for this method
1093
+ :param server_url: Override the default server URL for this method
1094
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1095
+ :param http_headers: Additional headers to set or replace on requests.
1096
+ """
1097
+ base_url = None
1098
+ url_variables = None
1099
+ if timeout_ms is None:
1100
+ timeout_ms = self.sdk_configuration.timeout_ms
1101
+
1102
+ if server_url is not None:
1103
+ base_url = server_url
1104
+ else:
1105
+ base_url = self._get_url(base_url, url_variables)
1106
+
1107
+ request = operations.UploadDisputeEvidenceFileRequest(
1108
+ account_id=account_id,
1109
+ dispute_id=dispute_id,
1110
+ create_evidence_file_multi_part=components.CreateEvidenceFileMultiPart(
1111
+ file=utils.get_pydantic_model(file, components.File),
1112
+ evidence_type=evidence_type,
1113
+ ),
1114
+ )
1115
+
1116
+ req = self._build_request(
1117
+ method="POST",
1118
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence-file",
1119
+ base_url=base_url,
1120
+ url_variables=url_variables,
1121
+ request=request,
1122
+ request_body_required=True,
1123
+ request_has_path_params=True,
1124
+ request_has_query_params=True,
1125
+ user_agent_header="user-agent",
1126
+ accept_header_value="application/json",
1127
+ http_headers=http_headers,
1128
+ _globals=operations.UploadDisputeEvidenceFileGlobals(
1129
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1130
+ ),
1131
+ security=self.sdk_configuration.security,
1132
+ get_serialized_body=lambda: utils.serialize_request_body(
1133
+ request.create_evidence_file_multi_part,
1134
+ False,
1135
+ False,
1136
+ "multipart",
1137
+ components.CreateEvidenceFileMultiPart,
1138
+ ),
1139
+ timeout_ms=timeout_ms,
1140
+ )
1141
+
1142
+ if retries == UNSET:
1143
+ if self.sdk_configuration.retry_config is not UNSET:
1144
+ retries = self.sdk_configuration.retry_config
1145
+
1146
+ retry_config = None
1147
+ if isinstance(retries, utils.RetryConfig):
1148
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1149
+
1150
+ http_res = self.do_request(
1151
+ hook_ctx=HookContext(
1152
+ base_url=base_url or "",
1153
+ operation_id="uploadDisputeEvidenceFile",
1154
+ oauth2_scopes=[],
1155
+ security_source=get_security_from_env(
1156
+ self.sdk_configuration.security, components.Security
1157
+ ),
1158
+ ),
1159
+ request=req,
1160
+ error_status_codes=[
1161
+ "400",
1162
+ "401",
1163
+ "403",
1164
+ "404",
1165
+ "409",
1166
+ "422",
1167
+ "429",
1168
+ "4XX",
1169
+ "500",
1170
+ "504",
1171
+ "5XX",
1172
+ ],
1173
+ retry_config=retry_config,
1174
+ )
1175
+
1176
+ response_data: Any = None
1177
+ if utils.match_response(http_res, "201", "application/json"):
1178
+ return operations.UploadDisputeEvidenceFileResponse(
1179
+ result=utils.unmarshal_json(
1180
+ http_res.text, components.EvidenceUploadResponse
1181
+ ),
1182
+ headers=utils.get_response_headers(http_res.headers),
1183
+ )
1184
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1185
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1186
+ raise errors.GenericError(data=response_data)
1187
+ if utils.match_response(http_res, "422", "application/json"):
1188
+ response_data = utils.unmarshal_json(
1189
+ http_res.text, errors.FileUploadValidationErrorData
1190
+ )
1191
+ raise errors.FileUploadValidationError(data=response_data)
1192
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1193
+ http_res_text = utils.stream_to_text(http_res)
1194
+ raise errors.APIError(
1195
+ "API error occurred", http_res.status_code, http_res_text, http_res
1196
+ )
1197
+ if utils.match_response(http_res, ["500", "504"], "*"):
1198
+ http_res_text = utils.stream_to_text(http_res)
1199
+ raise errors.APIError(
1200
+ "API error occurred", http_res.status_code, http_res_text, http_res
1201
+ )
1202
+ if utils.match_response(http_res, "4XX", "*"):
1203
+ http_res_text = utils.stream_to_text(http_res)
1204
+ raise errors.APIError(
1205
+ "API error occurred", http_res.status_code, http_res_text, http_res
1206
+ )
1207
+ if utils.match_response(http_res, "5XX", "*"):
1208
+ http_res_text = utils.stream_to_text(http_res)
1209
+ raise errors.APIError(
1210
+ "API error occurred", http_res.status_code, http_res_text, http_res
1211
+ )
1212
+
1213
+ content_type = http_res.headers.get("Content-Type")
1214
+ http_res_text = utils.stream_to_text(http_res)
1215
+ raise errors.APIError(
1216
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1217
+ http_res.status_code,
1218
+ http_res_text,
1219
+ http_res,
1220
+ )
1221
+
1222
+ async def upload_evidence_file_async(
1223
+ self,
1224
+ *,
1225
+ account_id: str,
1226
+ dispute_id: str,
1227
+ file: Union[components.File, components.FileTypedDict],
1228
+ evidence_type: components.EvidenceType,
1229
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1230
+ server_url: Optional[str] = None,
1231
+ timeout_ms: Optional[int] = None,
1232
+ http_headers: Optional[Mapping[str, str]] = None,
1233
+ ) -> operations.UploadDisputeEvidenceFileResponse:
1234
+ r"""Uploads a file as evidence for a dispute.
1235
+
1236
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1237
+
1238
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1239
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1240
+
1241
+ :param account_id:
1242
+ :param dispute_id:
1243
+ :param file: The file to upload as evidence. Valid types are [jpeg, tiff, pdf]. The `Content-Type` header for this form part must be one of the following: - `image/jpeg` - `image/tiff` - `application/pdf`
1244
+ :param evidence_type:
1245
+ :param retries: Override the default retry configuration for this method
1246
+ :param server_url: Override the default server URL for this method
1247
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1248
+ :param http_headers: Additional headers to set or replace on requests.
1249
+ """
1250
+ base_url = None
1251
+ url_variables = None
1252
+ if timeout_ms is None:
1253
+ timeout_ms = self.sdk_configuration.timeout_ms
1254
+
1255
+ if server_url is not None:
1256
+ base_url = server_url
1257
+ else:
1258
+ base_url = self._get_url(base_url, url_variables)
1259
+
1260
+ request = operations.UploadDisputeEvidenceFileRequest(
1261
+ account_id=account_id,
1262
+ dispute_id=dispute_id,
1263
+ create_evidence_file_multi_part=components.CreateEvidenceFileMultiPart(
1264
+ file=utils.get_pydantic_model(file, components.File),
1265
+ evidence_type=evidence_type,
1266
+ ),
1267
+ )
1268
+
1269
+ req = self._build_request_async(
1270
+ method="POST",
1271
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence-file",
1272
+ base_url=base_url,
1273
+ url_variables=url_variables,
1274
+ request=request,
1275
+ request_body_required=True,
1276
+ request_has_path_params=True,
1277
+ request_has_query_params=True,
1278
+ user_agent_header="user-agent",
1279
+ accept_header_value="application/json",
1280
+ http_headers=http_headers,
1281
+ _globals=operations.UploadDisputeEvidenceFileGlobals(
1282
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1283
+ ),
1284
+ security=self.sdk_configuration.security,
1285
+ get_serialized_body=lambda: utils.serialize_request_body(
1286
+ request.create_evidence_file_multi_part,
1287
+ False,
1288
+ False,
1289
+ "multipart",
1290
+ components.CreateEvidenceFileMultiPart,
1291
+ ),
1292
+ timeout_ms=timeout_ms,
1293
+ )
1294
+
1295
+ if retries == UNSET:
1296
+ if self.sdk_configuration.retry_config is not UNSET:
1297
+ retries = self.sdk_configuration.retry_config
1298
+
1299
+ retry_config = None
1300
+ if isinstance(retries, utils.RetryConfig):
1301
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1302
+
1303
+ http_res = await self.do_request_async(
1304
+ hook_ctx=HookContext(
1305
+ base_url=base_url or "",
1306
+ operation_id="uploadDisputeEvidenceFile",
1307
+ oauth2_scopes=[],
1308
+ security_source=get_security_from_env(
1309
+ self.sdk_configuration.security, components.Security
1310
+ ),
1311
+ ),
1312
+ request=req,
1313
+ error_status_codes=[
1314
+ "400",
1315
+ "401",
1316
+ "403",
1317
+ "404",
1318
+ "409",
1319
+ "422",
1320
+ "429",
1321
+ "4XX",
1322
+ "500",
1323
+ "504",
1324
+ "5XX",
1325
+ ],
1326
+ retry_config=retry_config,
1327
+ )
1328
+
1329
+ response_data: Any = None
1330
+ if utils.match_response(http_res, "201", "application/json"):
1331
+ return operations.UploadDisputeEvidenceFileResponse(
1332
+ result=utils.unmarshal_json(
1333
+ http_res.text, components.EvidenceUploadResponse
1334
+ ),
1335
+ headers=utils.get_response_headers(http_res.headers),
1336
+ )
1337
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1338
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1339
+ raise errors.GenericError(data=response_data)
1340
+ if utils.match_response(http_res, "422", "application/json"):
1341
+ response_data = utils.unmarshal_json(
1342
+ http_res.text, errors.FileUploadValidationErrorData
1343
+ )
1344
+ raise errors.FileUploadValidationError(data=response_data)
1345
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1346
+ http_res_text = await utils.stream_to_text_async(http_res)
1347
+ raise errors.APIError(
1348
+ "API error occurred", http_res.status_code, http_res_text, http_res
1349
+ )
1350
+ if utils.match_response(http_res, ["500", "504"], "*"):
1351
+ http_res_text = await utils.stream_to_text_async(http_res)
1352
+ raise errors.APIError(
1353
+ "API error occurred", http_res.status_code, http_res_text, http_res
1354
+ )
1355
+ if utils.match_response(http_res, "4XX", "*"):
1356
+ http_res_text = await utils.stream_to_text_async(http_res)
1357
+ raise errors.APIError(
1358
+ "API error occurred", http_res.status_code, http_res_text, http_res
1359
+ )
1360
+ if utils.match_response(http_res, "5XX", "*"):
1361
+ http_res_text = await utils.stream_to_text_async(http_res)
1362
+ raise errors.APIError(
1363
+ "API error occurred", http_res.status_code, http_res_text, http_res
1364
+ )
1365
+
1366
+ content_type = http_res.headers.get("Content-Type")
1367
+ http_res_text = await utils.stream_to_text_async(http_res)
1368
+ raise errors.APIError(
1369
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1370
+ http_res.status_code,
1371
+ http_res_text,
1372
+ http_res,
1373
+ )
1374
+
1375
+ def upload_evidence_text(
1376
+ self,
1377
+ *,
1378
+ account_id: str,
1379
+ dispute_id: str,
1380
+ text: str,
1381
+ evidence_type: components.EvidenceType,
1382
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1383
+ server_url: Optional[str] = None,
1384
+ timeout_ms: Optional[int] = None,
1385
+ http_headers: Optional[Mapping[str, str]] = None,
1386
+ ) -> operations.UploadDisputeEvidenceTextResponse:
1387
+ r"""Uploads text as evidence for a dispute.
1388
+
1389
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1390
+
1391
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1392
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1393
+
1394
+ :param account_id:
1395
+ :param dispute_id:
1396
+ :param text: The text to associate with the dispute as evidence.
1397
+ :param evidence_type:
1398
+ :param retries: Override the default retry configuration for this method
1399
+ :param server_url: Override the default server URL for this method
1400
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1401
+ :param http_headers: Additional headers to set or replace on requests.
1402
+ """
1403
+ base_url = None
1404
+ url_variables = None
1405
+ if timeout_ms is None:
1406
+ timeout_ms = self.sdk_configuration.timeout_ms
1407
+
1408
+ if server_url is not None:
1409
+ base_url = server_url
1410
+ else:
1411
+ base_url = self._get_url(base_url, url_variables)
1412
+
1413
+ request = operations.UploadDisputeEvidenceTextRequest(
1414
+ account_id=account_id,
1415
+ dispute_id=dispute_id,
1416
+ create_evidence_text=components.CreateEvidenceText(
1417
+ text=text,
1418
+ evidence_type=evidence_type,
1419
+ ),
1420
+ )
1421
+
1422
+ req = self._build_request(
1423
+ method="POST",
1424
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence-text",
1425
+ base_url=base_url,
1426
+ url_variables=url_variables,
1427
+ request=request,
1428
+ request_body_required=True,
1429
+ request_has_path_params=True,
1430
+ request_has_query_params=True,
1431
+ user_agent_header="user-agent",
1432
+ accept_header_value="application/json",
1433
+ http_headers=http_headers,
1434
+ _globals=operations.UploadDisputeEvidenceTextGlobals(
1435
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1436
+ ),
1437
+ security=self.sdk_configuration.security,
1438
+ get_serialized_body=lambda: utils.serialize_request_body(
1439
+ request.create_evidence_text,
1440
+ False,
1441
+ False,
1442
+ "json",
1443
+ components.CreateEvidenceText,
1444
+ ),
1445
+ timeout_ms=timeout_ms,
1446
+ )
1447
+
1448
+ if retries == UNSET:
1449
+ if self.sdk_configuration.retry_config is not UNSET:
1450
+ retries = self.sdk_configuration.retry_config
1451
+
1452
+ retry_config = None
1453
+ if isinstance(retries, utils.RetryConfig):
1454
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1455
+
1456
+ http_res = self.do_request(
1457
+ hook_ctx=HookContext(
1458
+ base_url=base_url or "",
1459
+ operation_id="uploadDisputeEvidenceText",
1460
+ oauth2_scopes=[],
1461
+ security_source=get_security_from_env(
1462
+ self.sdk_configuration.security, components.Security
1463
+ ),
1464
+ ),
1465
+ request=req,
1466
+ error_status_codes=[
1467
+ "400",
1468
+ "401",
1469
+ "403",
1470
+ "404",
1471
+ "409",
1472
+ "429",
1473
+ "4XX",
1474
+ "500",
1475
+ "504",
1476
+ "5XX",
1477
+ ],
1478
+ retry_config=retry_config,
1479
+ )
1480
+
1481
+ response_data: Any = None
1482
+ if utils.match_response(http_res, "201", "application/json"):
1483
+ return operations.UploadDisputeEvidenceTextResponse(
1484
+ result=utils.unmarshal_json(
1485
+ http_res.text, components.EvidenceTextResponse
1486
+ ),
1487
+ headers=utils.get_response_headers(http_res.headers),
1488
+ )
1489
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1490
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1491
+ raise errors.GenericError(data=response_data)
1492
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1493
+ http_res_text = utils.stream_to_text(http_res)
1494
+ raise errors.APIError(
1495
+ "API error occurred", http_res.status_code, http_res_text, http_res
1496
+ )
1497
+ if utils.match_response(http_res, ["500", "504"], "*"):
1498
+ http_res_text = utils.stream_to_text(http_res)
1499
+ raise errors.APIError(
1500
+ "API error occurred", http_res.status_code, http_res_text, http_res
1501
+ )
1502
+ if utils.match_response(http_res, "4XX", "*"):
1503
+ http_res_text = utils.stream_to_text(http_res)
1504
+ raise errors.APIError(
1505
+ "API error occurred", http_res.status_code, http_res_text, http_res
1506
+ )
1507
+ if utils.match_response(http_res, "5XX", "*"):
1508
+ http_res_text = utils.stream_to_text(http_res)
1509
+ raise errors.APIError(
1510
+ "API error occurred", http_res.status_code, http_res_text, http_res
1511
+ )
1512
+
1513
+ content_type = http_res.headers.get("Content-Type")
1514
+ http_res_text = utils.stream_to_text(http_res)
1515
+ raise errors.APIError(
1516
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1517
+ http_res.status_code,
1518
+ http_res_text,
1519
+ http_res,
1520
+ )
1521
+
1522
+ async def upload_evidence_text_async(
1523
+ self,
1524
+ *,
1525
+ account_id: str,
1526
+ dispute_id: str,
1527
+ text: str,
1528
+ evidence_type: components.EvidenceType,
1529
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1530
+ server_url: Optional[str] = None,
1531
+ timeout_ms: Optional[int] = None,
1532
+ http_headers: Optional[Mapping[str, str]] = None,
1533
+ ) -> operations.UploadDisputeEvidenceTextResponse:
1534
+ r"""Uploads text as evidence for a dispute.
1535
+
1536
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1537
+
1538
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1539
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1540
+
1541
+ :param account_id:
1542
+ :param dispute_id:
1543
+ :param text: The text to associate with the dispute as evidence.
1544
+ :param evidence_type:
1545
+ :param retries: Override the default retry configuration for this method
1546
+ :param server_url: Override the default server URL for this method
1547
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1548
+ :param http_headers: Additional headers to set or replace on requests.
1549
+ """
1550
+ base_url = None
1551
+ url_variables = None
1552
+ if timeout_ms is None:
1553
+ timeout_ms = self.sdk_configuration.timeout_ms
1554
+
1555
+ if server_url is not None:
1556
+ base_url = server_url
1557
+ else:
1558
+ base_url = self._get_url(base_url, url_variables)
1559
+
1560
+ request = operations.UploadDisputeEvidenceTextRequest(
1561
+ account_id=account_id,
1562
+ dispute_id=dispute_id,
1563
+ create_evidence_text=components.CreateEvidenceText(
1564
+ text=text,
1565
+ evidence_type=evidence_type,
1566
+ ),
1567
+ )
1568
+
1569
+ req = self._build_request_async(
1570
+ method="POST",
1571
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence-text",
1572
+ base_url=base_url,
1573
+ url_variables=url_variables,
1574
+ request=request,
1575
+ request_body_required=True,
1576
+ request_has_path_params=True,
1577
+ request_has_query_params=True,
1578
+ user_agent_header="user-agent",
1579
+ accept_header_value="application/json",
1580
+ http_headers=http_headers,
1581
+ _globals=operations.UploadDisputeEvidenceTextGlobals(
1582
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1583
+ ),
1584
+ security=self.sdk_configuration.security,
1585
+ get_serialized_body=lambda: utils.serialize_request_body(
1586
+ request.create_evidence_text,
1587
+ False,
1588
+ False,
1589
+ "json",
1590
+ components.CreateEvidenceText,
1591
+ ),
1592
+ timeout_ms=timeout_ms,
1593
+ )
1594
+
1595
+ if retries == UNSET:
1596
+ if self.sdk_configuration.retry_config is not UNSET:
1597
+ retries = self.sdk_configuration.retry_config
1598
+
1599
+ retry_config = None
1600
+ if isinstance(retries, utils.RetryConfig):
1601
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1602
+
1603
+ http_res = await self.do_request_async(
1604
+ hook_ctx=HookContext(
1605
+ base_url=base_url or "",
1606
+ operation_id="uploadDisputeEvidenceText",
1607
+ oauth2_scopes=[],
1608
+ security_source=get_security_from_env(
1609
+ self.sdk_configuration.security, components.Security
1610
+ ),
1611
+ ),
1612
+ request=req,
1613
+ error_status_codes=[
1614
+ "400",
1615
+ "401",
1616
+ "403",
1617
+ "404",
1618
+ "409",
1619
+ "429",
1620
+ "4XX",
1621
+ "500",
1622
+ "504",
1623
+ "5XX",
1624
+ ],
1625
+ retry_config=retry_config,
1626
+ )
1627
+
1628
+ response_data: Any = None
1629
+ if utils.match_response(http_res, "201", "application/json"):
1630
+ return operations.UploadDisputeEvidenceTextResponse(
1631
+ result=utils.unmarshal_json(
1632
+ http_res.text, components.EvidenceTextResponse
1633
+ ),
1634
+ headers=utils.get_response_headers(http_res.headers),
1635
+ )
1636
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1637
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1638
+ raise errors.GenericError(data=response_data)
1639
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1640
+ http_res_text = await utils.stream_to_text_async(http_res)
1641
+ raise errors.APIError(
1642
+ "API error occurred", http_res.status_code, http_res_text, http_res
1643
+ )
1644
+ if utils.match_response(http_res, ["500", "504"], "*"):
1645
+ http_res_text = await utils.stream_to_text_async(http_res)
1646
+ raise errors.APIError(
1647
+ "API error occurred", http_res.status_code, http_res_text, http_res
1648
+ )
1649
+ if utils.match_response(http_res, "4XX", "*"):
1650
+ http_res_text = await utils.stream_to_text_async(http_res)
1651
+ raise errors.APIError(
1652
+ "API error occurred", http_res.status_code, http_res_text, http_res
1653
+ )
1654
+ if utils.match_response(http_res, "5XX", "*"):
1655
+ http_res_text = await utils.stream_to_text_async(http_res)
1656
+ raise errors.APIError(
1657
+ "API error occurred", http_res.status_code, http_res_text, http_res
1658
+ )
1659
+
1660
+ content_type = http_res.headers.get("Content-Type")
1661
+ http_res_text = await utils.stream_to_text_async(http_res)
1662
+ raise errors.APIError(
1663
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1664
+ http_res.status_code,
1665
+ http_res_text,
1666
+ http_res,
1667
+ )
1668
+
1669
+ def submit_evidence(
1670
+ self,
1671
+ *,
1672
+ account_id: str,
1673
+ dispute_id: str,
1674
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1675
+ server_url: Optional[str] = None,
1676
+ timeout_ms: Optional[int] = None,
1677
+ http_headers: Optional[Mapping[str, str]] = None,
1678
+ ) -> operations.SubmitDisputeEvidenceResponse:
1679
+ r"""Submit the evidence associated with a dispute.
1680
+
1681
+ Evidence items must be uploaded using the appropriate endpoint(s) prior to calling this endpoint to submit it. **Evidence can only
1682
+ be submitted once per dispute.**
1683
+
1684
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1685
+
1686
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1687
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1688
+
1689
+ :param account_id:
1690
+ :param dispute_id:
1691
+ :param retries: Override the default retry configuration for this method
1692
+ :param server_url: Override the default server URL for this method
1693
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1694
+ :param http_headers: Additional headers to set or replace on requests.
1695
+ """
1696
+ base_url = None
1697
+ url_variables = None
1698
+ if timeout_ms is None:
1699
+ timeout_ms = self.sdk_configuration.timeout_ms
1700
+
1701
+ if server_url is not None:
1702
+ base_url = server_url
1703
+ else:
1704
+ base_url = self._get_url(base_url, url_variables)
1705
+
1706
+ request = operations.SubmitDisputeEvidenceRequest(
1707
+ account_id=account_id,
1708
+ dispute_id=dispute_id,
1709
+ )
1710
+
1711
+ req = self._build_request(
1712
+ method="POST",
1713
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/submit",
1714
+ base_url=base_url,
1715
+ url_variables=url_variables,
1716
+ request=request,
1717
+ request_body_required=False,
1718
+ request_has_path_params=True,
1719
+ request_has_query_params=True,
1720
+ user_agent_header="user-agent",
1721
+ accept_header_value="application/json",
1722
+ http_headers=http_headers,
1723
+ _globals=operations.SubmitDisputeEvidenceGlobals(
1724
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1725
+ ),
1726
+ security=self.sdk_configuration.security,
1727
+ timeout_ms=timeout_ms,
1728
+ )
1729
+
1730
+ if retries == UNSET:
1731
+ if self.sdk_configuration.retry_config is not UNSET:
1732
+ retries = self.sdk_configuration.retry_config
1733
+
1734
+ retry_config = None
1735
+ if isinstance(retries, utils.RetryConfig):
1736
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1737
+
1738
+ http_res = self.do_request(
1739
+ hook_ctx=HookContext(
1740
+ base_url=base_url or "",
1741
+ operation_id="submitDisputeEvidence",
1742
+ oauth2_scopes=[],
1743
+ security_source=get_security_from_env(
1744
+ self.sdk_configuration.security, components.Security
1745
+ ),
1746
+ ),
1747
+ request=req,
1748
+ error_status_codes=[
1749
+ "400",
1750
+ "401",
1751
+ "403",
1752
+ "404",
1753
+ "409",
1754
+ "429",
1755
+ "4XX",
1756
+ "500",
1757
+ "504",
1758
+ "5XX",
1759
+ ],
1760
+ retry_config=retry_config,
1761
+ )
1762
+
1763
+ response_data: Any = None
1764
+ if utils.match_response(http_res, "200", "application/json"):
1765
+ return operations.SubmitDisputeEvidenceResponse(
1766
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
1767
+ headers=utils.get_response_headers(http_res.headers),
1768
+ )
1769
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1770
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1771
+ raise errors.GenericError(data=response_data)
1772
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1773
+ http_res_text = utils.stream_to_text(http_res)
1774
+ raise errors.APIError(
1775
+ "API error occurred", http_res.status_code, http_res_text, http_res
1776
+ )
1777
+ if utils.match_response(http_res, ["500", "504"], "*"):
1778
+ http_res_text = utils.stream_to_text(http_res)
1779
+ raise errors.APIError(
1780
+ "API error occurred", http_res.status_code, http_res_text, http_res
1781
+ )
1782
+ if utils.match_response(http_res, "4XX", "*"):
1783
+ http_res_text = utils.stream_to_text(http_res)
1784
+ raise errors.APIError(
1785
+ "API error occurred", http_res.status_code, http_res_text, http_res
1786
+ )
1787
+ if utils.match_response(http_res, "5XX", "*"):
1788
+ http_res_text = utils.stream_to_text(http_res)
1789
+ raise errors.APIError(
1790
+ "API error occurred", http_res.status_code, http_res_text, http_res
1791
+ )
1792
+
1793
+ content_type = http_res.headers.get("Content-Type")
1794
+ http_res_text = utils.stream_to_text(http_res)
1795
+ raise errors.APIError(
1796
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1797
+ http_res.status_code,
1798
+ http_res_text,
1799
+ http_res,
1800
+ )
1801
+
1802
+ async def submit_evidence_async(
1803
+ self,
1804
+ *,
1805
+ account_id: str,
1806
+ dispute_id: str,
1807
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1808
+ server_url: Optional[str] = None,
1809
+ timeout_ms: Optional[int] = None,
1810
+ http_headers: Optional[Mapping[str, str]] = None,
1811
+ ) -> operations.SubmitDisputeEvidenceResponse:
1812
+ r"""Submit the evidence associated with a dispute.
1813
+
1814
+ Evidence items must be uploaded using the appropriate endpoint(s) prior to calling this endpoint to submit it. **Evidence can only
1815
+ be submitted once per dispute.**
1816
+
1817
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1818
+
1819
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1820
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1821
+
1822
+ :param account_id:
1823
+ :param dispute_id:
1824
+ :param retries: Override the default retry configuration for this method
1825
+ :param server_url: Override the default server URL for this method
1826
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1827
+ :param http_headers: Additional headers to set or replace on requests.
1828
+ """
1829
+ base_url = None
1830
+ url_variables = None
1831
+ if timeout_ms is None:
1832
+ timeout_ms = self.sdk_configuration.timeout_ms
1833
+
1834
+ if server_url is not None:
1835
+ base_url = server_url
1836
+ else:
1837
+ base_url = self._get_url(base_url, url_variables)
1838
+
1839
+ request = operations.SubmitDisputeEvidenceRequest(
1840
+ account_id=account_id,
1841
+ dispute_id=dispute_id,
1842
+ )
1843
+
1844
+ req = self._build_request_async(
1845
+ method="POST",
1846
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/submit",
1847
+ base_url=base_url,
1848
+ url_variables=url_variables,
1849
+ request=request,
1850
+ request_body_required=False,
1851
+ request_has_path_params=True,
1852
+ request_has_query_params=True,
1853
+ user_agent_header="user-agent",
1854
+ accept_header_value="application/json",
1855
+ http_headers=http_headers,
1856
+ _globals=operations.SubmitDisputeEvidenceGlobals(
1857
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1858
+ ),
1859
+ security=self.sdk_configuration.security,
1860
+ timeout_ms=timeout_ms,
1861
+ )
1862
+
1863
+ if retries == UNSET:
1864
+ if self.sdk_configuration.retry_config is not UNSET:
1865
+ retries = self.sdk_configuration.retry_config
1866
+
1867
+ retry_config = None
1868
+ if isinstance(retries, utils.RetryConfig):
1869
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1870
+
1871
+ http_res = await self.do_request_async(
1872
+ hook_ctx=HookContext(
1873
+ base_url=base_url or "",
1874
+ operation_id="submitDisputeEvidence",
1875
+ oauth2_scopes=[],
1876
+ security_source=get_security_from_env(
1877
+ self.sdk_configuration.security, components.Security
1878
+ ),
1879
+ ),
1880
+ request=req,
1881
+ error_status_codes=[
1882
+ "400",
1883
+ "401",
1884
+ "403",
1885
+ "404",
1886
+ "409",
1887
+ "429",
1888
+ "4XX",
1889
+ "500",
1890
+ "504",
1891
+ "5XX",
1892
+ ],
1893
+ retry_config=retry_config,
1894
+ )
1895
+
1896
+ response_data: Any = None
1897
+ if utils.match_response(http_res, "200", "application/json"):
1898
+ return operations.SubmitDisputeEvidenceResponse(
1899
+ result=utils.unmarshal_json(http_res.text, components.Dispute),
1900
+ headers=utils.get_response_headers(http_res.headers),
1901
+ )
1902
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1903
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1904
+ raise errors.GenericError(data=response_data)
1905
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1906
+ http_res_text = await utils.stream_to_text_async(http_res)
1907
+ raise errors.APIError(
1908
+ "API error occurred", http_res.status_code, http_res_text, http_res
1909
+ )
1910
+ if utils.match_response(http_res, ["500", "504"], "*"):
1911
+ http_res_text = await utils.stream_to_text_async(http_res)
1912
+ raise errors.APIError(
1913
+ "API error occurred", http_res.status_code, http_res_text, http_res
1914
+ )
1915
+ if utils.match_response(http_res, "4XX", "*"):
1916
+ http_res_text = await utils.stream_to_text_async(http_res)
1917
+ raise errors.APIError(
1918
+ "API error occurred", http_res.status_code, http_res_text, http_res
1919
+ )
1920
+ if utils.match_response(http_res, "5XX", "*"):
1921
+ http_res_text = await utils.stream_to_text_async(http_res)
1922
+ raise errors.APIError(
1923
+ "API error occurred", http_res.status_code, http_res_text, http_res
1924
+ )
1925
+
1926
+ content_type = http_res.headers.get("Content-Type")
1927
+ http_res_text = await utils.stream_to_text_async(http_res)
1928
+ raise errors.APIError(
1929
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1930
+ http_res.status_code,
1931
+ http_res_text,
1932
+ http_res,
1933
+ )
1934
+
1935
+ def get_evidence(
1936
+ self,
1937
+ *,
1938
+ account_id: str,
1939
+ dispute_id: str,
1940
+ evidence_id: str,
1941
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1942
+ server_url: Optional[str] = None,
1943
+ timeout_ms: Optional[int] = None,
1944
+ http_headers: Optional[Mapping[str, str]] = None,
1945
+ ) -> operations.GetDisputeEvidenceResponse:
1946
+ r"""Get dispute evidence by ID.
1947
+
1948
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
1949
+
1950
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1951
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
1952
+
1953
+ :param account_id:
1954
+ :param dispute_id:
1955
+ :param evidence_id:
1956
+ :param retries: Override the default retry configuration for this method
1957
+ :param server_url: Override the default server URL for this method
1958
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1959
+ :param http_headers: Additional headers to set or replace on requests.
1960
+ """
1961
+ base_url = None
1962
+ url_variables = None
1963
+ if timeout_ms is None:
1964
+ timeout_ms = self.sdk_configuration.timeout_ms
1965
+
1966
+ if server_url is not None:
1967
+ base_url = server_url
1968
+ else:
1969
+ base_url = self._get_url(base_url, url_variables)
1970
+
1971
+ request = operations.GetDisputeEvidenceRequest(
1972
+ account_id=account_id,
1973
+ dispute_id=dispute_id,
1974
+ evidence_id=evidence_id,
1975
+ )
1976
+
1977
+ req = self._build_request(
1978
+ method="GET",
1979
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
1980
+ base_url=base_url,
1981
+ url_variables=url_variables,
1982
+ request=request,
1983
+ request_body_required=False,
1984
+ request_has_path_params=True,
1985
+ request_has_query_params=True,
1986
+ user_agent_header="user-agent",
1987
+ accept_header_value="application/json",
1988
+ http_headers=http_headers,
1989
+ _globals=operations.GetDisputeEvidenceGlobals(
1990
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1991
+ ),
1992
+ security=self.sdk_configuration.security,
1993
+ timeout_ms=timeout_ms,
1994
+ )
1995
+
1996
+ if retries == UNSET:
1997
+ if self.sdk_configuration.retry_config is not UNSET:
1998
+ retries = self.sdk_configuration.retry_config
1999
+
2000
+ retry_config = None
2001
+ if isinstance(retries, utils.RetryConfig):
2002
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2003
+
2004
+ http_res = self.do_request(
2005
+ hook_ctx=HookContext(
2006
+ base_url=base_url or "",
2007
+ operation_id="getDisputeEvidence",
2008
+ oauth2_scopes=[],
2009
+ security_source=get_security_from_env(
2010
+ self.sdk_configuration.security, components.Security
2011
+ ),
2012
+ ),
2013
+ request=req,
2014
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
2015
+ retry_config=retry_config,
2016
+ )
2017
+
2018
+ if utils.match_response(http_res, "200", "application/json"):
2019
+ return operations.GetDisputeEvidenceResponse(
2020
+ result=utils.unmarshal_json(
2021
+ http_res.text, components.DisputeEvidenceResponse
2022
+ ),
2023
+ headers=utils.get_response_headers(http_res.headers),
2024
+ )
2025
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2026
+ http_res_text = utils.stream_to_text(http_res)
2027
+ raise errors.APIError(
2028
+ "API error occurred", http_res.status_code, http_res_text, http_res
2029
+ )
2030
+ if utils.match_response(http_res, ["500", "504"], "*"):
2031
+ http_res_text = utils.stream_to_text(http_res)
2032
+ raise errors.APIError(
2033
+ "API error occurred", http_res.status_code, http_res_text, http_res
2034
+ )
2035
+ if utils.match_response(http_res, "4XX", "*"):
2036
+ http_res_text = utils.stream_to_text(http_res)
2037
+ raise errors.APIError(
2038
+ "API error occurred", http_res.status_code, http_res_text, http_res
2039
+ )
2040
+ if utils.match_response(http_res, "5XX", "*"):
2041
+ http_res_text = utils.stream_to_text(http_res)
2042
+ raise errors.APIError(
2043
+ "API error occurred", http_res.status_code, http_res_text, http_res
2044
+ )
2045
+
2046
+ content_type = http_res.headers.get("Content-Type")
2047
+ http_res_text = utils.stream_to_text(http_res)
2048
+ raise errors.APIError(
2049
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2050
+ http_res.status_code,
2051
+ http_res_text,
2052
+ http_res,
2053
+ )
2054
+
2055
+ async def get_evidence_async(
2056
+ self,
2057
+ *,
2058
+ account_id: str,
2059
+ dispute_id: str,
2060
+ evidence_id: str,
2061
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2062
+ server_url: Optional[str] = None,
2063
+ timeout_ms: Optional[int] = None,
2064
+ http_headers: Optional[Mapping[str, str]] = None,
2065
+ ) -> operations.GetDisputeEvidenceResponse:
2066
+ r"""Get dispute evidence by ID.
2067
+
2068
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2069
+
2070
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2071
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
2072
+
2073
+ :param account_id:
2074
+ :param dispute_id:
2075
+ :param evidence_id:
2076
+ :param retries: Override the default retry configuration for this method
2077
+ :param server_url: Override the default server URL for this method
2078
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2079
+ :param http_headers: Additional headers to set or replace on requests.
2080
+ """
2081
+ base_url = None
2082
+ url_variables = None
2083
+ if timeout_ms is None:
2084
+ timeout_ms = self.sdk_configuration.timeout_ms
2085
+
2086
+ if server_url is not None:
2087
+ base_url = server_url
2088
+ else:
2089
+ base_url = self._get_url(base_url, url_variables)
2090
+
2091
+ request = operations.GetDisputeEvidenceRequest(
2092
+ account_id=account_id,
2093
+ dispute_id=dispute_id,
2094
+ evidence_id=evidence_id,
2095
+ )
2096
+
2097
+ req = self._build_request_async(
2098
+ method="GET",
2099
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
2100
+ base_url=base_url,
2101
+ url_variables=url_variables,
2102
+ request=request,
2103
+ request_body_required=False,
2104
+ request_has_path_params=True,
2105
+ request_has_query_params=True,
2106
+ user_agent_header="user-agent",
2107
+ accept_header_value="application/json",
2108
+ http_headers=http_headers,
2109
+ _globals=operations.GetDisputeEvidenceGlobals(
2110
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2111
+ ),
2112
+ security=self.sdk_configuration.security,
2113
+ timeout_ms=timeout_ms,
2114
+ )
2115
+
2116
+ if retries == UNSET:
2117
+ if self.sdk_configuration.retry_config is not UNSET:
2118
+ retries = self.sdk_configuration.retry_config
2119
+
2120
+ retry_config = None
2121
+ if isinstance(retries, utils.RetryConfig):
2122
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2123
+
2124
+ http_res = await self.do_request_async(
2125
+ hook_ctx=HookContext(
2126
+ base_url=base_url or "",
2127
+ operation_id="getDisputeEvidence",
2128
+ oauth2_scopes=[],
2129
+ security_source=get_security_from_env(
2130
+ self.sdk_configuration.security, components.Security
2131
+ ),
2132
+ ),
2133
+ request=req,
2134
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
2135
+ retry_config=retry_config,
2136
+ )
2137
+
2138
+ if utils.match_response(http_res, "200", "application/json"):
2139
+ return operations.GetDisputeEvidenceResponse(
2140
+ result=utils.unmarshal_json(
2141
+ http_res.text, components.DisputeEvidenceResponse
2142
+ ),
2143
+ headers=utils.get_response_headers(http_res.headers),
2144
+ )
2145
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2146
+ http_res_text = await utils.stream_to_text_async(http_res)
2147
+ raise errors.APIError(
2148
+ "API error occurred", http_res.status_code, http_res_text, http_res
2149
+ )
2150
+ if utils.match_response(http_res, ["500", "504"], "*"):
2151
+ http_res_text = await utils.stream_to_text_async(http_res)
2152
+ raise errors.APIError(
2153
+ "API error occurred", http_res.status_code, http_res_text, http_res
2154
+ )
2155
+ if utils.match_response(http_res, "4XX", "*"):
2156
+ http_res_text = await utils.stream_to_text_async(http_res)
2157
+ raise errors.APIError(
2158
+ "API error occurred", http_res.status_code, http_res_text, http_res
2159
+ )
2160
+ if utils.match_response(http_res, "5XX", "*"):
2161
+ http_res_text = await utils.stream_to_text_async(http_res)
2162
+ raise errors.APIError(
2163
+ "API error occurred", http_res.status_code, http_res_text, http_res
2164
+ )
2165
+
2166
+ content_type = http_res.headers.get("Content-Type")
2167
+ http_res_text = await utils.stream_to_text_async(http_res)
2168
+ raise errors.APIError(
2169
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2170
+ http_res.status_code,
2171
+ http_res_text,
2172
+ http_res,
2173
+ )
2174
+
2175
+ def update_evidence(
2176
+ self,
2177
+ *,
2178
+ account_id: str,
2179
+ dispute_id: str,
2180
+ evidence_id: str,
2181
+ evidence_type: Optional[components.EvidenceType] = None,
2182
+ text: Optional[str] = None,
2183
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2184
+ server_url: Optional[str] = None,
2185
+ timeout_ms: Optional[int] = None,
2186
+ http_headers: Optional[Mapping[str, str]] = None,
2187
+ ) -> operations.UpdateDisputeEvidenceResponse:
2188
+ r"""Updates dispute evidence by ID.
2189
+
2190
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2191
+
2192
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2193
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
2194
+
2195
+ :param account_id:
2196
+ :param dispute_id:
2197
+ :param evidence_id:
2198
+ :param evidence_type:
2199
+ :param text: If updating text evidence, the new text to associate with the dispute.
2200
+ :param retries: Override the default retry configuration for this method
2201
+ :param server_url: Override the default server URL for this method
2202
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2203
+ :param http_headers: Additional headers to set or replace on requests.
2204
+ """
2205
+ base_url = None
2206
+ url_variables = None
2207
+ if timeout_ms is None:
2208
+ timeout_ms = self.sdk_configuration.timeout_ms
2209
+
2210
+ if server_url is not None:
2211
+ base_url = server_url
2212
+ else:
2213
+ base_url = self._get_url(base_url, url_variables)
2214
+
2215
+ request = operations.UpdateDisputeEvidenceRequest(
2216
+ account_id=account_id,
2217
+ dispute_id=dispute_id,
2218
+ evidence_id=evidence_id,
2219
+ update_evidence=components.UpdateEvidence(
2220
+ evidence_type=evidence_type,
2221
+ text=text,
2222
+ ),
2223
+ )
2224
+
2225
+ req = self._build_request(
2226
+ method="PATCH",
2227
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
2228
+ base_url=base_url,
2229
+ url_variables=url_variables,
2230
+ request=request,
2231
+ request_body_required=True,
2232
+ request_has_path_params=True,
2233
+ request_has_query_params=True,
2234
+ user_agent_header="user-agent",
2235
+ accept_header_value="application/json",
2236
+ http_headers=http_headers,
2237
+ _globals=operations.UpdateDisputeEvidenceGlobals(
2238
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2239
+ ),
2240
+ security=self.sdk_configuration.security,
2241
+ get_serialized_body=lambda: utils.serialize_request_body(
2242
+ request.update_evidence, False, False, "json", components.UpdateEvidence
2243
+ ),
2244
+ timeout_ms=timeout_ms,
2245
+ )
2246
+
2247
+ if retries == UNSET:
2248
+ if self.sdk_configuration.retry_config is not UNSET:
2249
+ retries = self.sdk_configuration.retry_config
2250
+
2251
+ retry_config = None
2252
+ if isinstance(retries, utils.RetryConfig):
2253
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2254
+
2255
+ http_res = self.do_request(
2256
+ hook_ctx=HookContext(
2257
+ base_url=base_url or "",
2258
+ operation_id="updateDisputeEvidence",
2259
+ oauth2_scopes=[],
2260
+ security_source=get_security_from_env(
2261
+ self.sdk_configuration.security, components.Security
2262
+ ),
2263
+ ),
2264
+ request=req,
2265
+ error_status_codes=[
2266
+ "400",
2267
+ "401",
2268
+ "403",
2269
+ "404",
2270
+ "429",
2271
+ "4XX",
2272
+ "500",
2273
+ "504",
2274
+ "5XX",
2275
+ ],
2276
+ retry_config=retry_config,
2277
+ )
2278
+
2279
+ response_data: Any = None
2280
+ if utils.match_response(http_res, "200", "application/json"):
2281
+ return operations.UpdateDisputeEvidenceResponse(
2282
+ result=utils.unmarshal_json(
2283
+ http_res.text, components.DisputeEvidenceResponse
2284
+ ),
2285
+ headers=utils.get_response_headers(http_res.headers),
2286
+ )
2287
+ if utils.match_response(http_res, "400", "application/json"):
2288
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
2289
+ raise errors.GenericError(data=response_data)
2290
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2291
+ http_res_text = utils.stream_to_text(http_res)
2292
+ raise errors.APIError(
2293
+ "API error occurred", http_res.status_code, http_res_text, http_res
2294
+ )
2295
+ if utils.match_response(http_res, ["500", "504"], "*"):
2296
+ http_res_text = utils.stream_to_text(http_res)
2297
+ raise errors.APIError(
2298
+ "API error occurred", http_res.status_code, http_res_text, http_res
2299
+ )
2300
+ if utils.match_response(http_res, "4XX", "*"):
2301
+ http_res_text = utils.stream_to_text(http_res)
2302
+ raise errors.APIError(
2303
+ "API error occurred", http_res.status_code, http_res_text, http_res
2304
+ )
2305
+ if utils.match_response(http_res, "5XX", "*"):
2306
+ http_res_text = utils.stream_to_text(http_res)
2307
+ raise errors.APIError(
2308
+ "API error occurred", http_res.status_code, http_res_text, http_res
2309
+ )
2310
+
2311
+ content_type = http_res.headers.get("Content-Type")
2312
+ http_res_text = utils.stream_to_text(http_res)
2313
+ raise errors.APIError(
2314
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2315
+ http_res.status_code,
2316
+ http_res_text,
2317
+ http_res,
2318
+ )
2319
+
2320
+ async def update_evidence_async(
2321
+ self,
2322
+ *,
2323
+ account_id: str,
2324
+ dispute_id: str,
2325
+ evidence_id: str,
2326
+ evidence_type: Optional[components.EvidenceType] = None,
2327
+ text: Optional[str] = None,
2328
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2329
+ server_url: Optional[str] = None,
2330
+ timeout_ms: Optional[int] = None,
2331
+ http_headers: Optional[Mapping[str, str]] = None,
2332
+ ) -> operations.UpdateDisputeEvidenceResponse:
2333
+ r"""Updates dispute evidence by ID.
2334
+
2335
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2336
+
2337
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2338
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
2339
+
2340
+ :param account_id:
2341
+ :param dispute_id:
2342
+ :param evidence_id:
2343
+ :param evidence_type:
2344
+ :param text: If updating text evidence, the new text to associate with the dispute.
2345
+ :param retries: Override the default retry configuration for this method
2346
+ :param server_url: Override the default server URL for this method
2347
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2348
+ :param http_headers: Additional headers to set or replace on requests.
2349
+ """
2350
+ base_url = None
2351
+ url_variables = None
2352
+ if timeout_ms is None:
2353
+ timeout_ms = self.sdk_configuration.timeout_ms
2354
+
2355
+ if server_url is not None:
2356
+ base_url = server_url
2357
+ else:
2358
+ base_url = self._get_url(base_url, url_variables)
2359
+
2360
+ request = operations.UpdateDisputeEvidenceRequest(
2361
+ account_id=account_id,
2362
+ dispute_id=dispute_id,
2363
+ evidence_id=evidence_id,
2364
+ update_evidence=components.UpdateEvidence(
2365
+ evidence_type=evidence_type,
2366
+ text=text,
2367
+ ),
2368
+ )
2369
+
2370
+ req = self._build_request_async(
2371
+ method="PATCH",
2372
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
2373
+ base_url=base_url,
2374
+ url_variables=url_variables,
2375
+ request=request,
2376
+ request_body_required=True,
2377
+ request_has_path_params=True,
2378
+ request_has_query_params=True,
2379
+ user_agent_header="user-agent",
2380
+ accept_header_value="application/json",
2381
+ http_headers=http_headers,
2382
+ _globals=operations.UpdateDisputeEvidenceGlobals(
2383
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2384
+ ),
2385
+ security=self.sdk_configuration.security,
2386
+ get_serialized_body=lambda: utils.serialize_request_body(
2387
+ request.update_evidence, False, False, "json", components.UpdateEvidence
2388
+ ),
2389
+ timeout_ms=timeout_ms,
2390
+ )
2391
+
2392
+ if retries == UNSET:
2393
+ if self.sdk_configuration.retry_config is not UNSET:
2394
+ retries = self.sdk_configuration.retry_config
2395
+
2396
+ retry_config = None
2397
+ if isinstance(retries, utils.RetryConfig):
2398
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2399
+
2400
+ http_res = await self.do_request_async(
2401
+ hook_ctx=HookContext(
2402
+ base_url=base_url or "",
2403
+ operation_id="updateDisputeEvidence",
2404
+ oauth2_scopes=[],
2405
+ security_source=get_security_from_env(
2406
+ self.sdk_configuration.security, components.Security
2407
+ ),
2408
+ ),
2409
+ request=req,
2410
+ error_status_codes=[
2411
+ "400",
2412
+ "401",
2413
+ "403",
2414
+ "404",
2415
+ "429",
2416
+ "4XX",
2417
+ "500",
2418
+ "504",
2419
+ "5XX",
2420
+ ],
2421
+ retry_config=retry_config,
2422
+ )
2423
+
2424
+ response_data: Any = None
2425
+ if utils.match_response(http_res, "200", "application/json"):
2426
+ return operations.UpdateDisputeEvidenceResponse(
2427
+ result=utils.unmarshal_json(
2428
+ http_res.text, components.DisputeEvidenceResponse
2429
+ ),
2430
+ headers=utils.get_response_headers(http_res.headers),
2431
+ )
2432
+ if utils.match_response(http_res, "400", "application/json"):
2433
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
2434
+ raise errors.GenericError(data=response_data)
2435
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2436
+ http_res_text = await utils.stream_to_text_async(http_res)
2437
+ raise errors.APIError(
2438
+ "API error occurred", http_res.status_code, http_res_text, http_res
2439
+ )
2440
+ if utils.match_response(http_res, ["500", "504"], "*"):
2441
+ http_res_text = await utils.stream_to_text_async(http_res)
2442
+ raise errors.APIError(
2443
+ "API error occurred", http_res.status_code, http_res_text, http_res
2444
+ )
2445
+ if utils.match_response(http_res, "4XX", "*"):
2446
+ http_res_text = await utils.stream_to_text_async(http_res)
2447
+ raise errors.APIError(
2448
+ "API error occurred", http_res.status_code, http_res_text, http_res
2449
+ )
2450
+ if utils.match_response(http_res, "5XX", "*"):
2451
+ http_res_text = await utils.stream_to_text_async(http_res)
2452
+ raise errors.APIError(
2453
+ "API error occurred", http_res.status_code, http_res_text, http_res
2454
+ )
2455
+
2456
+ content_type = http_res.headers.get("Content-Type")
2457
+ http_res_text = await utils.stream_to_text_async(http_res)
2458
+ raise errors.APIError(
2459
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2460
+ http_res.status_code,
2461
+ http_res_text,
2462
+ http_res,
2463
+ )
2464
+
2465
+ def delete_evidence(
2466
+ self,
2467
+ *,
2468
+ account_id: str,
2469
+ dispute_id: str,
2470
+ evidence_id: str,
2471
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2472
+ server_url: Optional[str] = None,
2473
+ timeout_ms: Optional[int] = None,
2474
+ http_headers: Optional[Mapping[str, str]] = None,
2475
+ ) -> operations.DeleteDisputeEvidenceFileResponse:
2476
+ r"""Deletes dispute evidence by ID.
2477
+
2478
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2479
+
2480
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2481
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
2482
+
2483
+ :param account_id:
2484
+ :param dispute_id:
2485
+ :param evidence_id:
2486
+ :param retries: Override the default retry configuration for this method
2487
+ :param server_url: Override the default server URL for this method
2488
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2489
+ :param http_headers: Additional headers to set or replace on requests.
2490
+ """
2491
+ base_url = None
2492
+ url_variables = None
2493
+ if timeout_ms is None:
2494
+ timeout_ms = self.sdk_configuration.timeout_ms
2495
+
2496
+ if server_url is not None:
2497
+ base_url = server_url
2498
+ else:
2499
+ base_url = self._get_url(base_url, url_variables)
2500
+
2501
+ request = operations.DeleteDisputeEvidenceFileRequest(
2502
+ account_id=account_id,
2503
+ dispute_id=dispute_id,
2504
+ evidence_id=evidence_id,
2505
+ )
2506
+
2507
+ req = self._build_request(
2508
+ method="DELETE",
2509
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
2510
+ base_url=base_url,
2511
+ url_variables=url_variables,
2512
+ request=request,
2513
+ request_body_required=False,
2514
+ request_has_path_params=True,
2515
+ request_has_query_params=True,
2516
+ user_agent_header="user-agent",
2517
+ accept_header_value="application/json",
2518
+ http_headers=http_headers,
2519
+ _globals=operations.DeleteDisputeEvidenceFileGlobals(
2520
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2521
+ ),
2522
+ security=self.sdk_configuration.security,
2523
+ timeout_ms=timeout_ms,
2524
+ )
2525
+
2526
+ if retries == UNSET:
2527
+ if self.sdk_configuration.retry_config is not UNSET:
2528
+ retries = self.sdk_configuration.retry_config
2529
+
2530
+ retry_config = None
2531
+ if isinstance(retries, utils.RetryConfig):
2532
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2533
+
2534
+ http_res = self.do_request(
2535
+ hook_ctx=HookContext(
2536
+ base_url=base_url or "",
2537
+ operation_id="deleteDisputeEvidenceFile",
2538
+ oauth2_scopes=[],
2539
+ security_source=get_security_from_env(
2540
+ self.sdk_configuration.security, components.Security
2541
+ ),
2542
+ ),
2543
+ request=req,
2544
+ error_status_codes=[
2545
+ "401",
2546
+ "403",
2547
+ "404",
2548
+ "409",
2549
+ "429",
2550
+ "4XX",
2551
+ "500",
2552
+ "504",
2553
+ "5XX",
2554
+ ],
2555
+ retry_config=retry_config,
2556
+ )
2557
+
2558
+ response_data: Any = None
2559
+ if utils.match_response(http_res, "204", "*"):
2560
+ return operations.DeleteDisputeEvidenceFileResponse(
2561
+ headers=utils.get_response_headers(http_res.headers)
2562
+ )
2563
+ if utils.match_response(http_res, "409", "application/json"):
2564
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
2565
+ raise errors.GenericError(data=response_data)
2566
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2567
+ http_res_text = utils.stream_to_text(http_res)
2568
+ raise errors.APIError(
2569
+ "API error occurred", http_res.status_code, http_res_text, http_res
2570
+ )
2571
+ if utils.match_response(http_res, ["500", "504"], "*"):
2572
+ http_res_text = utils.stream_to_text(http_res)
2573
+ raise errors.APIError(
2574
+ "API error occurred", http_res.status_code, http_res_text, http_res
2575
+ )
2576
+ if utils.match_response(http_res, "4XX", "*"):
2577
+ http_res_text = utils.stream_to_text(http_res)
2578
+ raise errors.APIError(
2579
+ "API error occurred", http_res.status_code, http_res_text, http_res
2580
+ )
2581
+ if utils.match_response(http_res, "5XX", "*"):
2582
+ http_res_text = utils.stream_to_text(http_res)
2583
+ raise errors.APIError(
2584
+ "API error occurred", http_res.status_code, http_res_text, http_res
2585
+ )
2586
+
2587
+ content_type = http_res.headers.get("Content-Type")
2588
+ http_res_text = utils.stream_to_text(http_res)
2589
+ raise errors.APIError(
2590
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2591
+ http_res.status_code,
2592
+ http_res_text,
2593
+ http_res,
2594
+ )
2595
+
2596
+ async def delete_evidence_async(
2597
+ self,
2598
+ *,
2599
+ account_id: str,
2600
+ dispute_id: str,
2601
+ evidence_id: str,
2602
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2603
+ server_url: Optional[str] = None,
2604
+ timeout_ms: Optional[int] = None,
2605
+ http_headers: Optional[Mapping[str, str]] = None,
2606
+ ) -> operations.DeleteDisputeEvidenceFileResponse:
2607
+ r"""Deletes dispute evidence by ID.
2608
+
2609
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2610
+
2611
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2612
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
2613
+
2614
+ :param account_id:
2615
+ :param dispute_id:
2616
+ :param evidence_id:
2617
+ :param retries: Override the default retry configuration for this method
2618
+ :param server_url: Override the default server URL for this method
2619
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2620
+ :param http_headers: Additional headers to set or replace on requests.
2621
+ """
2622
+ base_url = None
2623
+ url_variables = None
2624
+ if timeout_ms is None:
2625
+ timeout_ms = self.sdk_configuration.timeout_ms
2626
+
2627
+ if server_url is not None:
2628
+ base_url = server_url
2629
+ else:
2630
+ base_url = self._get_url(base_url, url_variables)
2631
+
2632
+ request = operations.DeleteDisputeEvidenceFileRequest(
2633
+ account_id=account_id,
2634
+ dispute_id=dispute_id,
2635
+ evidence_id=evidence_id,
2636
+ )
2637
+
2638
+ req = self._build_request_async(
2639
+ method="DELETE",
2640
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}",
2641
+ base_url=base_url,
2642
+ url_variables=url_variables,
2643
+ request=request,
2644
+ request_body_required=False,
2645
+ request_has_path_params=True,
2646
+ request_has_query_params=True,
2647
+ user_agent_header="user-agent",
2648
+ accept_header_value="application/json",
2649
+ http_headers=http_headers,
2650
+ _globals=operations.DeleteDisputeEvidenceFileGlobals(
2651
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2652
+ ),
2653
+ security=self.sdk_configuration.security,
2654
+ timeout_ms=timeout_ms,
2655
+ )
2656
+
2657
+ if retries == UNSET:
2658
+ if self.sdk_configuration.retry_config is not UNSET:
2659
+ retries = self.sdk_configuration.retry_config
2660
+
2661
+ retry_config = None
2662
+ if isinstance(retries, utils.RetryConfig):
2663
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2664
+
2665
+ http_res = await self.do_request_async(
2666
+ hook_ctx=HookContext(
2667
+ base_url=base_url or "",
2668
+ operation_id="deleteDisputeEvidenceFile",
2669
+ oauth2_scopes=[],
2670
+ security_source=get_security_from_env(
2671
+ self.sdk_configuration.security, components.Security
2672
+ ),
2673
+ ),
2674
+ request=req,
2675
+ error_status_codes=[
2676
+ "401",
2677
+ "403",
2678
+ "404",
2679
+ "409",
2680
+ "429",
2681
+ "4XX",
2682
+ "500",
2683
+ "504",
2684
+ "5XX",
2685
+ ],
2686
+ retry_config=retry_config,
2687
+ )
2688
+
2689
+ response_data: Any = None
2690
+ if utils.match_response(http_res, "204", "*"):
2691
+ return operations.DeleteDisputeEvidenceFileResponse(
2692
+ headers=utils.get_response_headers(http_res.headers)
2693
+ )
2694
+ if utils.match_response(http_res, "409", "application/json"):
2695
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
2696
+ raise errors.GenericError(data=response_data)
2697
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2698
+ http_res_text = await utils.stream_to_text_async(http_res)
2699
+ raise errors.APIError(
2700
+ "API error occurred", http_res.status_code, http_res_text, http_res
2701
+ )
2702
+ if utils.match_response(http_res, ["500", "504"], "*"):
2703
+ http_res_text = await utils.stream_to_text_async(http_res)
2704
+ raise errors.APIError(
2705
+ "API error occurred", http_res.status_code, http_res_text, http_res
2706
+ )
2707
+ if utils.match_response(http_res, "4XX", "*"):
2708
+ http_res_text = await utils.stream_to_text_async(http_res)
2709
+ raise errors.APIError(
2710
+ "API error occurred", http_res.status_code, http_res_text, http_res
2711
+ )
2712
+ if utils.match_response(http_res, "5XX", "*"):
2713
+ http_res_text = await utils.stream_to_text_async(http_res)
2714
+ raise errors.APIError(
2715
+ "API error occurred", http_res.status_code, http_res_text, http_res
2716
+ )
2717
+
2718
+ content_type = http_res.headers.get("Content-Type")
2719
+ http_res_text = await utils.stream_to_text_async(http_res)
2720
+ raise errors.APIError(
2721
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2722
+ http_res.status_code,
2723
+ http_res_text,
2724
+ http_res,
2725
+ )
2726
+
2727
+ def get_evidence_data(
2728
+ self,
2729
+ *,
2730
+ account_id: str,
2731
+ dispute_id: str,
2732
+ evidence_id: str,
2733
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2734
+ server_url: Optional[str] = None,
2735
+ timeout_ms: Optional[int] = None,
2736
+ accept_header_override: Optional[GetEvidenceDataAcceptEnum] = None,
2737
+ http_headers: Optional[Mapping[str, str]] = None,
2738
+ ) -> operations.GetDisputeEvidenceDataResponse:
2739
+ r"""Downloads dispute evidence data by ID.
2740
+
2741
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2742
+
2743
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2744
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
2745
+
2746
+ :param account_id:
2747
+ :param dispute_id:
2748
+ :param evidence_id:
2749
+ :param retries: Override the default retry configuration for this method
2750
+ :param server_url: Override the default server URL for this method
2751
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2752
+ :param accept_header_override: Override the default accept header for this method
2753
+ :param http_headers: Additional headers to set or replace on requests.
2754
+ """
2755
+ base_url = None
2756
+ url_variables = None
2757
+ if timeout_ms is None:
2758
+ timeout_ms = self.sdk_configuration.timeout_ms
2759
+
2760
+ if server_url is not None:
2761
+ base_url = server_url
2762
+ else:
2763
+ base_url = self._get_url(base_url, url_variables)
2764
+
2765
+ request = operations.GetDisputeEvidenceDataRequest(
2766
+ account_id=account_id,
2767
+ dispute_id=dispute_id,
2768
+ evidence_id=evidence_id,
2769
+ )
2770
+
2771
+ req = self._build_request(
2772
+ method="GET",
2773
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}/data",
2774
+ base_url=base_url,
2775
+ url_variables=url_variables,
2776
+ request=request,
2777
+ request_body_required=False,
2778
+ request_has_path_params=True,
2779
+ request_has_query_params=True,
2780
+ user_agent_header="user-agent",
2781
+ accept_header_value=accept_header_override.value
2782
+ if accept_header_override is not None
2783
+ else "application/pdf;q=1, image/jpeg;q=0.7, image/tiff;q=0",
2784
+ http_headers=http_headers,
2785
+ _globals=operations.GetDisputeEvidenceDataGlobals(
2786
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2787
+ ),
2788
+ security=self.sdk_configuration.security,
2789
+ timeout_ms=timeout_ms,
2790
+ )
2791
+
2792
+ if retries == UNSET:
2793
+ if self.sdk_configuration.retry_config is not UNSET:
2794
+ retries = self.sdk_configuration.retry_config
2795
+
2796
+ retry_config = None
2797
+ if isinstance(retries, utils.RetryConfig):
2798
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2799
+
2800
+ http_res = self.do_request(
2801
+ hook_ctx=HookContext(
2802
+ base_url=base_url or "",
2803
+ operation_id="getDisputeEvidenceData",
2804
+ oauth2_scopes=[],
2805
+ security_source=get_security_from_env(
2806
+ self.sdk_configuration.security, components.Security
2807
+ ),
2808
+ ),
2809
+ request=req,
2810
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
2811
+ stream=True,
2812
+ retry_config=retry_config,
2813
+ )
2814
+
2815
+ if utils.match_response(http_res, "200", "application/pdf"):
2816
+ return operations.GetDisputeEvidenceDataResponse(
2817
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2818
+ )
2819
+ if utils.match_response(http_res, "200", "image/jpeg"):
2820
+ return operations.GetDisputeEvidenceDataResponse(
2821
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2822
+ )
2823
+ if utils.match_response(http_res, "200", "image/tiff"):
2824
+ return operations.GetDisputeEvidenceDataResponse(
2825
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2826
+ )
2827
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2828
+ http_res_text = utils.stream_to_text(http_res)
2829
+ raise errors.APIError(
2830
+ "API error occurred", http_res.status_code, http_res_text, http_res
2831
+ )
2832
+ if utils.match_response(http_res, ["500", "504"], "*"):
2833
+ http_res_text = utils.stream_to_text(http_res)
2834
+ raise errors.APIError(
2835
+ "API error occurred", http_res.status_code, http_res_text, http_res
2836
+ )
2837
+ if utils.match_response(http_res, "4XX", "*"):
2838
+ http_res_text = utils.stream_to_text(http_res)
2839
+ raise errors.APIError(
2840
+ "API error occurred", http_res.status_code, http_res_text, http_res
2841
+ )
2842
+ if utils.match_response(http_res, "5XX", "*"):
2843
+ http_res_text = utils.stream_to_text(http_res)
2844
+ raise errors.APIError(
2845
+ "API error occurred", http_res.status_code, http_res_text, http_res
2846
+ )
2847
+
2848
+ content_type = http_res.headers.get("Content-Type")
2849
+ http_res_text = utils.stream_to_text(http_res)
2850
+ raise errors.APIError(
2851
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2852
+ http_res.status_code,
2853
+ http_res_text,
2854
+ http_res,
2855
+ )
2856
+
2857
+ async def get_evidence_data_async(
2858
+ self,
2859
+ *,
2860
+ account_id: str,
2861
+ dispute_id: str,
2862
+ evidence_id: str,
2863
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
2864
+ server_url: Optional[str] = None,
2865
+ timeout_ms: Optional[int] = None,
2866
+ accept_header_override: Optional[GetEvidenceDataAcceptEnum] = None,
2867
+ http_headers: Optional[Mapping[str, str]] = None,
2868
+ ) -> operations.GetDisputeEvidenceDataResponse:
2869
+ r"""Downloads dispute evidence data by ID.
2870
+
2871
+ Read our [disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/) to learn more.
2872
+
2873
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
2874
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
2875
+
2876
+ :param account_id:
2877
+ :param dispute_id:
2878
+ :param evidence_id:
2879
+ :param retries: Override the default retry configuration for this method
2880
+ :param server_url: Override the default server URL for this method
2881
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
2882
+ :param accept_header_override: Override the default accept header for this method
2883
+ :param http_headers: Additional headers to set or replace on requests.
2884
+ """
2885
+ base_url = None
2886
+ url_variables = None
2887
+ if timeout_ms is None:
2888
+ timeout_ms = self.sdk_configuration.timeout_ms
2889
+
2890
+ if server_url is not None:
2891
+ base_url = server_url
2892
+ else:
2893
+ base_url = self._get_url(base_url, url_variables)
2894
+
2895
+ request = operations.GetDisputeEvidenceDataRequest(
2896
+ account_id=account_id,
2897
+ dispute_id=dispute_id,
2898
+ evidence_id=evidence_id,
2899
+ )
2900
+
2901
+ req = self._build_request_async(
2902
+ method="GET",
2903
+ path="/accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}/data",
2904
+ base_url=base_url,
2905
+ url_variables=url_variables,
2906
+ request=request,
2907
+ request_body_required=False,
2908
+ request_has_path_params=True,
2909
+ request_has_query_params=True,
2910
+ user_agent_header="user-agent",
2911
+ accept_header_value=accept_header_override.value
2912
+ if accept_header_override is not None
2913
+ else "application/pdf;q=1, image/jpeg;q=0.7, image/tiff;q=0",
2914
+ http_headers=http_headers,
2915
+ _globals=operations.GetDisputeEvidenceDataGlobals(
2916
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
2917
+ ),
2918
+ security=self.sdk_configuration.security,
2919
+ timeout_ms=timeout_ms,
2920
+ )
2921
+
2922
+ if retries == UNSET:
2923
+ if self.sdk_configuration.retry_config is not UNSET:
2924
+ retries = self.sdk_configuration.retry_config
2925
+
2926
+ retry_config = None
2927
+ if isinstance(retries, utils.RetryConfig):
2928
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
2929
+
2930
+ http_res = await self.do_request_async(
2931
+ hook_ctx=HookContext(
2932
+ base_url=base_url or "",
2933
+ operation_id="getDisputeEvidenceData",
2934
+ oauth2_scopes=[],
2935
+ security_source=get_security_from_env(
2936
+ self.sdk_configuration.security, components.Security
2937
+ ),
2938
+ ),
2939
+ request=req,
2940
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
2941
+ stream=True,
2942
+ retry_config=retry_config,
2943
+ )
2944
+
2945
+ if utils.match_response(http_res, "200", "application/pdf"):
2946
+ return operations.GetDisputeEvidenceDataResponse(
2947
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2948
+ )
2949
+ if utils.match_response(http_res, "200", "image/jpeg"):
2950
+ return operations.GetDisputeEvidenceDataResponse(
2951
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2952
+ )
2953
+ if utils.match_response(http_res, "200", "image/tiff"):
2954
+ return operations.GetDisputeEvidenceDataResponse(
2955
+ result=http_res, headers=utils.get_response_headers(http_res.headers)
2956
+ )
2957
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
2958
+ http_res_text = await utils.stream_to_text_async(http_res)
2959
+ raise errors.APIError(
2960
+ "API error occurred", http_res.status_code, http_res_text, http_res
2961
+ )
2962
+ if utils.match_response(http_res, ["500", "504"], "*"):
2963
+ http_res_text = await utils.stream_to_text_async(http_res)
2964
+ raise errors.APIError(
2965
+ "API error occurred", http_res.status_code, http_res_text, http_res
2966
+ )
2967
+ if utils.match_response(http_res, "4XX", "*"):
2968
+ http_res_text = await utils.stream_to_text_async(http_res)
2969
+ raise errors.APIError(
2970
+ "API error occurred", http_res.status_code, http_res_text, http_res
2971
+ )
2972
+ if utils.match_response(http_res, "5XX", "*"):
2973
+ http_res_text = await utils.stream_to_text_async(http_res)
2974
+ raise errors.APIError(
2975
+ "API error occurred", http_res.status_code, http_res_text, http_res
2976
+ )
2977
+
2978
+ content_type = http_res.headers.get("Content-Type")
2979
+ http_res_text = await utils.stream_to_text_async(http_res)
2980
+ raise errors.APIError(
2981
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
2982
+ http_res.status_code,
2983
+ http_res_text,
2984
+ http_res,
2985
+ )