
    jofU              	       |   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 d dlmZmZmZmZmZ er0d 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/  e	d           G d ded         ed         ed                               Z0dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)nested_resource_class_methods)RequestOptions)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)CreditNoteLineItem)Customer)CustomerBalanceTransaction)Discount)Invoice)Refund)ShippingRate)TaxRatelinec                   	   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 G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d  d!e          Z G d" d#e          Z G d$ d%e          Z 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d0<   	 e!ed1<   	 e"d2         ed3<   	 e#e"d4                  ed5<   	 e ed6<   	 e$e	         ed7<   	 e#e          ed8<   	 e!ed9<   	 e"d:         ed;<   	 e%d<         ed=<   	 e&ed><   	 e#e!         ed?<   	 e#e'e!e!f                  ed@<   	 e!edA<   	 ed         edB<   	 e#e          edC<   	 e!edD<   	 e#edE                  edF<   	 e#e"dG                  edH<   	 e#e
         edI<   	 edJ         edK<   	 e edL<   	 e#e          edM<   	 e$e         edN<   	 e edO<   	 e#e          edP<   	 edQ         edR<   	 e#e          edS<   	 e(dTe)dU         dVd fdW            Z*e(dTe)dU         dVd fdX            Z+e(dTe)dY         dVe%d          fdZ            Z,e(dTe)dY         dVe%d          fd[            Z-e(d9e!dTe)d\         dVd fd]            Z.e(d9e!dTe)d\         dVd fd^            Z/e(dTe)d_         dVd fd`            Z0e(dTe)d_         dVd fda            Z1e(dTe)db         dVe%d<         fdc            Z2e(dTe)db         dVe%d<         fdd            Z3e(d9e!dTe)de         dVd fdf            Z4e(d9e!dTe)de         dVd fdg            Z5e(d9e!dTe)dh         dVd fdi            Z6e7e8d9e!dTe)dh         dVd fdj                        Z9e7dTe)dh         dVd fdk            Z9 e:dl          dTe)dh         dVd fdm            Z9e(d9e!dTe)dh         dVd fdn            Z;e7e8d9e!dTe)dh         dVd fdo                        Z<e7dTe)dh         dVd fdp            Z< e:dq          dTe)dh         dVd fdr            Z<e(de!dTe)ds         dVe%d<         fdt            Z=e(de!dTe)ds         dVe%d<         fdu            Z>e	e
edvZ?dwS )x
CreditNotez
    Issue a credit note to adjust an invoice's amount after the invoice is finalized.

    Related guide: [Credit notes](https://stripe.com/docs/billing/invoices/credit-notes)
    credit_noteOBJECT_NAMEc                   2    e Zd ZU eed<   	 ed         ed<   dS )CreditNote.DiscountAmountamountr   discountN)__name__
