
    AiV                         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 d dlmZmZmZ er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  G d ded         Zy)    )APIResource)
ListObject)StripeObject)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)&TransactionCreateFromCalculationParams)TransactionCreateReversalParams)TransactionListLineItemsParams)TransactionRetrieveParams)TransactionLineItemc            	          e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
 G d d	e      Z G d
 de      Zeed<   	 eed<   	 ee   ed<   	 e	ed<   eed<   	 eed      ed<   	 eed<   	 eeeef      ed<   	 ed   ed<   	 eed<   	 eed<   	 ee
   ed<   	 ee   ed<   	 ee   ed<   	 eed<   	 ed   ed<   	 eded   d d fd!       Zeded   d d fd"       Zeded#   d d fd$       Zeded#   d d fd%       Zed&eded'   d ed   fd(       Zeed&eded'   d ed   fd)              Zeded'   d ed   fd*       Z ed+      ded'   d ed   fd,       Zed&eded'   d ed   fd-       Zeed&eded'   d ed   fd.              Zeded'   d ed   fd/       Z ed0      ded'   d ed   fd1       Zededed2   d d fd3       Z ededed2   d d fd4       Z!e	e
eed5Z"y6)7Transactionz
    A Tax Transaction records the tax collected from or refunded to your customer.

    Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)
    ztax.transactionOBJECT_NAMEc                       e Zd ZU  G d de      Z G d de      Zee   ed<   	 eed      ed<   	 ee	   ed<   	 e
e   ed	<   	 ed
   ed<   	 eedZy)Transaction.CustomerDetailsc                   r    e Zd ZU ee   ed<   	 eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)#Transaction.CustomerDetails.Addresscitycountryline1line2postal_codestateN__name__
__module____qualname__r   str__annotations__     J/var/www/html/immo/lib/python3.12/site-packages/stripe/tax/_transaction.pyAddressr   $   a    3- L C=  C=  "#& C= r*   r,   c                   *    e Zd ZU ed   ed<   	 eed<   y)!Transaction.CustomerDetails.TaxId)oad_nrtae_trnal_tinam_tinao_tinar_cuitau_abnau_arnaw_tinaz_tinba_tinbb_tinbd_binbf_ifubg_uicbh_vatbj_ifubo_tinbr_cnpjbr_cpfbs_tinby_tinca_bn
ca_gst_hst	ca_pst_bc	ca_pst_mb	ca_pst_skca_qstcd_nifch_uidch_vatcl_tincm_niucn_tinco_nitcr_tincv_nifde_stndo_rcnec_ruceg_tines_cifet_tin
eu_oss_vateu_vatgb_vatge_vatgn_nifhk_brhr_oibhu_tinid_npwpil_vatin_gstis_vatjp_cnjp_rnjp_trnke_pinkg_tinkh_tinkr_brnkz_binla_tinli_uidli_vatma_vatmd_vatme_pibmk_vatmr_nifmx_rfcmy_frpmy_itnmy_sstng_tinno_vatno_voecnp_pannz_gstom_vatpe_rucph_tinro_tinrs_pibru_innru_kppsa_vatsg_gstsg_uensi_tinsn_nineasr_finsv_nitth_vattj_tintr_tintw_vattz_vatua_vatug_tinunknownus_einuy_rucuz_tinuz_vatve_rifvn_tinza_vatzm_tinzw_tintypevalueN)r$   r%   r&   r   r(   r'   r)   r*   r+   TaxIdr/   >   s)    np pb Jr*   r   address)billingshippingaddress_source
ip_addresstax_ids)customer_exemptnonereverse_chargetaxability_override)r   r   N)r$   r%   r&   r   r,   r   r   r(   r   r'   r
   _inner_class_typesr)   r*   r+   CustomerDetailsr   #   s    	l 	4x	L x	t '""	 !)>!?@@	 SM!	 e	 %7
 	
	 *1UCr*   r   c                       e Zd ZU ee   ed<   y)Transaction.Reversaloriginal_transactionNr#   r)   r*   r+   Reversalr      s    &sm+	r*   r   c                   6    e Zd ZU  G d de      Zeed<   deiZy)Transaction.ShipFromDetailsc                   r    e Zd ZU ee   ed<   	 eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)#Transaction.ShipFromDetails.Addressr   r   r   r    r!   r"   Nr#   r)   r*   r+   r,   r      r-   r*   r,   r   N)r$   r%   r&   r   r,   r(   r   r)   r*   r+   ShipFromDetailsr      s!    	l 	4 '1r*   r   c                       e Zd ZU  G d de      Zeed<   	 eed<   	 ee   ed<   	 e	d   ed<   	 ee
