o
    iǻ                    @   s:  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dlmZmZmZmZmZmZmZ d dlm Z m!Z!m"Z" e"rd dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZF d d lGmHZH d d!lImJZJ d d"lKmLZL d d#lMmNZN d d$lOmPZP d d%lQmRZR d d&lSmTZT ed'ed(ed)ed*G d+d, d,ed, ed, e	d, ed, ZUd-S ).    )CreateableAPIResource)DeletableAPIResource)ExpandableField)
ListObject)ListableAPIResource)nested_resource_class_methods)OAuth)Person)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalUnioncastoverload)LiteralUnpackTYPE_CHECKING)BankAccount)
Capability)Card)File)	LoginLink)TaxId)"AccountCreateExternalAccountParams)AccountCreateLoginLinkParams)AccountCreateParams)AccountCreatePersonParams)"AccountDeleteExternalAccountParams)AccountDeleteParams)AccountDeletePersonParams)AccountListCapabilitiesParams)!AccountListExternalAccountsParams)AccountListParams)AccountListPersonsParams)AccountModifyCapabilityParams)"AccountModifyExternalAccountParams)AccountModifyPersonParams)AccountPersonsParams)AccountRejectParams)AccountRetrieveCapabilityParams)$AccountRetrieveExternalAccountParams)AccountRetrievePersonParams
capabilityexternal_account
login_linkpersonc                
       s	  e Zd ZU dZdZeed  ed< G dd deZ	G dd deZ
G dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZee	 ed< 	 eed  ed< 	 ee
 ed< ee ed< 	 ee ed< ee ed< ee ed< 	 ee ed< 	 ee ed< 	 eed   ed!< 	 ee ed"< 	 ee ed#< 	 eeed$   ed%< 	 ee ed&< ee ed'< 	 eed(< 	 ed) ed*< 	 eeeef  ed+< 	 ed ed,< 	 ee ed-< 	 ee ed.< ee ed/< 	 ee ed0< eed1  ed2< 	 ed3ed4 d5d fd6d7Zed3ed4 d5d fd8d9Zed:ed3ed; d5d fd<d=Zeed:ed3ed; d5d fd>d?Z ed3ed; d5d fd@d?Z e!dAd3ed; d5d fdBd?Z ed:ed3ed; d5d fdCdDZ"eed:ed3ed; d5d fdEdFZ#ed3ed; d5d fdGdFZ#e!dHd3ed; d5d fdIdFZ#ed3edJ d5ed  fdKdLZ$ed3edJ d5ed  fdMdNZ%eded3edO d5ed) fdPdQZ&eeded3edO d5ed) fdRdSZ'ed3edO d5ed) fdTdSZ'e!dUd3edO d5ed) fdVdSZ'eded3edO d5ed) fdWdXZ(eeded3edO d5ed) fdYdZZ)ed3edO d5ed) fd[dZZ)e!d\d3edO d5ed) fd]dZZ)eded3ed^ d5d fd_d`Z*eeded3ed^ d5d fdadbZ+ed3ed^ d5d fdcdbZ+e!ddd3ed^ d5d fdedbZ+eded3ed^ d5d fdfdgZ,eeded3ed^ d5d fdhdiZ-ed3ed^ d5d fdjdiZ-e!dkd3ed^ d5d fdldiZ-edddndoZ.edddpdqZ/edddrdsZ0edddtduZ1edvdw Z2dxdy Z3dzd{ Z4 fd|d}Z5eded3ed~ d5ed fddZ6eded3ed~ d5ed fddZ7ededed3ed d5dfddZ8ededed3ed d5dfddZ9ededed3ed d5dfddZ:ededed3ed d5dfddZ;eded(ed3ed d5ed$ fddZ<eded(ed3ed d5ed$ fddZ=eded(ed3ed d5ed$ fddZ>eded(ed3ed d5ed$ fddZ?eded(ed3ed d5ed$ fddZ@eded(ed3ed d5ed$ fddZAeded3ed d5eed$  fddZBeded3ed d5eed$  fddZCeded3ed d5ed$ fddZDeded3ed d5ed$ fddZEeded3ed d5dfddZFeded3ed d5dfddZGededed3ed d5d)fddZHededed3ed d5d)fddZIededed3ed d5d)fddZJededed3ed d5d)fddZKededed3ed d5d)fddZLededed3ed d5d)fddZMeded3ed d5ed) fddZNeded3ed d5ed) fddZOeded3ed d5d)fddńZPeded3ed d5d)fddǄZQe	e