__module____qualname__int__annotations__r        M/var/www/html/Alfredo/env/lib/python3.11/site-packages/stripe/_credit_note.pyDiscountAmountr&   .   s7         	 "*----	 	r/   r1   c                       e Zd ZU  G d de          Zeed<   	 eed<   	 eed<   	 eed                  ed<   	 ee	e                  ed<   	 deiZ
d	S )
CreditNote.ShippingCostc                   b    e Zd ZU eed<   	 ded<   	 eed                  ed<   	 ee         ed<   dS )CreditNote.ShippingCost.Taxr'   r   ratecustomer_exempt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_ratedreverse_chargestandard_ratedtaxable_basis_reduced
zero_ratedtaxability_reasontaxable_amountN)r)   r*   r+   r,   r-   r   r   r.   r/   r0   Taxr5   9   sq         KKK OOO
  ("    & %SM))) r/   rI   amount_subtotal
amount_taxamount_totalr   shipping_ratetaxesN)r)   r*   r+   r	   rI   r,   r-   r   r   r   _inner_class_typesr.   r/   r0   ShippingCostr3   8   s         $	 $	 $	 $	 $	, $	 $	 $	L 	 	 	   ?@@@@	 S	""""	 &s^r/   rP   c                   z    e Zd ZU eed<   	 eed<   	 ed         ed<   	 eed                  ed<   	 ee         ed<   dS )	CreditNote.TaxAmountr'   	inclusiver   tax_rater7   rG   rH   N)	r)   r*   r+   r,   r-   boolr   r   r   r.   r/   r0   	TaxAmountrR   u   s         	 	 "),,,,	 $
 	
 	
 	
&	 !%%%	 	r/   rV   c                      e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 eed                  ed<   	 eee                  ed<   	 eed<   	 eed                  ed	<   	 ee         ed
<   	 ee	eef                  ed<   	 ee         ed<   	 eed                  ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   dS )CreditNote.CreateParamsr'   credit_amounteffective_atr#   none
email_typeexpandinvoiceCreditNote.CreateParamsLinelinesmemometadataout_of_band_amount	duplicate
fraudulentorder_changeproduct_unsatisfactoryreasonrefundrefund_amount#CreditNote.CreateParamsShippingCostshipping_costN
r)   r*   r+   r   r,   r-   r   r   strr   r.   r/   r0   CreateParamsrX      s        C    	 #3''''	 "#&&&&	  (= >????	 DI&&&&	 	 4 =>????	 #	 d38n----	 (,,,,	 *
 	
 	
 	
	 C    	 #3''''	 ##HIIII	 	r/   rq   c                       e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   	 ed         ed<   	 ed	         ed
<   	 ee         ed<   	 ee         ed<   dS )r`   r'   descriptioninvoice_line_itemquantityz6Literal['']|List[CreditNote.CreateParamsLineTaxAmount]tax_amountsLiteral['']|List[str]	tax_ratescustom_line_itemrt   typeunit_amountunit_amount_decimalNr)   r*   r+   r   r,   r-   rp   r   r.   r/   r0   CreateParamsLinezCreditNote.CreateParamsLine   s         C    	 !%%%%	 's++++	 c""""	 !D
 	
 	
 	
	 67777	 =>>>>	 !%%%%	 )----	 	r/   r   c                   2    e Zd ZU eed<   	 eed<   	 eed<   dS )$CreditNote.CreateParamsLineTaxAmountr'   rT   rH   Nr)   r*   r+   r,   r-   rp   r.   r/   r0   CreateParamsLineTaxAmountr     B         	 	 	 	r/   r   c                   &    e Zd ZU ee         ed<   dS )rm   rM   Nr)   r*   r+   r   rp   r-   r.   r/   r0   CreateParamsShippingCostz#CreditNote.CreateParamsShippingCost  '         "3''''	 	r/   r   c                   z    e Zd ZU ee         ed<   	 eee                  ed<   	 ee         ed<   	 ee         ed<   dS )CreditNote.ListLinesParamsending_beforer^   limitstarting_afterN)r)   r*   r+   r   rp   r-   r   r,   r.   r/   r0   ListLinesParamsr     ss         "3''''	 DI&&&&	 3	 $C((((	 	r/   r   c                       e Zd ZU ed         ed<   	 ee         ed<   	 ee         ed<   	 eee                  ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   d	S )
CreditNote.ListParamsz CreditNote.ListParamsCreated|intcreatedcustomerr   r^   r_   r   r   N)r)   r*   r+   r   r-   rp   r   r,   r.   r/   r0   
ListParamsr   ,  s         ?@@@@	 c""""	 #3''''	 DI&&&&	 S!!!!	 3	 $C((((	 	r/   r   c                   n    e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   dS )CreditNote.ListParamsCreatedgtgteltlteN)r)   r*   r+   r   r,   r-   r.   r/   r0   ListParamsCreatedr   J  so         	 	 	 	 	r/   r   c                   r    e Zd ZU eee                  ed<   	 ee         ed<   	 eeeef                  ed<   dS )CreditNote.ModifyParamsr^   rb   rc   N)r)   r*   r+   r   r   rp   r-   r   r.   r/   r0   ModifyParamsr   \  sc         DI&&&&	 #	 d38n----	 	r/   r   c                      e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 eed                  ed<   	 ee         ed<   	 eee                  ed<   	 eed<   	 ee         ed	<   	 eed
                  ed<   	 ee         ed<   	 ee	eef                  ed<   	 ee         ed<   	 eed                  ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   	 ee         ed<   dS )CreditNote.PreviewLinesParamsr'   rY   rZ   r[   r]   r   r^   r_   r   !CreditNote.PreviewLinesParamsLinera   rb   rc   rd   re   rj   rk   rl   )CreditNote.PreviewLinesParamsShippingCostrn   r   N)