e      ed<   	 eed	<   	 deiZy
)Transaction.ShippingCostc                       e Zd ZU  G d de      Z G d de      Zeed<   	 eed<   ed   ed<   	 e	e   ed	<   	 ed
   ed<   	 eed<   	 eedZ
y)%Transaction.ShippingCost.TaxBreakdownc                   H    e Zd ZU eed<   	 eed<   	 ed   ed<   	 ee   ed<   y)2Transaction.ShippingCost.TaxBreakdown.Jurisdictionr   display_name)r   r   countydistrictr"   levelr"   N)r$   r%   r&   r'   r(   r   r   r)   r*   r+   Jurisdictionr      sA     "! D   }$r*   r   c                   6    e Zd ZU eed<   	 eed<   	 ed   ed<   y)4Transaction.ShippingCost.TaxBreakdown.TaxRateDetailsr   percentage_decimal)amusement_taxcommunications_taxgsthstigstjct	lease_taxpstqstretail_delivery_feerst	sales_taxservice_taxvattax_typeN)r$   r%   r&   r'   r(   r   r)   r*   r+   TaxRateDetailsr   
  s3    !! %(' "  r*   r   amountjurisdiction)destinationoriginsourcingtax_rate_details)r   not_collectingnot_subject_to_taxnot_supportedportion_product_exemptportion_reduced_ratedportion_standard_ratedproduct_exemptproduct_exempt_holidayproportionally_ratedreduced_ratedr   standard_ratedtaxable_basis_reduced
zero_ratedtaxability_reasontaxable_amount)r   r   N)r$   r%   r&   r   r   r   intr(   r   r   r   r)   r*   r+   TaxBreakdownr      s    | ( : K '&566 '~66  '  "   !-$2"r*   r   r   
amount_taxshipping_rate)	exclusive	inclusivetax_behaviortax_breakdowntax_codeN)r$   r%   r&   r   r   r   r(   r   r'   r   r
   r   r)   r*   r+   ShippingCostr      s}    Z	< Z	x 	 	  }$	 677	  \ 233	 	 .|<r*   r   createdcurrencycustomercustomer_detailsidr   
line_itemslivemodemetadataobject	posted_at	referencereversalship_from_detailsshipping_costtax_date)r   transactionr   paramsr   returnc                 >    t        d| j                  dd|            S )
        Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
        r   post,/v1/tax/transactions/create_from_calculationr  r   _static_requestclsr  s     r+   create_from_calculationz#Transaction.create_from_calculation  s0     >   
 	
r*   c                 Z   K   t        d| j                  dd|       d{         S 7 w)r  r   r  r	  r
  Nr   _static_request_asyncr  s     r+   create_from_calculation_asyncz)Transaction.create_from_calculation_async  s>      ++> ,  
 	
   +)
	+r   c                 >    t        d| j                  dd|            S )O
        Partially or fully reverses a previously created Transaction.
        r   r  $/v1/tax/transactions/create_reversalr
  r  r  s     r+   create_reversalzTransaction.create_reversal  s0     6   
 	