eeeeeeedȜ	ZR  ZSS )Accounta  
    This is an object representing a Stripe account. You can retrieve it to see
    properties on the account like its current requirements or if the account is
    enabled to make live charges or receive payouts.

    For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection)
    is `application`, which includes Custom accounts, the properties below are always
    returned.

    For accounts where [controller.requirement_collection](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection)
    is `stripe`, which includes Standard and Express accounts, some properties are only returned
    until you create an [Account Link](https://docs.stripe.com/api/account_links) or [Account Session](https://docs.stripe.com/api/account_sessions)
    to start Connect Onboarding. Learn about the [differences between accounts](https://docs.stripe.com/connect/accounts).
    accountOBJECT_NAMEc                   @   s   e Zd ZU G dd deZG dd deZG dd deZee ed< 	 ee	 ed< 	 ee
 ed	< 	 eeed
   ed< 	 ee ed< ee
 ed< 	 ee
 ed< 	 ee ed< 	 ee
 ed< 	 ee
 ed< 	 ee
 ed< 	 ee
 ed< 	 eeedZdS )zAccount.BusinessProfilec                   @   6   e Zd ZU ee ed< 	 ee ed< 	 ee ed< dS )z%Account.BusinessProfile.AnnualRevenueamountcurrencyfiscal_year_endN__name__