r)   r*   r+   r   r,   r-   r   rp   r   r   r.   r/   r0   PreviewLinesParamsr   j  s        C    	 #3''''	 "#&&&&	  (= >????	 #3''''	 DI&&&&	 	 3	 4 CDEEEE	 #	 d38n----	 (,,,,	 *
 	
 	
 	
	 C    	 #3''''	 ##NOOOO	 $C((((	 	r/   r   c                       e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   	 ed         ed<   	 ed	         ed
<   	 ee         ed<   	 ee         ed<   dS )r   r'   rs   rt   ru   z<Literal['']|List[CreditNote.PreviewLinesParamsLineTaxAmount]rv   rw   rx   ry   r{   r|   r}   Nr~   r.   r/   r0   PreviewLinesParamsLinez!CreditNote.PreviewLinesParamsLine  s         C    	 !%%%%	 's++++	 c""""	 !J
 	
 	
 	
	 67777	 =>>>>	 !%%%%	 )----	 	r/   r   c                   2    e Zd ZU eed<   	 eed<   	 eed<   dS )*CreditNote.PreviewLinesParamsLineTaxAmountr'   rT   rH   Nr   r.   r/   r0   PreviewLinesParamsLineTaxAmountr     r   r/   r   c                   &    e Zd ZU ee         ed<   dS )r   rM   Nr   r.   r/   r0   PreviewLinesParamsShippingCostz)CreditNote.PreviewLinesParamsShippingCost  r   r/   r   c                      e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 eed                  ed<   	 eee                  ed<   	 eed<   	 eed                  ed	<   	 ee         ed
<   	 ee	eef                  ed<   	 ee         ed<   	 eed                  ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   dS )CreditNote.PreviewParamsr'   rY   rZ   r[   r]   r^   r_   CreditNote.PreviewParamsLinera   rb   rc   rd   re   rj   rk   rl   $CreditNote.PreviewParamsShippingCostrn   Nro   r.   r/   r0   PreviewParamsr     s        C    	 #3''''	 "#&&&&	  (= >????	 DI&&&&	 	 4 >?@@@@	 #	 d38n----	 (,,,,	 *
 	
 	
 	
	 C    	 #3''''	 ##IJJJJ	 	r/   r   c                       e Zd ZU ee         ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   	 ed         ed<   	 ed         ed<   	 ed	         ed
<   	 ee         ed<   	 ee         ed<   dS )r   r'   rs   rt   ru   z7Literal['']|List[CreditNote.PreviewParamsLineTaxAmount]rv   rw   rx   ry   r{   r|   r}   Nr~   r.   r/   r0   PreviewParamsLinezCreditNote.PreviewParamsLine4  s         C    	 !%%%%	 's++++	 c""""	 !E
 	
 	
 	
	 67777	 =>>>>	 !%%%%	 )----	 	r/   r   c                   2    e Zd ZU eed<   	 eed<   	 eed<   dS )%CreditNote.PreviewParamsLineTaxAmountr'   rT   rH   Nr   r.   r/   r0   PreviewParamsLineTaxAmountr   \  r   r/   r   c                   &    e Zd ZU ee         ed<   dS )r   rM   Nr   r.   r/   r0   PreviewParamsShippingCostz$CreditNote.PreviewParamsShippingCostj  r   r/   r   c                   2    e Zd ZU eee                  ed<   dS )CreditNote.RetrieveParamsr^   Nr)   r*   r+   r   r   rp   r-   r.   r/   r0   RetrieveParamsr   p  +         DI&&&&	 	r/   r   c                   2    e Zd ZU eee                  ed<   dS )CreditNote.VoidCreditNoteParamsr^   Nr   r.   r/   r0   VoidCreditNoteParamsr   v  r   r/   r   r'   amount_shippingr   currencyr   r   r   customer_balance_transactiondiscount_amountdiscount_amountsrZ   idr   r_   r   ra   livemoderb   rc   numberobjectrd   pdfre   rj   r   rk   rn   )issuedvoidstatussubtotalsubtotal_excluding_taxrv   totaltotal_excluding_tax)post_paymentpre_paymentr{   	voided_atparamsrX   returnc                 r    t          d|                     d|                                 |                    S )+  
        Issue a credit note to adjust the amount of a finalized invoice. For a status=open invoice, a credit note reduces
        its amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result
        in any combination of the following:


        Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
        Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized.
        Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).


        For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.

        You may issue multiple credit notes for an invoice. Each credit note will increment the invoice's pre_payment_credit_notes_amount
        or post_payment_credit_notes_amount depending on its status at the time of credit note creation.
        r"   postr   )r   _static_request	class_urlclsr   s     r0   createzCreditNote.create  sB    (     
 
 	