r*   c                 Z   K   t        d| j                  dd|       d{         S 7 w)r  r   r  r  r
  Nr  r  s     r+   create_reversal_asyncz!Transaction.create_reversal_async  s>      ++6 ,  
 	
r  r  r   c                 ~    t        t        d   | j                  ddj                  t	        |            |            S )a
        Retrieves the line items of a committed standalone transaction as a collection.
        r   get-/v1/tax/transactions/{transaction}/line_itemsr  r
  )r   r   r  formatr   r  r  r  s      r+   _cls_list_line_itemsz Transaction._cls_list_line_items  sQ     ,-?FF +K 8 G     	
 		
r*   c                      yr  Nr)   r  r  s     r+   list_line_itemszTransaction.list_line_items  s     	r*   c                      yr$  r)   selfr  s     r+   r&  zTransaction.list_line_items  s     	r*   r"  c                     t        t        d   | j                  ddj                  t	        | j                  d                  |            S )r  r   r  r  r   r  r
  )r   r   _requestr   r   r  r(  s     r+   r&  zTransaction.list_line_items  sW     ,-MM?FF +DHHTN ; G    	
 		
r*   c                    K   t        t        d   | j                  ddj                  t	        |            |       d{         S 7 w)r  r   r  r  r  r
  N)r   r   r  r   r   r!  s      r+   _cls_list_line_items_asyncz&Transaction._cls_list_line_items_async"  s_      ,-++?FF +K 8 G   ,  	
 		
s   >A A	
	Ac                    K   ywr$  r)   r%  s     r+   list_line_items_asyncz!Transaction.list_line_items_async6  s      	   c                    K   ywr$  r)   r(  s     r+   r/  z!Transaction.list_line_items_async@  s      	r0  r-  c                    K   t        t        d   | j                  ddj                  t	        | j                  d                  |       d{         S 7 w)r  r   r  r  r   r  r
  N)r   r   _request_asyncr   r   r  r(  s     r+   r/  z!Transaction.list_line_items_asyncI  sg      ,-%%?FF +DHHTN ; G   &  	
 		
s   AAA
	Ar   c                 8     | |fi |}|j                          |S )5
        Retrieves a Tax Transaction object.
        )refreshr  r   r  instances       r+   retrievezTransaction.retrieve[  s$     r$V$r*   c                 T   K    | |fi |}|j                          d{    |S 7 w)r5  N)refresh_asyncr7  s       r+   retrieve_asynczTransaction.retrieve_asyncf  s3      r$V$$$&&& 	's   (&()r   r   r   r  N)#r$   r%   r&   __doc__r   r   r   r(   r   r   r   r   r   r   r'   r   r   boolr	   classmethodr   r  r  r  r  r"  r   staticmethodr&  r   r-  r/  r9  r<  r   r)   r*   r+   r   r      s6    9JK'"345IkD, kDZ< 2, 2<u=| u=n L M sm &%G $9:;; N tCH~&& %&& N N x    00 L)) M +
,, 
FG
	
 
 
FG
	
 
 
?@
	
 
 
?@
	
 
 

 9:
 
)	*	
 
& $*+K$L	)	*   ?@	)	*  01
?@
	)	*
 2
" 

 9:
 
)	*	
 
& $*+K$L	)	*   ?@	)	*  67
?@
	)	*
 8
"  &'B C	   &'B C	  ,,%	r*   r   N)stripe._api_resourcer   stripe._list_objectr   stripe._stripe_objectr   stripe._utilr   r   typingr   r	   r
   r   r   r   typing_extensionsr   r   r   =stripe.params.tax._transaction_create_from_calculation_paramsr   5stripe.params.tax._transaction_create_reversal_paramsr   5stripe.params.tax._transaction_list_line_items_paramsr   .stripe.params.tax._transaction_retrieve_paramsr   !stripe.tax._transaction_line_itemr   r   r)   r*   r+   <module>rL     sO    - * . : A A < < F\	+m, \	r*   