__module____qualname__r   int__annotations__str rC   rC   o/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_account.pyAnnualRevenuee      
 rE   c                   @   s    e Zd ZU eed< 	 eed< dS )z/Account.BusinessProfile.MonthlyEstimatedRevenuer9   r:   N)r=   r>   r?   r@   rA   rB   rC   rC   rC   rD   MonthlyEstimatedRevenues   
   
 rG   c                   @   `   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )z&Account.BusinessProfile.SupportAddresscitycountryline1line2postal_codestateNr=   r>   r?   r   rB   rA   rC   rC   rC   rD   SupportAddress}      
 rQ   annual_revenueestimated_worker_countmcc)lgbtqi_owned_businessminority_owned_businessnone_of_these_applyprefer_not_to_answerwomen_owned_business#minority_owned_business_designationmonthly_estimated_revenuenameproduct_descriptionsupport_addresssupport_emailsupport_phonesupport_urlurl)rS   r\   r_   N)r=   r>   r?   r
   rE   rG   rQ   r   rA   r@   rB   r   r   _inner_class_typesrC   rC   rC   rD   BusinessProfiled   sJ   
 

re   c                   @   sD  e Zd ZU eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed	< 	 eed  ed
< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed< 	 eed  ed < 	 eed  ed!< 	 eed  ed"< 	 eed  ed#< 	 eed  ed$< 	 eed  ed%< 	 eed  ed&< 	 eed  ed'< 	 eed  ed(< 	 eed  ed)< 	 eed  ed*< 	 eed  ed+< 	 eed  ed,< 	 eed  ed-< 	 eed  ed.< 	 eed  ed/< 	 eed  ed0< 	 eed  ed1< 	 eed  ed2< 	 eed  ed3< 	 eed  ed4< 	 eed  ed5< 	 eed  ed6< 	 eed  ed7< 	 eed  ed8< 	 eed  ed9< 	 eed  ed:< 	 eed  ed;< 	 eed  ed<< 	 eed  ed=< d>S )?zAccount.Capabilities)activeinactivependingacss_debit_paymentsaffirm_paymentsafterpay_clearpay_paymentsalma_paymentsamazon_pay_paymentsau_becs_debit_paymentsbacs_debit_paymentsbancontact_paymentsbank_transfer_paymentsbillie_paymentsblik_paymentsboleto_paymentscard_issuingcard_paymentscartes_bancaires_paymentscashapp_paymentscrypto_paymentseps_paymentsfpx_paymentsgb_bank_transfer_paymentsgiropay_paymentsgrabpay_paymentsideal_paymentsindia_international_paymentsjcb_paymentsjp_bank_transfer_paymentskakao_pay_paymentsklarna_paymentskonbini_paymentskr_card_paymentslegacy_paymentslink_paymentsmb_way_paymentsmobilepay_paymentsmultibanco_paymentsmx_bank_transfer_paymentsnaver_pay_payments#nz_bank_account_becs_debit_paymentsoxxo_paymentsp24_paymentspay_by_bank_paymentspayco_paymentspaynow_paymentspix_paymentspromptpay_paymentsrevolut_pay_paymentssamsung_pay_paymentssatispay_paymentssepa_bank_transfer_paymentssepa_debit_paymentssofort_paymentsswish_paymentstax_reporting_us_1099_ktax_reporting_us_1099_misc	transferstreasurytwint_paymentsus_bank_account_ach_paymentsus_bank_transfer_paymentszip_paymentsN)r=   r>   r?   r   r   rA   rC   rC   rC   rD   Capabilities   s6  
 r   c                	   @   s  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZee ed< ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 eed  ed< 	 ee ed < 	 ee	 ed!< ee
 ed"< 	 eed#  ed$< 	 ee ed%< 	 ee ed&< 	 ee ed'< 	 ee ed(< 	 eeeeee	e
ed)Zd*S )+zAccount.Companyc                   @   rI   )zAccount.Company.AddressrJ   rK   rL   rM   rN   rO   NrP   rC   rC   rC   rD   Address  rR   r   c                   @   n   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )	zAccount.Company.AddressKanarJ   rK   rL   rM   rN   rO   townNrP   rC   rC   rC   rD   AddressKana     
 r   c                   @   r   )	zAccount.Company.AddressKanjirJ   rK   rL   rM   rN   rO   r   NrP   rC   rC   rC   rD   AddressKanji!  r   r   c                   @   r8   )z'Account.Company.DirectorshipDeclarationdateip
user_agentNr<   rC   rC   rC   rD   DirectorshipDeclaration?  rF   r   c                   @   r8   )z$Account.Company.OwnershipDeclarationr   r   r   Nr<   rC   rC   rC   rD   OwnershipDeclarationM  rF   r   c                   @   s6   e Zd ZU ee ed< 	 ee ed< 	 ee ed< dS )z Account.Company.RegistrationDatedaymonthyearN)r=   r>   r?   r   r@   rA   rC   rC   rC   rD   RegistrationDate[  rF   r   c                   @   r8   )z)Account.Company.RepresentativeDeclarationr   r   r   Nr<   rC   rC   rC   rD   RepresentativeDeclarationi  rF   r   c                   @   s.   e Zd ZU G dd deZeed< deiZdS )zAccount.Company.Verificationc                   @   sL   e Zd ZU eed  ed< 	 ee ed< 	 ee ed< 	 eed  ed< dS )z%Account.Company.Verification.Documentr   backdetailsdetails_codefrontNr=   r>   r?   r   r   rA   rB   rC   rC   rC   rD   Documentx  s   
 r   documentN)r=   r>   r?   r
   r   rA   rd   rC   rC   rC   rD   Verificationw  s   
 r   addressaddress_kanaaddress_kanjidirectors_provideddirectorship_declarationexecutives_providedexport_license_idexport_purpose_coder]   	name_kana
name_kanjiowners_providedownership_declaration),qualified_entity_exceeds_ownership_threshold"qualifies_as_financial_institutionownership_exemption_reasonphoneregistration_daterepresentative_declaration)free_zone_establishmentfree_zone_llcgovernment_instrumentalitygovernmental_unitincorporated_non_profitincorporated_partnershiplimited_liability_partnershipllcmulti_member_llcprivate_companyprivate_corporationprivate_partnershippublic_companypublic_corporationpublic_partnershipregistered_charitysingle_member_llcsole_establishmentsole_proprietorship%tax_exempt_government_instrumentalityunincorporated_associationunincorporated_non_profitunincorporated_partnership	structuretax_id_providedtax_id_registrarvat_id_providedverification)r   r   r   r   r   r   r   r   N)r=   r>   r?   r
   r   r   r   r   r   r   r   r   r   rA   boolrB   r   rd   rC   rC   rC   rD   Company  s   
 
r   c                   @   s   e Zd ZU G dd deZG dd deZG dd deZee ed< ee	 ed< 	 ee ed	< ee
d
  ed< 	 ee ed< e
d ed< 	 eeedZdS )zAccount.Controllerc                   @      e Zd ZU ed ed< dS )zAccount.Controller.Fees)r6   applicationapplication_customapplication_expresspayerNr=   r>   r?   r   rA   rC   rC   rC   rD   Fees
  s
   
 r   c                   @   r   )zAccount.Controller.Lossesr   stripepaymentsNr   rC   rC   rC   rD   Losses     
 r   c                   @   r   )z"Account.Controller.StripeDashboard)expressfullnonetypeNr   rC   rC   rC   rD   StripeDashboard  r   r   feesis_controllerlossesr   requirement_collectionstripe_dashboard)r6   r   r   )r   r  r  N)r=   r>   r?   r
   r   r   r   r   rA   r   r   rd   rC   rC   rC   rD   
Controller	  s"   
 
r  c                   @      e Zd ZU G dd deZG dd deZeee  ed< 	 ee	 ed< 	 eee
  ed< 	 eed  ed	< 	 eee  ed
< 	 eee
  ed< 	 eee
  ed< 	 eee
  ed< 	 eedZdS )zAccount.FutureRequirementsc                   @   (   e Zd ZU ee ed< 	 ee ed< dS )z&Account.FutureRequirements.Alternativealternative_fields_dueoriginal_fields_dueNr=   r>   r?   r   rB   rA   rC   rC   rC   rD   Alternative7  
   
 r
  c                   @   .   e Zd ZU ed ed< 	 eed< 	 eed< dS )z Account.FutureRequirements.Erroraexternal_requestinformation_missing&invalid_address_city_state_postal_code$invalid_address_highway_contract_boxinvalid_address_private_mailboxinvalid_business_profile_name(invalid_business_profile_name_denylistedinvalid_company_name_denylistedinvalid_dob_age_over_maximuminvalid_dob_age_under_18invalid_dob_age_under_minimum"invalid_product_description_length%invalid_product_description_url_matchinvalid_representative_countryinvalid_signator.invalid_statement_descriptor_business_mismatch'invalid_statement_descriptor_denylisted#invalid_statement_descriptor_length.invalid_statement_descriptor_prefix_denylisted,invalid_statement_descriptor_prefix_mismatchinvalid_street_addressinvalid_tax_idinvalid_tax_id_formatinvalid_tos_acceptanceinvalid_url_denylistedinvalid_url_formatinvalid_url_length!invalid_url_web_presence_detected1invalid_url_website_business_information_mismatchinvalid_url_website_empty invalid_url_website_inaccessible+invalid_url_website_inaccessible_geoblocked3invalid_url_website_inaccessible_password_protectedinvalid_url_website_incomplete2invalid_url_website_incomplete_cancellation_policy7invalid_url_website_incomplete_customer_service_details1invalid_url_website_incomplete_legal_restrictions,invalid_url_website_incomplete_refund_policy,invalid_url_website_incomplete_return_policy3invalid_url_website_incomplete_terms_and_conditions1invalid_url_website_incomplete_under_constructioninvalid_url_website_otherinvalid_value_otherunsupported_business_typeverification_directors_mismatch&verification_document_address_mismatch%verification_document_address_missingverification_document_corrupt+verification_document_country_not_supported(verification_document_directors_mismatch"verification_document_dob_mismatch$verification_document_duplicate_typeverification_document_expired!verification_document_failed_copy&verification_document_failed_greyscale"verification_document_failed_other&verification_document_failed_test_mode verification_document_fraudulent(verification_document_id_number_mismatch'verification_document_id_number_missing verification_document_incompleteverification_document_invalid2verification_document_issue_or_expiry_date_missing!verification_document_manipulated"verification_document_missing_back#verification_document_missing_front#verification_document_name_mismatch"verification_document_name_missing*verification_document_nationality_mismatch"verification_document_not_readable verification_document_not_signed"verification_document_not_uploaded$verification_document_photo_mismatchverification_document_too_large(verification_document_type_not_supported!verification_extraneous_directors!verification_failed_address_match(verification_failed_authorizer_authority'verification_failed_business_iec_number"verification_failed_document_match#verification_failed_id_number_match"verification_failed_keyed_identityverification_failed_keyed_matchverification_failed_name_matchverification_failed_other,verification_failed_representative_authority'verification_failed_residential_address verification_failed_tax_id_match%verification_failed_tax_id_not_issued,verification_legal_entity_structure_mismatchverification_missing_directorsverification_missing_executivesverification_missing_owners0verification_rejected_ownership_exemption_reason;verification_requires_additional_memorandum_of_associations6verification_requires_additional_proof_of_registrationverification_supportabilitycodereasonrequirementNr=   r>   r?   r   rA   rB   rC   rC   rC   rD   ErrorA     
 crs  alternativescurrent_deadlinecurrently_duez&action_required.requested_capabilitieslistedotherplatform_pausedzrejected.fraudz rejected.incomplete_verificationzrejected.listedzrejected.otherzrejected.platform_fraudzrejected.platform_otherz"rejected.platform_terms_of_servicezrejected.terms_of_servicezrequirements.past_duez!requirements.pending_verificationunder_reviewdisabled_reasonerrorseventually_duepast_duepending_verificationru  r~  Nr=   r>   r?   r
   r
  rs  r   r   rA   r@   rB   r   rd   rC   rC   rC   rD   FutureRequirements6  0   
 
pr  c                   @      e Zd ZU ee ed< dS )zAccount.Groupspayments_pricingNrP   rC   rC   rC   rD   Groups  r   r  c                   @   r  )zAccount.Requirementsc                   @   r  )z Account.Requirements.Alternativer  r  Nr	  rC   rC   rC   rD   r
    r  r
  c                   @   r  )zAccount.Requirements.Errorr  ro  rp  rq  Nrr  rC   rC   rC   rD   rs    rt  rs  ru  rv  rw  rx  r}  r~  r  r  r  r  Nr  rC   rC   rC   rD   Requirements  r  r  c                   @   s0  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZee ed< eed< ee ed< eed< eed< ee	 ed< e
ed< ee ed< ee ed< ee ed< eeeeee	e
eeed
Zd S )!zAccount.Settingsc                   @   r  )z"Account.Settings.BacsDebitPaymentsdisplay_nameservice_user_numberNrP   rC   rC   rC   rD   BacsDebitPayments  r  r  c                   @   sL   e Zd ZU eed  ed< 	 eed  ed< 	 ee ed< 	 ee ed< dS )zAccount.Settings.Brandingr   iconlogoprimary_colorsecondary_colorNr   rC   rC   rC   rD   Branding  s   
 r  c                   @   2   e Zd ZU G dd deZee ed< deiZdS )zAccount.Settings.CardIssuingc                   @   r8   )z*Account.Settings.CardIssuing.TosAcceptancer   r   r   Nr<   rC   rC   rC   rD   TosAcceptance  rF   r  tos_acceptanceNr=   r>   r?   r
   r  r   rA   rd   rC   rC   rC   rD   CardIssuing     
 r  c                   @   s\   e Zd ZU G dd deZee ed< ee ed< 	 ee ed< 	 ee ed< 	 deiZdS )zAccount.Settings.CardPaymentsc                   @   s    e Zd ZU eed< 	 eed< dS )z'Account.Settings.CardPayments.DeclineOnavs_failurecvc_failureN)r=   r>   r?   r   rA   rC   rC   rC   rD   	DeclineOn  rH   r  
decline_onstatement_descriptor_prefix statement_descriptor_prefix_kana!statement_descriptor_prefix_kanjiN)	r=   r>   r?   r
   r  r   rA   rB   rd   rC   rC   rC   rD   CardPayments  s   
 
r  c                   @   r  )zAccount.Settings.Dashboardr  timezoneNrP   rC   rC   rC   rD   	Dashboard  r  r  c                   @   s4   e Zd ZU eeed   ed< 	 eed  ed< dS )zAccount.Settings.Invoicesr   default_account_tax_ids)alwaysneverofferhosted_payment_method_saveN)r=   r>   r?   r   r   r   rA   r   rC   rC   rC   rD   Invoices  s   
 r  c                   @   sR   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zAccount.Settings.Paymentsstatement_descriptorstatement_descriptor_kanastatement_descriptor_kanjir  r  NrP   rC   rC   rC   rD   Payments  s   
 r  c                   @   sF   e Zd ZU G dd deZeed< 	 eed< ee ed< 	 deiZ	dS )zAccount.Settings.Payoutsc                   @   sd   e Zd ZU eed< 	 eed< 	 ee ed< 	 eee  ed< 	 ee ed< 	 eeed   ed< dS )	z!Account.Settings.Payouts.Schedule
delay_daysintervalmonthly_anchormonthly_payout_daysweekly_anchor)fridaymondaythursdaytuesday	wednesdayweekly_payout_daysN)	r=   r>   r?   r@   rA   rB   r   r   r   rC   rC   rC   rD   Schedule  s&   
 r  debit_negative_balancesscheduler  N)
r=   r>   r?   r
   r  r   rA   r   rB   rd   rC   rC   rC   rD   Payouts  s   
 $r  c                   @   r  )z"Account.Settings.SepaDebitPaymentscreditor_idNrP   rC   rC   rC   rD   SepaDebitPayments?  r   r  c                   @   r  )zAccount.Settings.Treasuryc                   @   r8   )z'Account.Settings.Treasury.TosAcceptancer   r   r   Nr<   rC   rC   rC   rD   r  F  rF   r  r  Nr  rC   rC   rC   rD   TreasuryE  r  r  ro   brandingru   rv   	dashboardinvoicesr   payoutsr   r   )
ro   r  ru   rv   r  r  r   r  r   r   N)r=   r>   r?   r
   r  r  r  r  r  r  r  r  r  r  r   rA   rd   rC   rC   rC   rD   Settings  s@   
 

0
r  c                   @   sD   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zAccount.TosAcceptancer   r   service_agreementr   Nr<   rC   rC   rC   rD   r  n  s   
 r  business_profile)companygovernment_entity
individual
non_profitbusiness_typecapabilitiescharges_enabledr  
controllerrK   createddefault_currencyTdeleteddetails_submittedemailr   r   external_accountsfuture_requirementsgroupsidr	   r  metadataobjectpayouts_enabledrequirementssettingsr  )customr   r   standardr   paramsr    returnc                 K   s   t d| jd|  |dS )W  
        With [Connect](https://docs.stripe.com/docs/connect), you can create Stripe accounts for your users.
        To do this, you'll first need to [register your platform](https://dashboard.stripe.com/account/applications/settings).

        If you've already collected information for your connected accounts, you [can prefill that information](https://docs.stripe.com/docs/connect/best-practices#onboarding) when
        creating the account. Connect Onboarding won't ask for the prefilled information during account onboarding.
        You can prefill any information on the account.
        r5   postr  )r   _static_request	class_urlclsr  rC   rC   rD   create  s   
zAccount.createc                    s"   t d| jd|  |dI dH S )r  r5   r  r  N)r   _static_request_asyncr  r  rC   rC   rD   create_async  s   
zAccount.create_asyncsidr#   c                 K   s*   d|   t|f }td| jd||dS )u  
        With [Connect](https://docs.stripe.com/connect), you can delete accounts you manage.

        Test-mode accounts can be deleted at any time.

        Live-mode accounts that have access to the standard dashboard and Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. All other Live-mode accounts, can be deleted when all [balances](https://docs.stripe.com/api/balance/balance_object) are zero.

        If you want to delete your own account, use the [account information tab in your account settings](https://dashboard.stripe.com/settings/account) instead.
        %s/%sr5   deleter  )r  r   r   r  r  r  r  rc   rC   rC   rD   _cls_delete  s   zAccount._cls_deletec                 K      dS r  NrC   r  r  rC   rC   rD   r    s   zAccount.deletec                 K   r  r  rC   selfr  rC   rC   rD   r  "  s   r  c                 K   s   | j d|  |dS )r  r  r  )_request_and_refreshinstance_urlr  rC   rC   rD   r  /  s
   c                    s2   d|   t|f }td| jd||dI dH S )r  r  r5   r  r  N)r  r   r   r  r  rC   rC   rD   _cls_delete_asyncB  s   
zAccount._cls_delete_asyncc                       dS r  rC   r  rC   rC   rD   delete_asyncY  s   zAccount.delete_asyncc                    r  r  rC   r  rC   rC   rD   r  i  s   r  c                    s   | j d|  |dI dH S )r  r  r  N)_request_and_refresh_asyncr  r  rC   rC   rD   r  x  s   r'   c                 K   s4   | j d|  |d}t|tstdt|j |S )
        Returns a list of accounts connected to your platform via [Connect](https://docs.stripe.com/docs/connect). If you're not a platform, the list is empty.
        getr  %Expected list object from API, got %s)r  r  
isinstancer   	TypeErrorr   r=   r  r  resultrC   rC   rD   list  s   
zAccount.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r  r  r  Nr  )r  r  r  r   r  r   r=   r   rC   rC   rD   
list_async  s   
zAccount.list_asyncr,   c                 K   &   t td | jddjt|d|dS 
        Returns a list of people associated with the account's legal entity. The people are returned sorted by creation date, with the most recent people appearing first.
        r	   r  /v1/accounts/{account}/personsr6   r  r   r   r  formatr   r  r6   r  rC   rC   rD   _cls_persons     zAccount._cls_personsc                 K   r  r  NrC   r6   r  rC   rC   rD   persons  s   zAccount.personsc                 K   r  r  rC   r  rC   rC   rD   r       r  c              	   K   s,   t td | jddjt| dd|dS )r  r	   r  r  r  r  r  )r   r   _requestr
  r   r  r  rC   rC   rD   r    s   c                    .   t td | jddjt|d|dI dH S r  r	   r  r  r  r  Nr   r   r  r
  r   r  rC   rC   rD   _cls_persons_async     
zAccount._cls_persons_asyncc                    r  r  rC   r  rC   rC   rD   persons_async  s   zAccount.persons_asyncc                    r  r  rC   r  rC   rC   rD   r    s   r  c              	      s4   t td | jddjt| dd|dI dH S )r  r	   r  r  r  r  r  N)r   r   _request_asyncr
  r   r  r  rC   rC   rD   r    s   
r-   c                 K   "   t d| jddjt|d|dS )  
        With [Connect](https://docs.stripe.com/connect), you can reject accounts that you have flagged as suspicious.

        Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.
        r5   r  /v1/accounts/{account}/rejectr  r  r   r  r
  r   r  rC   rC   rD   _cls_reject!     	zAccount._cls_rejectc                 K   r  r  NrC   r  rC   rC   rD   reject5  s   
zAccount.rejectc                 K   r  r   rC   r  rC   rC   rD   r!  A  r  r  c              	   K   s(   t d| jddjt| dd|dS )r  r5   r  r  r  r  r  )r   r  r
  r   r  r  rC   rC   rD   r!  J  s   	c                    *   t d| jddjt|d|dI dH S )r  r5   r  r  r  r  Nr   r  r
  r   r  rC   rC   rD   _cls_reject_async^     	
zAccount._cls_reject_asyncc                    r  r   rC   r  rC   rC   rD   reject_asyncr  s   
zAccount.reject_asyncc                    r  r   rC   r  rC   rC   rD   r&  ~  s   	r$  c              	      s0   t d| jddjt| dd|dI dH S )r  r5   r  r  r  r  r  N)r   r  r
  r   r  r  rC   rC   rD   r&    s   	
Nc                 K   s   | |fi |}|   |S N)refreshr  r  r  instancerC   rC   rD   retrieve  s   zAccount.retrievec                    s$   | |fi |}|  I d H  |S r'  )refresh_asyncr)  rC   rC   rD   retrieve_async  s   zAccount.retrieve_asyncc                 K   s    |  |}td| jd||dS Nr5   r  r  )_build_instance_urlr   r  r  r  r  rc   rC   rC   rD   modify  s   
zAccount.modifyc                    s(   |  |}td| jd||dI d H S r.  )r/  r   r  r0  rC   rC   rD   modify_async  s   
zAccount.modify_asyncc                 C   s$   |sdS |   }t|}d||f S )Nz/v1/accountr  )r  r   )r  r  baseextnrC   rC   rD   r/    s
   zAccount._build_instance_urlc                 C   s   |  | dS )Nr  )r/  r  )r  rC   rC   rD   r    s   zAccount.instance_urlc                 K   s   | j |d< tjdi |S )Nstripe_user_idrC   )r  r   deauthorizer  rC   rC   rD   r6    s   
zAccount.deauthorizec                    sh   t t| |}|p| jpi }t|  D ]\}}|dkr1t|tr1||vr1|||d ||< q|S )Nr  )	superr5   	serialize	_previousiteritemsr  r	   r  )r  previousr  kv	__class__rC   rD   r8    s   zAccount.serializer%   r   c                 K   r  )
        Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.
        r   r  #/v1/accounts/{account}/capabilitiesr  r  r	  r  rC   rC   rD   list_capabilities  r  zAccount.list_capabilitiesc                    r  )rA  r   r  rB  r  r  Nr  r  rC   rC   rD   list_capabilities_async  r  zAccount.list_capabilities_asyncr1   r.   c                 K   (   t d| jddjt|t|d|dS )O
        Retrieves information about the specified Account Capability.
        r   r  0/v1/accounts/{account}/capabilities/{capability}r6   r1   r  r  r  r6   r1   r  rC   rC   rD   retrieve_capability     
zAccount.retrieve_capabilityc                    0   t d| jddjt|t|d|dI dH S )rF  r   r  rG  rH  r  Nr#  rI  rC   rC   rD   retrieve_capability_async	     

z!Account.retrieve_capability_asyncr)   c                 K   rE  )}
        Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.
        r   r  rG  rH  r  r  rI  rC   rC   rD   modify_capability  rK  zAccount.modify_capabilityc                    rL  )rO  r   r  rG  rH  r  Nr#  rI  rC   rC   rD   modify_capability_async5  rN  zAccount.modify_capability_asyncr"   c                 K   ,   t td | jddjt|t|d|dS )J
        Delete a specified external account for a given account.
        r  r  -/v1/accounts/{account}/external_accounts/{id}r6   r  r  r   r   r  r
  r   r  r6   r  r  rC   rC   rD   delete_external_accountK     
zAccount.delete_external_accountc                    4   t td | jddjt|t|d|dI dH S )rS  r  r  rT  rU  r  Nr   r   r  r
  r   rW  rC   rC   rD   delete_external_account_async`     