r/   c                    K   t          d|                     d|                                 |           d{V           S )r   r"   r   r   N)r   _static_request_asyncr   r   s     r0   create_asynczCreditNote.create_async  sd      ( ++ ,        
 
 	
r/   r   c                     |                      d|                                 |          }t          |t                    s$t	          dt          |          j        z            |S )1
        Returns a list of credit notes.
        getr   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr{   r)   r   r   results      r0   listzCreditNote.list5  sp     $$MMOO % 
 

 &*-- 	7<<(*  
 r/   c                    K   |                      d|                                 |           d{V }t          |t                    s$t	          dt          |          j        z            |S )r   r   r   Nr   )r   r   r   r   r   r{   r)   r   s      r0   
list_asynczCreditNote.list_asyncI  s       00MMOO 1 
 
 
 
 
 
 
 

 &*-- 	7<<(*  
 r/   r   c                     |                                  dt          |          }t          d|                     d||                    S )2
        Updates an existing credit note.
        /r"   r   r   )r   r   r   r   r   r   r   urls       r0   modifyzCreditNote.modify]  sX     +b///:    
 
 	
r/   c                    K   |                                  dt          |          }t          d|                     d||           d{V           S )r   r   r"   r   r   N)r   r   r   r   r   s       r0   modify_asynczCreditNote.modify_asyncn  sz       +b///:++ ,        
 
 	
r/   r   c                 N    t          d|                     dd|                    S )E
        Get a preview of a credit note without creating it.
        r"   r   /v1/credit_notes/previewr   )r   r   r   s     r0   previewzCreditNote.preview  s:     *    
 
 	
r/   c                 ^   K   t          d|                     dd|           d{V           S )r   r"   r   r   r   N)r   r   r   s     r0   preview_asynczCreditNote.preview_async  s\       ++* ,        
 
 	
r/   r   c                 d    t          t          d         |                     dd|                    S )
        When retrieving a credit note preview, you'll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items.
        r   r   /v1/credit_notes/preview/linesr   )r   r   r   r   s     r0   preview_lineszCreditNote.preview_lines  s@     +,0    
 
 	
r/   c                 t   K   t          t          d         |                     dd|           d{V           S )r   r   r   r   r   N)r   r   r   r   s     r0   preview_lines_asynczCreditNote.preview_lines_async  sb       +,++0 ,        
 
 	
r/   r   c                 @     | |fi |}|                                  |S )M
        Retrieves the credit note object with the given identifier.
        )refreshr   r   r   instances       r0   retrievezCreditNote.retrieve  s2     3r$$V$$r/   c                 P   K    | |fi |}|                                  d{V  |S )r   N)refresh_asyncr  s       r0   retrieve_asynczCreditNote.retrieve_async  sH       3r$$V$$$$&&&&&&&&&r/   r   c                     t          d|                     dd                    t          |                    |                    S )
        Marks a credit note as void. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding).
        r"   r   /v1/credit_notes/{id}/voidr   r   )r   r   formatr   r   r   r   s      r0   _cls_void_credit_notez CreditNote._cls_void_credit_note  sQ     ,33{23GG    
 
 	
r/   c                     dS r	  Nr.   r   r   s     r0   void_credit_notezCreditNote.void_credit_note  s	     	r/   c                     dS r  r.   selfr   s     r0   r  zCreditNote.void_credit_note  s	     	r/   r  c                     t          d|                     dd                    t          |                     d                              |                    S )r	  r"   r   r
  r   r  r   )r   _requestr  r   r   r  s     r0   r  zCreditNote.void_credit_note  sd     MM,33"488D>>22 4      	
 	
 		
