
    Chha                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SKJrJrJrJrJrJrJr  S SKJrJrJ r   \ (       a  S SK!J"r"   " S S\S   \S   \5      r#g)    )Account)Customer)DeletableAPIResource)InvalidRequestError)ExpandableField)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)VerifyMixin)ClassVarDictListOptionalUnioncastoverload)LiteralUnpackTYPE_CHECKING)Cardc            	          \ rS rSr% SrSr\\S      \S'    " S S\	5      r
 " S S\	5      r " S	 S
\5      r\\S      \S'    \\   \S'    \\   \S'    \\   \S'    \\\S         \S'    \\   \S'    \\S'    \\S'    \\S      \S'    \\   \S'    \\S      \S'    \\   \S'    \\
   \S'    \\S'    \\S'    \\\\4      \S'    \S   \S'    \\   \S '    \\   \S!'    \\S"'    \S#\S$\S%   S&\S'   4S( j5       r\\S#\S$\S%   S&\S'   4S) j5       5       r\S$\S%   S&\S'   4S* j5       r\" S+5      S$\S%   S&\S'   4S, j5       r\S#\S$\S%   S&\S'   4S- j5       r\\S#\S$\S%   S&\S'   4S. j5       5       r\S$\S%   S&\S'   4S/ j5       r\" S05      S$\S%   S&\S'   4S1 j5       rS2 r\S3 5       r\S4 5       r \
\S5.r!S6r"g7)8BankAccount   a  
These bank accounts are payment methods on `Customer` objects.

On the other hand [External Accounts](https://docs.stripe.com/api#external_accounts) are transfer
destinations on `Account` objects for connected accounts.
They can be bank accounts or debit cards as well, and are documented in the links above.

Related guide: [Bank debits and transfers](https://docs.stripe.com/payments/bank-debits-transfers)
bank_accountOBJECT_NAMEc                       \ rS rSr%  " S S\5      r\\\      \	S'    \\\      \	S'    \\\      \	S'    \\\      \	S'    S\0r
Srg	)
BankAccount.FutureRequirements%   c                   >    \ rS rSr% \S   \S'    \\S'    \\S'   Srg)$BankAccount.FutureRequirements.Error&   _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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requirement N__name__
__module____qualname____firstlineno__r   __annotations__str__static_attributes__r       W/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/_bank_account.pyErrorr"   &   6    ^/` `B K r   r   currently_dueerrorspast_duepending_verificationr   Nr   r   r   r   r	   r   r   r   r   r   _inner_class_typesr   r   r   r   FutureRequirementsr   %   v    l	L l	\  S	**	 e%%	 49%%	 'tCy11	 '.r   r   c                       \ rS rSr%  " S S\5      r\\\      \	S'    \\\      \	S'    \\\      \	S'    \\\      \	S'    S\0r
Srg	)
BankAccount.Requirements   c                   >    \ rS rSr% \S   \S'    \\S'    \\S'   Srg)BankAccount.Requirements.Error   r$   r   r   r   r   Nr   r   r   r   r   r      r   r   r   r   r   r   r   r   Nr   r   r   r   Requirementsr      r   r   r   c                       \ rS rSrSrg)BankAccount.DeleteParamsi'  r   N)r   r   r   r   r   r   r   r   DeleteParamsr   '  s    r   r   r   accountaccount_holder_nameaccount_holder_typeaccount_type)instantstandardavailable_payout_methods	bank_namecountrycurrencyr   customerdefault_for_currencyTdeletedfingerprintfuture_requirementsidlast4metadataobjectrequirementsrouting_numberstatussidparamsr   returnr   r   c           	          U R                  5       < S[        U5      < 3n[        [        S   U R	                  SUUS95      $ ):
Delete a specified external account for a given account.
/r   deleter   )	class_urlr   r   r   _static_requestclsr   r   urls       r   _cls_deleteBankAccount._cls_delete}  sK     +c*:;'(   
 	