z%Account.delete_external_account_asyncr/   c                 K   rR  )L
        Retrieve a specified external account for a given account.
        r  r  rT  rU  r  rV  rW  rC   rC   rD   retrieve_external_accountu  rY  z!Account.retrieve_external_accountc                    rZ  )r^  r  r  rT  rU  r  Nr[  rW  rC   rC   rD   retrieve_external_account_async  r]  z'Account.retrieve_external_account_asyncr*   c                 K   rR  )  
        Updates the metadata, account holder name, account holder type of a bank account belonging to
        a connected account and optionally sets it as the default for its currency. Other bank account
        details are not editable by design.

        You can only update bank accounts when [account.controller.requirement_collection is application, which includes <a href="/connect/custom-accounts">Custom accounts](https://docs.stripe.com/api/accounts/object#account_object-controller-requirement_collection).

        You can re-enable a disabled bank account by performing an update call without providing any
        arguments or changes.
        r  r  rT  rU  r  rV  rW  rC   rC   rD   modify_external_account  s   zAccount.modify_external_accountc                    rZ  )ra  r  r  rT  rU  r  Nr[  rW  rC   rC   rD   modify_external_account_async  s   
z%Account.modify_external_account_asyncr&   c                 K   s*   t ttd  | jddjt|d|dS )8
        List external accounts for an account.
        r  r  (/v1/accounts/{account}/external_accountsr  r  )r   r   r   r  r
  r   r  rC   rC   rD   list_external_accounts  s   	
