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.
- moovio_sdk/__init__.py +17 -0
- moovio_sdk/_hooks/__init__.py +5 -0
- moovio_sdk/_hooks/registration.py +13 -0
- moovio_sdk/_hooks/sdkhooks.py +76 -0
- moovio_sdk/_hooks/types.py +106 -0
- moovio_sdk/_version.py +15 -0
- moovio_sdk/accounts.py +2461 -0
- moovio_sdk/adjustments.py +463 -0
- moovio_sdk/apple_pay.py +1417 -0
- moovio_sdk/authentication.py +531 -0
- moovio_sdk/avatars.py +231 -0
- moovio_sdk/bank_accounts.py +2445 -0
- moovio_sdk/basesdk.py +363 -0
- moovio_sdk/branding.py +1089 -0
- moovio_sdk/capabilities.py +1001 -0
- moovio_sdk/card_issuing.py +1351 -0
- moovio_sdk/cards.py +1469 -0
- moovio_sdk/disputes.py +2985 -0
- moovio_sdk/end_to_end_encryption.py +453 -0
- moovio_sdk/enriched_address.py +307 -0
- moovio_sdk/enriched_profile.py +235 -0
- moovio_sdk/fee_plans.py +1759 -0
- moovio_sdk/files.py +775 -0
- moovio_sdk/httpclient.py +136 -0
- moovio_sdk/industries.py +239 -0
- moovio_sdk/institutions.py +261 -0
- moovio_sdk/issuing_transactions.py +1228 -0
- moovio_sdk/models/__init__.py +4 -0
- moovio_sdk/models/components/__init__.py +1411 -0
- moovio_sdk/models/components/account.py +96 -0
- moovio_sdk/models/components/accountcapability.py +20 -0
- moovio_sdk/models/components/accountcountries.py +18 -0
- moovio_sdk/models/components/accountnameverification.py +28 -0
- moovio_sdk/models/components/accounttype.py +11 -0
- moovio_sdk/models/components/accountverificationstatus.py +19 -0
- moovio_sdk/models/components/achcreditsamedaypaymentmethod.py +38 -0
- moovio_sdk/models/components/achcreditstandardpaymentmethod.py +38 -0
- moovio_sdk/models/components/achdebitcollectpaymentmethod.py +38 -0
- moovio_sdk/models/components/achdebitfundpaymentmethod.py +38 -0
- moovio_sdk/models/components/achexception.py +20 -0
- moovio_sdk/models/components/achlocation.py +26 -0
- moovio_sdk/models/components/achparticipant.py +93 -0
- moovio_sdk/models/components/achpaymentdetails.py +30 -0
- moovio_sdk/models/components/achpaymentdetailserror.py +22 -0
- moovio_sdk/models/components/achpaymentsettings.py +16 -0
- moovio_sdk/models/components/achreturncode.py +51 -0
- moovio_sdk/models/components/achtransactiondetails.py +94 -0
- moovio_sdk/models/components/achtransactionstatus.py +15 -0
- moovio_sdk/models/components/addcapabilities.py +15 -0
- moovio_sdk/models/components/address.py +30 -0
- moovio_sdk/models/components/addresserror.py +32 -0
- moovio_sdk/models/components/addresssuggestion.py +34 -0
- moovio_sdk/models/components/addressupdate.py +32 -0
- moovio_sdk/models/components/adjustment.py +29 -0
- moovio_sdk/models/components/amount.py +26 -0
- moovio_sdk/models/components/amountdecimal.py +27 -0
- moovio_sdk/models/components/amountupdate.py +27 -0
- moovio_sdk/models/components/amountvalidationerror.py +17 -0
- moovio_sdk/models/components/applebillingcontact.py +53 -0
- moovio_sdk/models/components/applepayheader.py +41 -0
- moovio_sdk/models/components/applepaymerchantdomains.py +32 -0
- moovio_sdk/models/components/applepaypaymentmethod.py +33 -0
- moovio_sdk/models/components/applepayresponse.py +70 -0
- moovio_sdk/models/components/applicationscope.py +41 -0
- moovio_sdk/models/components/asynccreatedrefund.py +26 -0
- moovio_sdk/models/components/asynctransfer.py +18 -0
- moovio_sdk/models/components/authorizeduser.py +21 -0
- moovio_sdk/models/components/authtoken.py +36 -0
- moovio_sdk/models/components/authtokenrequest.py +46 -0
- moovio_sdk/models/components/bankaccount.py +98 -0
- moovio_sdk/models/components/bankaccountexception.py +96 -0
- moovio_sdk/models/components/bankaccountholdertype.py +11 -0
- moovio_sdk/models/components/bankaccountintegration.py +34 -0
- moovio_sdk/models/components/bankaccountpayload.py +21 -0
- moovio_sdk/models/components/bankaccountstatus.py +12 -0
- moovio_sdk/models/components/bankaccountstatusreason.py +23 -0
- moovio_sdk/models/components/bankaccounttype.py +13 -0
- moovio_sdk/models/components/bankaccountverification.py +30 -0
- moovio_sdk/models/components/bankaccountverificationcreated.py +21 -0
- moovio_sdk/models/components/bankaccountverificationmethod.py +9 -0
- moovio_sdk/models/components/bankaccountverificationstatus.py +13 -0
- moovio_sdk/models/components/bankaccountwaitfor.py +9 -0
- moovio_sdk/models/components/basicpaymentmethod.py +24 -0
- moovio_sdk/models/components/billablefee.py +54 -0
- moovio_sdk/models/components/birthdate.py +19 -0
- moovio_sdk/models/components/birthdateerror.py +20 -0
- moovio_sdk/models/components/birthdateupdate.py +20 -0
- moovio_sdk/models/components/birthdatevalidationerror.py +20 -0
- moovio_sdk/models/components/brandcolor.py +15 -0
- moovio_sdk/models/components/brandcolors.py +21 -0
- moovio_sdk/models/components/brandcolorvalidationerror.py +14 -0
- moovio_sdk/models/components/brandproperties.py +16 -0
- moovio_sdk/models/components/businessprofile.py +81 -0
- moovio_sdk/models/components/businesstype.py +19 -0
- moovio_sdk/models/components/calltoaction.py +19 -0
- moovio_sdk/models/components/cancellation.py +22 -0
- moovio_sdk/models/components/cancellationstatus.py +10 -0
- moovio_sdk/models/components/capabilitieserror.py +14 -0
- moovio_sdk/models/components/capability.py +56 -0
- moovio_sdk/models/components/capabilityid.py +18 -0
- moovio_sdk/models/components/capabilityrequirement.py +26 -0
- moovio_sdk/models/components/capabilitystatus.py +13 -0
- moovio_sdk/models/components/card.py +164 -0
- moovio_sdk/models/components/cardaccountupdater.py +28 -0
- moovio_sdk/models/components/cardacquiringdispute.py +26 -0
- moovio_sdk/models/components/cardacquiringmodel.py +11 -0
- moovio_sdk/models/components/cardacquiringrefund.py +42 -0
- moovio_sdk/models/components/cardaddress.py +32 -0
- moovio_sdk/models/components/cardbrand.py +14 -0
- moovio_sdk/models/components/cardexpiration.py +20 -0
- moovio_sdk/models/components/cardexpirationerror.py +17 -0
- moovio_sdk/models/components/cardissuingnetwork.py +12 -0
- moovio_sdk/models/components/cardpaymentdetails.py +23 -0
- moovio_sdk/models/components/cardpaymentdetailserror.py +17 -0
- moovio_sdk/models/components/cardpaymentpaymentmethod.py +33 -0
- moovio_sdk/models/components/cardpaymentsettings.py +23 -0
- moovio_sdk/models/components/cardtransactiondetails.py +94 -0
- moovio_sdk/models/components/cardtransactionfailurecode.py +32 -0
- moovio_sdk/models/components/cardtransactionstatus.py +15 -0
- moovio_sdk/models/components/cardtype.py +13 -0
- moovio_sdk/models/components/cardupdatereason.py +16 -0
- moovio_sdk/models/components/cardverification.py +38 -0
- moovio_sdk/models/components/cardverificationresult.py +12 -0
- moovio_sdk/models/components/cardvolumedistribution.py +29 -0
- moovio_sdk/models/components/cardvolumedistributionerror.py +32 -0
- moovio_sdk/models/components/collectionpaymentmethodtype.py +12 -0
- moovio_sdk/models/components/colorsvalidationerror.py +21 -0
- moovio_sdk/models/components/completebankaccountverification.py +15 -0
- moovio_sdk/models/components/completedmicrodeposits.py +14 -0
- moovio_sdk/models/components/completemicrodeposits.py +20 -0
- moovio_sdk/models/components/countrieserrors.py +14 -0
- moovio_sdk/models/components/createaccount.py +78 -0
- moovio_sdk/models/components/createaccounterror.py +44 -0
- moovio_sdk/models/components/createaccountsettings.py +40 -0
- moovio_sdk/models/components/createapplepaysession.py +21 -0
- moovio_sdk/models/components/createauthorizeduser.py +26 -0
- moovio_sdk/models/components/createauthorizedusererror.py +24 -0
- moovio_sdk/models/components/createauthorizeduserupdate.py +28 -0
- moovio_sdk/models/components/createbusinesserror.py +88 -0
- moovio_sdk/models/components/createbusinessprofile.py +69 -0
- moovio_sdk/models/components/createevidencefilemultipart.py +63 -0
- moovio_sdk/models/components/createevidencetext.py +20 -0
- moovio_sdk/models/components/createfeeplanagreement.py +14 -0
- moovio_sdk/models/components/createindividualerror.py +72 -0
- moovio_sdk/models/components/createindividualprofile.py +37 -0
- moovio_sdk/models/components/createpaymentlink.py +95 -0
- moovio_sdk/models/components/createprofile.py +22 -0
- moovio_sdk/models/components/createprofileerror.py +19 -0
- moovio_sdk/models/components/createrefund.py +26 -0
- moovio_sdk/models/components/createrefundresponse.py +18 -0
- moovio_sdk/models/components/createrepresentative.py +50 -0
- moovio_sdk/models/components/createreversal.py +15 -0
- moovio_sdk/models/components/createsweepconfig.py +41 -0
- moovio_sdk/models/components/createterminalapplication.py +42 -0
- moovio_sdk/models/components/createtransfer.py +49 -0
- moovio_sdk/models/components/createtransferdestination.py +37 -0
- moovio_sdk/models/components/createtransferdestinationach.py +26 -0
- moovio_sdk/models/components/createtransferdestinationcard.py +19 -0
- moovio_sdk/models/components/createtransferoptions.py +24 -0
- moovio_sdk/models/components/createtransfersource.py +48 -0
- moovio_sdk/models/components/createtransfersourceach.py +40 -0
- moovio_sdk/models/components/createtransfersourcecard.py +35 -0
- moovio_sdk/models/components/customersupport.py +33 -0
- moovio_sdk/models/components/customersupporterror.py +25 -0
- moovio_sdk/models/components/debitholdperiod.py +12 -0
- moovio_sdk/models/components/disbursementpaymentmethodtype.py +13 -0
- moovio_sdk/models/components/displayoptionserror.py +23 -0
- moovio_sdk/models/components/dispute.py +76 -0
- moovio_sdk/models/components/disputeevidenceresponse.py +49 -0
- moovio_sdk/models/components/disputephase.py +13 -0
- moovio_sdk/models/components/disputestatus.py +20 -0
- moovio_sdk/models/components/disputetransferdetails.py +16 -0
- moovio_sdk/models/components/document.py +37 -0
- moovio_sdk/models/components/documenttype.py +13 -0
- moovio_sdk/models/components/domesticpullfromcard.py +12 -0
- moovio_sdk/models/components/domesticpushtocard.py +13 -0
- moovio_sdk/models/components/e2eetoken.py +25 -0
- moovio_sdk/models/components/e2eetokenupdate.py +26 -0
- moovio_sdk/models/components/end2endencryptionerror.py +14 -0
- moovio_sdk/models/components/enrichedaddressresponse.py +15 -0
- moovio_sdk/models/components/enrichedbusinessprofile.py +37 -0
- moovio_sdk/models/components/enrichedbusinessresponse.py +18 -0
- moovio_sdk/models/components/enrichedindustries.py +15 -0
- moovio_sdk/models/components/enrichedindustry.py +32 -0
- moovio_sdk/models/components/enrichedindustrycodes.py +17 -0
- moovio_sdk/models/components/evidencetextresponse.py +28 -0
- moovio_sdk/models/components/evidencetype.py +15 -0
- moovio_sdk/models/components/evidenceuploadresponse.py +50 -0
- moovio_sdk/models/components/facilitatorfee.py +48 -0
- moovio_sdk/models/components/feecategory.py +16 -0
- moovio_sdk/models/components/feemodel.py +12 -0
- moovio_sdk/models/components/feeplan.py +43 -0
- moovio_sdk/models/components/feeplanagreement.py +51 -0
- moovio_sdk/models/components/feeplanagreementstatus.py +9 -0
- moovio_sdk/models/components/feeproperties.py +49 -0
- moovio_sdk/models/components/filedetails.py +55 -0
- moovio_sdk/models/components/filepurpose.py +15 -0
- moovio_sdk/models/components/filestatus.py +12 -0
- moovio_sdk/models/components/fileuploadrequestmultipart.py +69 -0
- moovio_sdk/models/components/financialinstitutions.py +18 -0
- moovio_sdk/models/components/fulfillmentdetails.py +24 -0
- moovio_sdk/models/components/fulfillmentdetailserror.py +20 -0
- moovio_sdk/models/components/fullissuedcard.py +92 -0
- moovio_sdk/models/components/generatedby.py +39 -0
- moovio_sdk/models/components/generatedbyaccountid.py +15 -0
- moovio_sdk/models/components/generatedbybankaccountid.py +17 -0
- moovio_sdk/models/components/generatedbycardid.py +15 -0
- moovio_sdk/models/components/generatedbydisputeid.py +15 -0
- moovio_sdk/models/components/generatedbytransferid.py +15 -0
- moovio_sdk/models/components/governmentid.py +40 -0
- moovio_sdk/models/components/governmentiderror.py +40 -0
- moovio_sdk/models/components/granttype.py +15 -0
- moovio_sdk/models/components/incurredfee.py +44 -0
- moovio_sdk/models/components/individualname.py +32 -0
- moovio_sdk/models/components/individualnameerror.py +24 -0
- moovio_sdk/models/components/individualnameupdate.py +32 -0
- moovio_sdk/models/components/individualprofile.py +45 -0
- moovio_sdk/models/components/industrycodes.py +20 -0
- moovio_sdk/models/components/issuedcard.py +78 -0
- moovio_sdk/models/components/issuedcardauthorization.py +53 -0
- moovio_sdk/models/components/issuedcardauthorizationevent.py +37 -0
- moovio_sdk/models/components/issuedcardauthorizationeventresult.py +12 -0
- moovio_sdk/models/components/issuedcardeventtype.py +15 -0
- moovio_sdk/models/components/issuedcardformfactor.py +10 -0
- moovio_sdk/models/components/issuedcardstate.py +19 -0
- moovio_sdk/models/components/issuedcardtransaction.py +42 -0
- moovio_sdk/models/components/issuingauthorizationstatus.py +14 -0
- moovio_sdk/models/components/issuingcontrols.py +25 -0
- moovio_sdk/models/components/issuingcontrolserror.py +22 -0
- moovio_sdk/models/components/issuingintervallimit.py +10 -0
- moovio_sdk/models/components/issuingmerchantdata.py +47 -0
- moovio_sdk/models/components/issuingvelocitylimit.py +21 -0
- moovio_sdk/models/components/issuingvelocitylimiterror.py +17 -0
- moovio_sdk/models/components/jsonwebkey.py +103 -0
- moovio_sdk/models/components/linkapplepay.py +54 -0
- moovio_sdk/models/components/linkapplepaymentdata.py +51 -0
- moovio_sdk/models/components/linkapplepaymentmethod.py +38 -0
- moovio_sdk/models/components/linkapplepaytoken.py +63 -0
- moovio_sdk/models/components/linkbankaccount.py +26 -0
- moovio_sdk/models/components/linkcard.py +54 -0
- moovio_sdk/models/components/linkcardwaitfor.py +8 -0
- moovio_sdk/models/components/linkedapplepaypaymentmethod.py +30 -0
- moovio_sdk/models/components/listfeesfetchrequest.py +19 -0
- moovio_sdk/models/components/manualtermsofservice.py +34 -0
- moovio_sdk/models/components/manualtermsofserviceupdate.py +41 -0
- moovio_sdk/models/components/microdepositstatus.py +8 -0
- moovio_sdk/models/components/mode.py +11 -0
- moovio_sdk/models/components/moovfeedetails.py +36 -0
- moovio_sdk/models/components/moovwalletpaymentmethod.py +31 -0
- moovio_sdk/models/components/mxauthorizationcode.py +26 -0
- moovio_sdk/models/components/mxpayload.py +46 -0
- moovio_sdk/models/components/occurrence.py +44 -0
- moovio_sdk/models/components/occurrencesresponse.py +80 -0
- moovio_sdk/models/components/occurrencestatus.py +12 -0
- moovio_sdk/models/components/onboardinginvite.py +91 -0
- moovio_sdk/models/components/onboardinginviterequest.py +57 -0
- moovio_sdk/models/components/onboardingpartneraccount.py +31 -0
- moovio_sdk/models/components/partnerpricing.py +46 -0
- moovio_sdk/models/components/partnerpricingagreement.py +56 -0
- moovio_sdk/models/components/patchaccount.py +138 -0
- moovio_sdk/models/components/patchaccounterror.py +38 -0
- moovio_sdk/models/components/patchbusiness.py +72 -0
- moovio_sdk/models/components/patchindividual.py +43 -0
- moovio_sdk/models/components/patchprofile.py +29 -0
- moovio_sdk/models/components/patchsweepconfig.py +147 -0
- moovio_sdk/models/components/patchtransfer.py +51 -0
- moovio_sdk/models/components/paymentdetailserror.py +35 -0
- moovio_sdk/models/components/paymentlink.py +125 -0
- moovio_sdk/models/components/paymentlinkcustomeroptions.py +31 -0
- moovio_sdk/models/components/paymentlinkdisplayoptions.py +39 -0
- moovio_sdk/models/components/paymentlinkdisplayoptionsupdate.py +42 -0
- moovio_sdk/models/components/paymentlinkpaymentdetails.py +40 -0
- moovio_sdk/models/components/paymentlinkpaymentdetailsupdate.py +41 -0
- moovio_sdk/models/components/paymentlinkpayoutdetails.py +32 -0
- moovio_sdk/models/components/paymentlinkpayoutdetailsupdate.py +33 -0
- moovio_sdk/models/components/paymentlinkstatus.py +11 -0
- moovio_sdk/models/components/paymentmethod.py +82 -0
- moovio_sdk/models/components/paymentmethodsbankaccount.py +65 -0
- moovio_sdk/models/components/paymentmethodscard.py +121 -0
- moovio_sdk/models/components/paymentmethodswallet.py +14 -0
- moovio_sdk/models/components/paymentmethodtype.py +19 -0
- moovio_sdk/models/components/payoutdetailserror.py +21 -0
- moovio_sdk/models/components/payoutrecipient.py +23 -0
- moovio_sdk/models/components/payoutrecipienterror.py +14 -0
- moovio_sdk/models/components/payoutrecipientupdate.py +24 -0
- moovio_sdk/models/components/phonenumber.py +18 -0
- moovio_sdk/models/components/phonenumbererror.py +18 -0
- moovio_sdk/models/components/plaidintegration.py +39 -0
- moovio_sdk/models/components/plaidlinkintegration.py +36 -0
- moovio_sdk/models/components/plaidlinkpayload.py +45 -0
- moovio_sdk/models/components/plaidpayload.py +42 -0
- moovio_sdk/models/components/primaryregulator.py +13 -0
- moovio_sdk/models/components/profile.py +27 -0
- moovio_sdk/models/components/pullfromcardpaymentmethod.py +33 -0
- moovio_sdk/models/components/pushtocardpaymentmethod.py +33 -0
- moovio_sdk/models/components/qrcode.py +16 -0
- moovio_sdk/models/components/receiptkind.py +10 -0
- moovio_sdk/models/components/receiptrequest.py +75 -0
- moovio_sdk/models/components/receiptresponse.py +95 -0
- moovio_sdk/models/components/recur.py +40 -0
- moovio_sdk/models/components/refundcarddetails.py +44 -0
- moovio_sdk/models/components/refundcardstatus.py +12 -0
- moovio_sdk/models/components/refundstatus.py +11 -0
- moovio_sdk/models/components/registerapplepaymerchantdomains.py +22 -0
- moovio_sdk/models/components/representative.py +71 -0
- moovio_sdk/models/components/representativeresponsibilities.py +42 -0
- moovio_sdk/models/components/representativeresponsibilitieserror.py +26 -0
- moovio_sdk/models/components/requestcard.py +44 -0
- moovio_sdk/models/components/requirementerror.py +24 -0
- moovio_sdk/models/components/requirementerrorcode.py +25 -0
- moovio_sdk/models/components/requirementid.py +71 -0
- moovio_sdk/models/components/returnpolicytype.py +11 -0
- moovio_sdk/models/components/reversal.py +23 -0
- moovio_sdk/models/components/reversedwithcancellation.py +14 -0
- moovio_sdk/models/components/reversedwithrefund.py +16 -0
- moovio_sdk/models/components/revoketokenrequest.py +40 -0
- moovio_sdk/models/components/rtpcreditpaymentmethod.py +38 -0
- moovio_sdk/models/components/rtpfailurecode.py +19 -0
- moovio_sdk/models/components/rtprejectioncode.py +25 -0
- moovio_sdk/models/components/rtptransactiondetails.py +56 -0
- moovio_sdk/models/components/rtptransactionstatus.py +13 -0
- moovio_sdk/models/components/runtransfer.py +34 -0
- moovio_sdk/models/components/schedulepaymentmethod.py +56 -0
- moovio_sdk/models/components/scheduleresponse.py +60 -0
- moovio_sdk/models/components/seccode.py +13 -0
- moovio_sdk/models/components/security.py +32 -0
- moovio_sdk/models/components/sentreceipt.py +27 -0
- moovio_sdk/models/components/settings.py +30 -0
- moovio_sdk/models/components/sourcedestinationoptions.py +20 -0
- moovio_sdk/models/components/sweep.py +80 -0
- moovio_sdk/models/components/sweepconfig.py +81 -0
- moovio_sdk/models/components/sweepconfigpaymentmethod.py +31 -0
- moovio_sdk/models/components/sweepconfigstatus.py +9 -0
- moovio_sdk/models/components/sweepstatus.py +13 -0
- moovio_sdk/models/components/taxid.py +25 -0
- moovio_sdk/models/components/taxidupdate.py +26 -0
- moovio_sdk/models/components/terminalapplication.py +55 -0
- moovio_sdk/models/components/terminalapplicationplatform.py +12 -0
- moovio_sdk/models/components/terminalapplicationstatus.py +13 -0
- moovio_sdk/models/components/termsofservice.py +26 -0
- moovio_sdk/models/components/termsofserviceerror.py +39 -0
- moovio_sdk/models/components/termsofservicetoken.py +17 -0
- moovio_sdk/models/components/termsofservicetokenupdate.py +18 -0
- moovio_sdk/models/components/tokentype.py +10 -0
- moovio_sdk/models/components/transactionsource.py +16 -0
- moovio_sdk/models/components/transfer.py +126 -0
- moovio_sdk/models/components/transferaccount.py +20 -0
- moovio_sdk/models/components/transferdestination.py +83 -0
- moovio_sdk/models/components/transferfailurereason.py +14 -0
- moovio_sdk/models/components/transferoptions.py +23 -0
- moovio_sdk/models/components/transferresponse.py +15 -0
- moovio_sdk/models/components/transfersource.py +80 -0
- moovio_sdk/models/components/transferstatus.py +16 -0
- moovio_sdk/models/components/transferwaitfor.py +8 -0
- moovio_sdk/models/components/underwriting.py +56 -0
- moovio_sdk/models/components/underwritingstatus.py +16 -0
- moovio_sdk/models/components/updateapplepaymerchantdomains.py +26 -0
- moovio_sdk/models/components/updatebrand.py +15 -0
- moovio_sdk/models/components/updatecard.py +51 -0
- moovio_sdk/models/components/updatecardaddress.py +32 -0
- moovio_sdk/models/components/updatecardexpiration.py +17 -0
- moovio_sdk/models/components/updatecolor.py +14 -0
- moovio_sdk/models/components/updatecolors.py +18 -0
- moovio_sdk/models/components/updateevidence.py +23 -0
- moovio_sdk/models/components/updateissuedcard.py +44 -0
- moovio_sdk/models/components/updatepaymentlink.py +98 -0
- moovio_sdk/models/components/updaterepresentative.py +224 -0
- moovio_sdk/models/components/updateunderwriting.py +43 -0
- moovio_sdk/models/components/upsertschedule.py +26 -0
- moovio_sdk/models/components/verification.py +54 -0
- moovio_sdk/models/components/verificationstatus.py +17 -0
- moovio_sdk/models/components/verificationstatusdetail.py +23 -0
- moovio_sdk/models/components/volumebycustomertype.py +21 -0
- moovio_sdk/models/components/volumebycustomertypeerror.py +22 -0
- moovio_sdk/models/components/wallet.py +27 -0
- moovio_sdk/models/components/walletavailablebalance.py +30 -0
- moovio_sdk/models/components/wallettransaction.py +114 -0
- moovio_sdk/models/components/wallettransactionsourcetype.py +13 -0
- moovio_sdk/models/components/wallettransactionstatus.py +11 -0
- moovio_sdk/models/components/wallettransactiontype.py +32 -0
- moovio_sdk/models/errors/__init__.py +155 -0
- moovio_sdk/models/errors/addcapabilitieserror.py +23 -0
- moovio_sdk/models/errors/apierror.py +22 -0
- moovio_sdk/models/errors/assigncountrieserror.py +20 -0
- moovio_sdk/models/errors/authtokenrequesterror.py +22 -0
- moovio_sdk/models/errors/bankaccountvalidationerror.py +30 -0
- moovio_sdk/models/errors/brandvalidationerror.py +23 -0
- moovio_sdk/models/errors/cardacquiringrefund.py +44 -0
- moovio_sdk/models/errors/createaccount.py +24 -0
- moovio_sdk/models/errors/createpaymentlinkerror.py +46 -0
- moovio_sdk/models/errors/createsweepconfigerror.py +40 -0
- moovio_sdk/models/errors/feeplanagreementerror.py +22 -0
- moovio_sdk/models/errors/fileuploadvalidationerror.py +35 -0
- moovio_sdk/models/errors/filevalidationerror.py +28 -0
- moovio_sdk/models/errors/genericerror.py +19 -0
- moovio_sdk/models/errors/linkapplepayerror.py +36 -0
- moovio_sdk/models/errors/linkcarderror.py +47 -0
- moovio_sdk/models/errors/microdepositvalidationerror.py +20 -0
- moovio_sdk/models/errors/onboardinginviteerror.py +34 -0
- moovio_sdk/models/errors/patchsweepconfigerror.py +38 -0
- moovio_sdk/models/errors/receiptvalidationerror.py +40 -0
- moovio_sdk/models/errors/refundvalidationerror.py +23 -0
- moovio_sdk/models/errors/representativevalidationerror.py +68 -0
- moovio_sdk/models/errors/requestcarderror.py +42 -0
- moovio_sdk/models/errors/reversalvalidationerror.py +20 -0
- moovio_sdk/models/errors/revoketokenrequesterror.py +22 -0
- moovio_sdk/models/errors/schedulevalidationerror.py +24 -0
- moovio_sdk/models/errors/terminalapplicationerror.py +30 -0
- moovio_sdk/models/errors/transfer.py +108 -0
- moovio_sdk/models/errors/transferoptionsvalidationerror.py +24 -0
- moovio_sdk/models/errors/transfervalidationerror.py +49 -0
- moovio_sdk/models/errors/updateaccount.py +24 -0
- moovio_sdk/models/errors/updatecarderror.py +43 -0
- moovio_sdk/models/errors/updateissuedcarderror.py +32 -0
- moovio_sdk/models/errors/updatepaymentlinkerror.py +36 -0
- moovio_sdk/models/errors/updateunderwritingerror.py +70 -0
- moovio_sdk/models/internal/__init__.py +6 -0
- moovio_sdk/models/internal/globals.py +40 -0
- moovio_sdk/models/operations/__init__.py +1824 -0
- moovio_sdk/models/operations/acceptdispute.py +71 -0
- moovio_sdk/models/operations/assignaccountcountries.py +75 -0
- moovio_sdk/models/operations/cancelschedule.py +67 -0
- moovio_sdk/models/operations/completebankaccountverification.py +85 -0
- moovio_sdk/models/operations/completemicrodeposits.py +87 -0
- moovio_sdk/models/operations/createaccesstoken.py +52 -0
- moovio_sdk/models/operations/createaccount.py +52 -0
- moovio_sdk/models/operations/createapplepaysession.py +81 -0
- moovio_sdk/models/operations/createbrand.py +75 -0
- moovio_sdk/models/operations/createcancellation.py +75 -0
- moovio_sdk/models/operations/createfeeplanagreements.py +80 -0
- moovio_sdk/models/operations/createonboardinginvite.py +52 -0
- moovio_sdk/models/operations/createpaymentlink.py +78 -0
- moovio_sdk/models/operations/createreceipts.py +52 -0
- moovio_sdk/models/operations/createrepresentative.py +80 -0
- moovio_sdk/models/operations/createreversal.py +98 -0
- moovio_sdk/models/operations/createschedule.py +78 -0
- moovio_sdk/models/operations/createsweepconfig.py +78 -0
- moovio_sdk/models/operations/createterminalapplication.py +54 -0
- moovio_sdk/models/operations/createtransfer.py +125 -0
- moovio_sdk/models/operations/createtransferoptions.py +52 -0
- moovio_sdk/models/operations/deletedisputeevidencefile.py +74 -0
- moovio_sdk/models/operations/deleterepresentative.py +71 -0
- moovio_sdk/models/operations/deleteterminalapplication.py +60 -0
- moovio_sdk/models/operations/disablebankaccount.py +67 -0
- moovio_sdk/models/operations/disablecapability.py +76 -0
- moovio_sdk/models/operations/disablecard.py +67 -0
- moovio_sdk/models/operations/disablepaymentlink.py +67 -0
- moovio_sdk/models/operations/disconnectaccount.py +60 -0
- moovio_sdk/models/operations/generateendtoendkey.py +60 -0
- moovio_sdk/models/operations/getaccount.py +64 -0
- moovio_sdk/models/operations/getaccountcountries.py +64 -0
- moovio_sdk/models/operations/getadjustment.py +71 -0
- moovio_sdk/models/operations/getapplepaymerchantdomains.py +68 -0
- moovio_sdk/models/operations/getavatar.py +66 -0
- moovio_sdk/models/operations/getbankaccount.py +71 -0
- moovio_sdk/models/operations/getbankaccountverification.py +73 -0
- moovio_sdk/models/operations/getbrand.py +64 -0
- moovio_sdk/models/operations/getcancellation.py +84 -0
- moovio_sdk/models/operations/getcapability.py +82 -0
- moovio_sdk/models/operations/getcard.py +71 -0
- moovio_sdk/models/operations/getdispute.py +71 -0
- moovio_sdk/models/operations/getdisputeevidence.py +80 -0
- moovio_sdk/models/operations/getdisputeevidencedata.py +90 -0
- moovio_sdk/models/operations/getenrichmentaddress.py +178 -0
- moovio_sdk/models/operations/getenrichmentprofile.py +64 -0
- moovio_sdk/models/operations/getfiledetails.py +71 -0
- moovio_sdk/models/operations/getfullissuedcard.py +73 -0
- moovio_sdk/models/operations/getissuedcard.py +73 -0
- moovio_sdk/models/operations/getissuedcardauthorization.py +75 -0
- moovio_sdk/models/operations/getissuedcardtransaction.py +75 -0
- moovio_sdk/models/operations/getmerchantprocessingagreement.py +64 -0
- moovio_sdk/models/operations/getonboardinginvite.py +62 -0
- moovio_sdk/models/operations/getpaymentlink.py +71 -0
- moovio_sdk/models/operations/getpaymentlinkqrcode.py +84 -0
- moovio_sdk/models/operations/getpaymentmethod.py +71 -0
- moovio_sdk/models/operations/getrefund.py +84 -0
- moovio_sdk/models/operations/getrepresentative.py +75 -0
- moovio_sdk/models/operations/getscheduledoccurrence.py +92 -0
- moovio_sdk/models/operations/getschedules.py +71 -0
- moovio_sdk/models/operations/getsweep.py +78 -0
- moovio_sdk/models/operations/getsweepconfig.py +71 -0
- moovio_sdk/models/operations/getterminalapplication.py +66 -0
- moovio_sdk/models/operations/gettermsofservicetoken.py +75 -0
- moovio_sdk/models/operations/gettransfer.py +73 -0
- moovio_sdk/models/operations/getunderwriting.py +64 -0
- moovio_sdk/models/operations/getwallet.py +71 -0
- moovio_sdk/models/operations/getwallettransaction.py +80 -0
- moovio_sdk/models/operations/initiatebankaccountverification.py +89 -0
- moovio_sdk/models/operations/initiatemicrodeposits.py +67 -0
- moovio_sdk/models/operations/initiaterefund.py +131 -0
- moovio_sdk/models/operations/linkapplepaytoken.py +80 -0
- moovio_sdk/models/operations/linkbankaccount.py +96 -0
- moovio_sdk/models/operations/linkcard.py +96 -0
- moovio_sdk/models/operations/listaccounts.py +171 -0
- moovio_sdk/models/operations/listadjustments.py +78 -0
- moovio_sdk/models/operations/listbankaccounts.py +64 -0
- moovio_sdk/models/operations/listcapabilities.py +64 -0
- moovio_sdk/models/operations/listcards.py +64 -0
- moovio_sdk/models/operations/listdisputeevidence.py +73 -0
- moovio_sdk/models/operations/listdisputes.py +172 -0
- moovio_sdk/models/operations/listfeeplanagreements.py +101 -0
- moovio_sdk/models/operations/listfeeplans.py +78 -0
- moovio_sdk/models/operations/listfeesfetch.py +80 -0
- moovio_sdk/models/operations/listfiles.py +64 -0
- moovio_sdk/models/operations/listindustries.py +62 -0
- moovio_sdk/models/operations/listinstitutions.py +92 -0
- moovio_sdk/models/operations/listissuedcardauthorizationevents.py +94 -0
- moovio_sdk/models/operations/listissuedcardauthorizations.py +126 -0
- moovio_sdk/models/operations/listissuedcards.py +94 -0
- moovio_sdk/models/operations/listissuedcardtransactions.py +113 -0
- moovio_sdk/models/operations/listonboardinginvites.py +60 -0
- moovio_sdk/models/operations/listpartnerpricing.py +78 -0
- moovio_sdk/models/operations/listpartnerpricingagreements.py +101 -0
- moovio_sdk/models/operations/listpaymentlinks.py +64 -0
- moovio_sdk/models/operations/listpaymentmethods.py +98 -0
- moovio_sdk/models/operations/listreceipts.py +65 -0
- moovio_sdk/models/operations/listrefunds.py +75 -0
- moovio_sdk/models/operations/listrepresentatives.py +66 -0
- moovio_sdk/models/operations/listschedules.py +81 -0
- moovio_sdk/models/operations/listsweepconfigs.py +64 -0
- moovio_sdk/models/operations/listsweeps.py +108 -0
- moovio_sdk/models/operations/listterminalapplications.py +62 -0
- moovio_sdk/models/operations/listtransfers.py +145 -0
- moovio_sdk/models/operations/listwallets.py +64 -0
- moovio_sdk/models/operations/listwallettransactions.py +189 -0
- moovio_sdk/models/operations/ping.py +56 -0
- moovio_sdk/models/operations/registerapplepaymerchantdomains.py +80 -0
- moovio_sdk/models/operations/requestcapabilities.py +78 -0
- moovio_sdk/models/operations/requestcard.py +80 -0
- moovio_sdk/models/operations/retrievefees.py +117 -0
- moovio_sdk/models/operations/revokeaccesstoken.py +48 -0
- moovio_sdk/models/operations/revokeonboardinginvite.py +58 -0
- moovio_sdk/models/operations/submitdisputeevidence.py +71 -0
- moovio_sdk/models/operations/testendtoendtoken.py +56 -0
- moovio_sdk/models/operations/updateaccount.py +78 -0
- moovio_sdk/models/operations/updateapplepaymerchantdomains.py +78 -0
- moovio_sdk/models/operations/updatebrand.py +78 -0
- moovio_sdk/models/operations/updatecard.py +85 -0
- moovio_sdk/models/operations/updatedisputeevidence.py +92 -0
- moovio_sdk/models/operations/updateissuedcard.py +81 -0
- moovio_sdk/models/operations/updatepaymentlink.py +85 -0
- moovio_sdk/models/operations/updaterepresentative.py +89 -0
- moovio_sdk/models/operations/updateschedule.py +85 -0
- moovio_sdk/models/operations/updatesweepconfig.py +85 -0
- moovio_sdk/models/operations/updatetransfer.py +87 -0
- moovio_sdk/models/operations/uploaddisputeevidencefile.py +87 -0
- moovio_sdk/models/operations/uploaddisputeevidencetext.py +85 -0
- moovio_sdk/models/operations/uploadfile.py +80 -0
- moovio_sdk/models/operations/upsertbrand.py +75 -0
- moovio_sdk/models/operations/upsertunderwriting.py +78 -0
- moovio_sdk/onboarding.py +965 -0
- moovio_sdk/payment_links.py +1694 -0
- moovio_sdk/payment_methods.py +475 -0
- moovio_sdk/ping.py +233 -0
- moovio_sdk/py.typed +1 -0
- moovio_sdk/receipts.py +507 -0
- moovio_sdk/representatives.py +1513 -0
- moovio_sdk/scheduling.py +1565 -0
- moovio_sdk/sdk.py +242 -0
- moovio_sdk/sdkconfiguration.py +59 -0
- moovio_sdk/sweeps.py +1617 -0
- moovio_sdk/terminal_applications.py +1013 -0
- moovio_sdk/transfers.py +3040 -0
- moovio_sdk/types/__init__.py +21 -0
- moovio_sdk/types/basemodel.py +39 -0
- moovio_sdk/underwriting.py +581 -0
- moovio_sdk/utils/__init__.py +101 -0
- moovio_sdk/utils/annotations.py +55 -0
- moovio_sdk/utils/enums.py +34 -0
- moovio_sdk/utils/eventstreaming.py +238 -0
- moovio_sdk/utils/forms.py +202 -0
- moovio_sdk/utils/headers.py +136 -0
- moovio_sdk/utils/logger.py +27 -0
- moovio_sdk/utils/metadata.py +118 -0
- moovio_sdk/utils/queryparams.py +205 -0
- moovio_sdk/utils/requestbodies.py +66 -0
- moovio_sdk/utils/retries.py +217 -0
- moovio_sdk/utils/security.py +195 -0
- moovio_sdk/utils/serializers.py +215 -0
- moovio_sdk/utils/url.py +155 -0
- moovio_sdk/utils/values.py +137 -0
- moovio_sdk/wallet_transactions.py +558 -0
- moovio_sdk/wallets.py +465 -0
- moovio_sdk-0.3.8.dist-info/METADATA +1920 -0
- moovio_sdk-0.3.8.dist-info/RECORD +586 -0
- 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
|
+
)
|