r/   c                    K   t          d|                     dd                    t          |                    |           d{V           S )r	  r"   r   r
  r  r   N)r   r   r  r   r  s      r0   _cls_void_credit_note_asyncz&CreditNote._cls_void_credit_note_async
  ss       ++,33{23GG ,        
 
 	
r/   c                 
   K   dS r  r.   r  s     r0   void_credit_note_asyncz!CreditNote.void_credit_note_async  s       	r/   c                 
   K   dS r  r.   r  s     r0   r  z!CreditNote.void_credit_note_async$  s       	r/   r  c                    K   t          d|                     dd                    t          |                     d                              |           d{V           S )r	  r"   r   r
  r   r  r   N)r   _request_asyncr  r   r   r  s     r0   r  z!CreditNote.void_credit_note_async-  s       %%,33"488D>>22 4    &        	
 	
 		
r/   r   c                     t          t          d         |                     dd                    t	          |                    |                    S )
        When retrieving a credit note, you'll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
        r   r   $/v1/credit_notes/{credit_note}/linesr#   r   )r   r   r   r  r   r   r#   r   s      r0   
list_lineszCreditNote.list_lines?  sb     +,6== +K 8 8 >       	
 	
 		
r/   c                    K   t          t          d         |                     dd                    t	          |                    |           d{V           S )r   r   r   r!  r"  r   N)r   r   r   r  r   r#  s      r0   list_lines_asynczCreditNote.list_lines_asyncQ  s       +,++6== +K 8 8 >    ,        	
 	
 		
r/   )r   rn   rv   N)@r)   r*   r+   __doc__r$   r   r   r-   r	   r1   rP   rV   r   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   rp   r   r   r   r   rU   r   classmethodr   r   r   r   r   r   r   r   r   r   r   r  r  r  r   staticmethodr  r   r  r  r$  r&  rO   r.   r/   r0   r"   r"       s          5BK'-01AAA       ;, ;, ;, ;, ;,| ;, ;, ;,z& & & & &L & & &P? ? ? ? ?~ ? ? ?B& & & & &9 & & &P    I       9       .   $    ^   <    I   $    ~   K K K K K^ K K KZ& & & & & & & &P    )          ? ? ? ? ? ? ? ?B& & & & &I & & &P    Y       I              ~    KKK  LLL MMM j)))) #+45#     >**** 3- 	GGG Y'''' *++++ NNN 3- tCH~&&&& KKK M"""" !%%% 
HHH O	
   
 _X.//// L)))) $%%%% MMM %SM))) i    JJJ "#&&& /
0000 } 
78
	
 
 
 [
8 
78
	
 
 
 [
8 56	L	!   [& 56	L	!   [& 

 &'@ A
	
 
 
 [
  

 &'@ A
	
 
 
 [
  
89
	
 
 
 [
 
89
	
 
 
 [
 
=>
	(	)
 
 
 [
 
=>
	(	)
 
 
 [
  &'B C	   [  &'B C	   [ 

 &'H I
	
 
 
 [
 !"CD	   \ X @A	   X 122
@A
	
 
 
 32
" 

 &'H I
	
 
 
 [
 !"CD	   \ X @A	   X 788
@A
	
 
 
 98
" 

)/0L)M
	(	)
 
 
 [
" 

)/0L)M
	(	)
 
 
 [
$ +%  r/   r"   N)1stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   %stripe._nested_resource_class_methodsr   stripe._request_optionsr   stripe._stripe_objectr	   stripe._updateable_api_resourcer
   stripe._utilr   r   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   r   stripe._credit_note_line_itemr   stripe._customerr   $stripe._customer_balance_transactionr   stripe._discountr   stripe._invoicer   stripe._refundr   stripe._shipping_rater   stripe._tax_rater   r"   r.   r/   r0   <module>r=     s,   B A A A A A 4 4 4 4 4 4 * * * * * * = = = = = = O O O O O O 2 2 2 2 2 2 . . . . . . A A A A A A : : : : : : : : A A A A A A A A A A A A A A A A               )@@@@@@))))))OOOOOO))))))''''''%%%%%%222222(((((( v&&F F F F F,'%,'F F '&F F Fr/   