zAccount.list_external_accountsc                    s2   t ttd  | jddjt|d|dI dH S )rd  r  r  re  r  r  N)r   r   r   r  r
  r   r  rC   rC   rD   list_external_accounts_async  s   	

z$Account.list_external_accounts_asyncr   c                 K   r  )A
        Create an external account for a given account.
        r  r  re  r  r  rV  r  rC   rC   rD   create_external_account  s   	zAccount.create_external_accountc                    r  )rh  r  r  re  r  r  Nr[  r  rC   rC   rD   create_external_account_async	  s   	
z%Account.create_external_account_asyncr   r   c                 K   r  )  
        Creates a login link for a connected account to access the Express Dashboard.

        You can only create login links for accounts that use the [Express Dashboard](https://docs.stripe.com/connect/express-dashboard) and are connected to your platform.
        r   r  "/v1/accounts/{account}/login_linksr  r  r  r  rC   rC   rD   create_login_link'	  r  zAccount.create_login_linkc                    r"  )rk  r   r  rl  r  r  Nr#  r  rC   rC   rD   create_login_link_async;	  r%  zAccount.create_login_link_asyncr4   r$   c                 K   rE  )A  
        Deletes an existing person's relationship to the account's legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.
        r	   r  '/v1/accounts/{account}/persons/{person}r6   r4   r  r  r  r6   r4   r  rC   rC   rD   delete_personO	     