r   c                     gr   Nr   r   r   s     r   r   BankAccount.delete  s     	r   c                     gr   r   selfr   s     r   r   r     s     	r   r   c                 @    U R                  SU R                  5       US9$ )r   r   r   )_request_and_refreshinstance_urlr   s     r   r   r     s.     (( ) 
 	
r   c           	         #    U R                  5       < S[        U5      < 3n[        [        S   U R	                  SUUS9I Sh  vN 5      $  N7f)r   r   r   r   r   N)r   r   r   r   _static_request_asyncr   s       r   _cls_delete_asyncBankAccount._cls_delete_async  sX      +c*:;'(++ ,  
 	
s   AAA
	Ac                    #    g7fr   r   r   s     r   delete_asyncBankAccount.delete_async  s
      	   c                    #    g7fr   r   r   s     r   r   r     s
      	r   r   c                 \   #    U R                  SU R                  5       US9I Sh  vN $  N7f)r   r   r   N)_request_and_refresh_asyncr   r   s     r   r   r     s;      44 5 
 
 	
 
s   #,*,c                    U R                   n[        U5      n[        U S5      (       aU  U R                  n[        R
                  " 5       nUc   e[        U[        5      (       a  UR                   n[        U5      nSnOu[        U S5      (       aU  U R                  n[        R
                  " 5       nUc   e[        U[        5      (       a  UR                   n[        U5      nSnO[        SU-  S5      eU< SU< SU< SU< 3$ )Nr   sourcesr   external_accountszWCould not determine whether bank_account_id %s is attached to a customer or an account.r   r   )
r   r   hasattrr   r   r   
isinstancer   r   r   )r   tokenextnr   base
owner_extn
class_baser   s           r   r   BankAccount.instance_url  s    5!4$$}}H%%'D'''(H--#;;$X.J"JT9%%llG$$&D&&&'7++!**$W-J,J &8:?@  !%j*dCCr   c                     [        S5      e)Na`  Can't modify a bank account without a customer or account ID. Use stripe.Customer.modify_source('customer_id', 'bank_account_id', ...) (see https://stripe.com/docs/api/customer_bank_accounts/update) or stripe.Account.modify_external_account('customer_id', 'bank_account_id', ...) (see https://stripe.com/docs/api/external_account_bank_accounts/update).NotImplementedError)r   r   r   s      r   modifyBankAccount.modify  s    !W
 	
r   c                     [        S5      e)Na_  Can't retrieve a bank account without a customer or account ID. Use stripe.customer.retrieve_source('customer_id', 'bank_account_id') (see https://stripe.com/docs/api/customer_bank_accounts/retrieve) or stripe.Account.retrieve_external_account('account_id', 'bank_account_id') (see https://stripe.com/docs/api/external_account_bank_accounts/retrieve).r   )r   r   r   s      r   retrieveBankAccount.retrieve	  s    !Y
 	
r   )r   r   r   N)#r   r   r   r   __doc__r   r   r   r   r	   r   r   r   r   r   r   r   r   boolr   classmethodr   r   r   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
 6DK'.12C/\ /B/| /B~  oi011 "#& "#& 3- 'tG4I,J'KLL } L M z233 #4.( gdm$$ # ""455 	G J tCH~&& N## <(( SM! K 

!'(B!C
	$	%
 
  "#=>	$	%   9:	$	%  -(

9:

	$	%

 )

 

!'(B!C
	$	%
 
  "#=>	$	%   9:	$	%  -.

9:

	$	%

 /

D@ 
 
 
 
  2$r   r   N)$stripe._accountr   stripe._customerr   stripe._deletable_api_resourcer   stripe._errorr   stripe._expandable_fieldr   stripe._request_optionsr   stripe._stripe_objectr	   stripe._updateable_api_resourcer
   stripe._utilr   r   stripe._verify_mixinr   typingr   r   r   r   r   r   r   typing_extensionsr   r   r   stripe._cardr   r   r   r   r   <module>r     sY    $ % ? - 4 2 . A : , H H H < <!B'-(Br   