zAccount.delete_personc                    rL  )ro  r	   r  rp  rq  r  Nr#  rr  rC   rC   rD   delete_person_asyncd	     

zAccount.delete_person_asyncr0   c                 K   rE  )/
        Retrieves an existing person.
        r	   r  rp  rq  r  r  rr  rC   rC   rD   retrieve_persony	  rt  zAccount.retrieve_personc                    rL  )rw  r	   r  rp  rq  r  Nr#  rr  rC   rC   rD   retrieve_person_async	  rv  zAccount.retrieve_person_asyncr+   c                 K   rE  )-
        Updates an existing person.
        r	   r  rp  rq  r  r  rr  rC   rC   rD   modify_person	  rt  zAccount.modify_personc                    rL  )rz  r	   r  rp  rq  r  Nr#  rr  rC   rC   rD   modify_person_async	  rv  zAccount.modify_person_asyncr(   c                 K   r  r  r	  r  rC   rC   rD   list_persons	  r  zAccount.list_personsc                    r  r  r  r  rC   rC   rD   list_persons_async	  r  zAccount.list_persons_asyncr!   c                 K   r  )'
        Creates a new person.
        r	   r  r  r  r  r  r  rC   rC   rD   create_person	  s   zAccount.create_personc                    r"  )r  r	   r  r  r  r  Nr#  r  rC   rC   rD   create_person_async
  s   
zAccount.create_person_async)	r  r  r  r  r  r  r  r  r  r'  )r  r5   )Tr=   r>   r?   __doc__r7   r   r   rA   r
   re   r   r   r  r  r  r  r  r  r   r   rB   r@   r   r   r   classmethodr   r  r  r  r   staticmethodr  r   r  r  r  r  r  r  r  r  r  r!  r$  r&  r+  r-  r1  r2  r/  r  r6  r8  rC  rD  rJ  rM  rP  rQ  rX  r\  r_  r`  rb  rc  rf  rg  ri  rj  rm  rn  rs  ru  rx  ry  r{  r|  r}  r~  r  r  rd   __classcell__rC   rC   r?  rD   r5   I   s  
 
p    #- 0 0 U






r5   N)Vstripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   %stripe._nested_resource_class_methodsr   stripe._oauthr   stripe._personr	   stripe._stripe_objectr
   stripe._updateable_api_resourcer   stripe._utilr   r   typingr   r   r   r   r   r   r   typing_extensionsr   r   r   stripe._bank_accountr   stripe._capabilityr   stripe._cardr   stripe._filer   stripe._login_linkr   stripe._tax_idr   5stripe.params._account_create_external_account_paramsr   /stripe.params._account_create_login_link_paramsr   $stripe.params._account_create_paramsr    +stripe.params._account_create_person_paramsr!   5stripe.params._account_delete_external_account_paramsr"   $stripe.params._account_delete_paramsr#   +stripe.params._account_delete_person_paramsr$   /stripe.params._account_list_capabilities_paramsr%   4stripe.params._account_list_external_accounts_paramsr&   "stripe.params._account_list_paramsr'   *stripe.params._account_list_persons_paramsr(   /stripe.params._account_modify_capability_paramsr)   5stripe.params._account_modify_external_account_paramsr*   +stripe.params._account_modify_person_paramsr+   %stripe.params._account_persons_paramsr,   $stripe.params._account_reject_paramsr-   1stripe.params._account_retrieve_capability_paramsr.   7stripe.params._account_retrieve_external_account_paramsr/   -stripe.params._account_retrieve_person_paramsr0   r5   rC   rC   rC   rD   <module>   sb   $
