
    <@gE              	       b   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r6d 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l0m1Z1  e	d       G d ded   ed   ed                Z2y)    )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)CreditBalanceTransactionlinec                   d   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 G d. d/e      Z e!ed0<   	 e!ed1<   	 e!ed2<   	 e"ed3<   	 e#d4   ed5<   	 e$e#d6      ed7<   	 e!ed8<   	 e%e	   ed9<   	 e$e!   ed:<   	 e"ed;<   	 e#d<   ed=<   	 e&d>   ed?<   	 e'ed@<   	 e$e"   edA<   	 e$e(e"e"f      edB<   	 e"edC<   	 ed   edD<   	 e$e!   edE<   	 e"edF<   	 e$e%e
      edG<   	 e$edH      edI<   	 e$e#dJ      edK<   	 e$e   edL<   	 edM   edN<   	 e!edO<   	 e$e!   edP<   	 e%e   edQ<   	 e!edR<   	 e$e!   edS<   	 edT   edU<   	 e$e!   edV<   	 e)dWe*dX   dYd fdZ       Z+e)dWe*dX   dYd fd[       Z,e)dWe*d\   dYe&d    fd]       Z-e)dWe*d\   dYe&d    fd^       Z.e)d;e"dWe*d_   dYd fd`       Z/e)d;e"dWe*d_   dYd fda       Z0e)dWe*db   dYd fdc       Z1e)dWe*db   dYd fdd       Z2e)dWe*de   dYe&d>   fdf       Z3e)dWe*de   dYe&d>   fdg       Z4e)d;e"dWe*dh   dYd fdi       Z5e)d;e"dWe*dh   dYd fdj       Z6e)d;e"dWe*dk   dYd fdl       Z7e8e9d;e"dWe*dk   dYd fdm              Z:e8dWe*dk   dYd fdn       Z: e;do      dWe*dk   dYd fdp       Z:e)d;e"dWe*dk   dYd fdq       Z<e8e9d;e"dWe*dk   dYd fdr              Z=e8dWe*dk   dYd fds       Z= e;dt      dWe*dk   dYd fdu       Z=e)de"dWe*dv   dYe&d>   fdw       Z>e)de"dWe*dv   dYe&d>   fdx       Z?e	e
eedyZ@yz){
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                   *    e Zd ZU eed<   	 ed   ed<   y)CreditNote.DiscountAmountamountr   discountN)__name__
__module____qualname__int__annotations__r        R/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/_credit_note.pyDiscountAmountr'   1   s    	 "*--	r0   r2   c                   Z    e Zd ZU eed<   	 eed      ed<   	 eed      ed<   	 ed   ed<   y)	CreditNote.PretaxCreditAmountr(   r    credit_balance_transactionr   r)   )r5   r)   typeN)r*   r+   r,   r-   r.   r   r   r   r/   r0   r1   PretaxCreditAmountr4   ;   sS    	 %-67%
 	
	 ?:677	 >??	r0   r7   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
y	)
CreditNote.ShippingCostc                   N    e Zd ZU eed<   	 ded<   	 eed      ed<   	 ee   ed<   y)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/   r0   r1   Taxr;   P   sJ    K O
  ("  & %SM)r0   rO   amount_subtotal
amount_taxamount_totalr   shipping_ratetaxesN)r*   r+   r,   r	   rO   r-   r.   r   r   r   _inner_class_typesr/   r0   r1   ShippingCostr9   O   sn    $	, $	L 	 	 	   ?@@	 S	""	 &s^r0   rV   c                   `    e Zd ZU eed<   	 eed<   	 ed   ed<   	 eed      ed<   	 ee   ed<   y)	CreditNote.TaxAmountr(   	inclusiver   tax_rater=   rM   rN   N)	r*   r+   r,   r-   r.   boolr   r   r   r/   r0   r1   	TaxAmountrX      s\    	 	 "),,	 $
 	
&	 !%	r0   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<   y)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/   r0   r1   CreateParamsr^      s   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 =>??	 #	 d38n--	 (,,	 *
 	
	 C  	 #3''	 ##HII	r0   rw   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<   y)rf   r(   descriptioninvoice_line_itemquantityz6Literal['']|List[CreditNote.CreateParamsLineTaxAmount]tax_amountsLiteral['']|List[str]	tax_ratescustom_line_itemrz   r6   unit_amountunit_amount_decimalNr*   r+   r,   r   r-   r.   rv   r   r/   r0   r1   CreateParamsLinezCreditNote.CreateParamsLine   s    C  	 !%%	 's++	 c""	 !D
 	
	 677	 =>>	 !%%	 )--	r0   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)$CreditNote.CreateParamsLineTaxAmountr(   rZ   rN   Nr*   r+   r,   r-   r.   rv   r/   r0   r1   CreateParamsLineTaxAmountr     %    	 	 	r0   r   c                       e Zd ZU ee   ed<   y)rs   rS   Nr*   r+   r,   r   rv   r.   r/   r0   r1   CreateParamsShippingCostz#CreditNote.CreateParamsShippingCost+      "3''	r0   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<   y)CreditNote.ListLinesParamsending_beforerd   limitstarting_afterN)r*   r+   r,   r   rv   r.   r   r-   r/   r0   r1   ListLinesParamsr   1  sL    "3''	 DI&&	 3	 $C((	r0   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<   y	)
CreditNote.ListParamsz CreditNote.ListParamsCreated|intcreatedcustomerr   rd   re   r   r   N)r*   r+   r,   r   r.   rv   r   r-   r/   r0   r1   
ListParamsr   C  s    ?@@	 c""	 #3''	 DI&&	 S!!	 3	 $C((	r0   r   c                   T    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)CreditNote.ListParamsCreatedgtgteltlteN)r*   r+   r,   r   r-   r.   r/   r0   r1   ListParamsCreatedr   a  sH    	 	 	 	r0   r   c                   R    e Zd ZU eee      ed<   	 ee   ed<   	 eeeef      ed<   y)CreditNote.ModifyParamsrd   rh   ri   N)r*   r+   r,   r   r   rv   r.   r   r/   r0   r1   ModifyParamsr   s  sB    DI&&	 #	 d38n--	r0   r   c                   Z   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<   y)CreditNote.PreviewLinesParamsr(   r_   r`   ra   rc   r   rd   re   r   !CreditNote.PreviewLinesParamsLinerg   rh   ri   rj   rk   rp   rq   rr   )CreditNote.PreviewLinesParamsShippingCostrt   r   N)
r*   r+   r,   r   r-   r.   r   rv   r   r   r/   r0   r1   PreviewLinesParamsr     sT   C  	 #3''	 "#&&	  (= >??	 #3''	 DI&&	 	 3	 4 CDEE	 #	 d38n--	 (,,	 *
 	
	 C  	 #3''	 ##NOO	 $C((	r0   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<   y)r   r(   ry   rz   r{   z<Literal['']|List[CreditNote.PreviewLinesParamsLineTaxAmount]r|   r}   r~   r   r6   r   r   Nr   r/   r0   r1   PreviewLinesParamsLinez!CreditNote.PreviewLinesParamsLine  s    C  	 !%%	 's++	 c""	 !J
 	
	 677	 =>>	 !%%	 )--	r0   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)*CreditNote.PreviewLinesParamsLineTaxAmountr(   rZ   rN   Nr   r/   r0   r1   PreviewLinesParamsLineTaxAmountr     r   r0   r   c                       e Zd ZU ee   ed<   y)r   rS   Nr   r/   r0   r1   PreviewLinesParamsShippingCostz)CreditNote.PreviewLinesParamsShippingCost  r   r0   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<   y)CreditNote.PreviewParamsr(   r_   r`   ra   rc   rd   re   CreditNote.PreviewParamsLinerg   rh   ri   rj   rk   rp   rq   rr   $CreditNote.PreviewParamsShippingCostrt   Nru   r/   r0   r1   PreviewParamsr   
  s   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 >?@@	 #	 d38n--	 (,,	 *
 	
	 C  	 #3''	 ##IJJ	r0   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<   y)r   r(   ry   rz   r{   z7Literal['']|List[CreditNote.PreviewParamsLineTaxAmount]r|   r}   r~   r   r6   r   r   Nr   r/   r0   r1   PreviewParamsLinezCreditNote.PreviewParamsLineK  s    C  	 !%%	 's++	 c""	 !E
 	
	 677	 =>>	 !%%	 )--	r0   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)%CreditNote.PreviewParamsLineTaxAmountr(   rZ   rN   Nr   r/   r0   r1   PreviewParamsLineTaxAmountr   s  r   r0   r   c                       e Zd ZU ee   ed<   y)r   rS   Nr   r/   r0   r1   PreviewParamsShippingCostz$CreditNote.PreviewParamsShippingCost  r   r0   r   c                   $    e Zd ZU eee      ed<   y)CreditNote.RetrieveParamsrd   Nr*   r+   r,   r   r   rv   r.   r/   r0   r1   RetrieveParamsr         DI&&	r0   r   c                   $    e Zd ZU eee      ed<   y)CreditNote.VoidCreditNoteParamsrd   Nr   r/   r0   r1   VoidCreditNoteParamsr     r   r0   r   r(   amount_shippingr   currencyr   r   r   customer_balance_transactiondiscount_amountdiscount_amountsr`   idr   re   r   rg   livemoderh   ri   numberobjectrj   pdfpretax_credit_amountsrk   rp   r   rq   rt   )issuedvoidstatussubtotalsubtotal_excluding_taxr|   totaltotal_excluding_tax)post_paymentpre_paymentr6   	voided_atparamsr^   returnc                 Z    t        d| j                  d| j                         |            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     r1   createzCreditNote.create  s6    (    
 	
r0   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r   r#   r   r   N)r   _static_request_asyncr   r   s     r1   create_asynczCreditNote.create_async3  sD     ( ++ ,  
 	
s   ,97
	9r   c                     | j                  d| j                         |      }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   	TypeErrorr6   r*   r   r   results      r1   listzCreditNote.listP  s]     $$MMO % 

 &*-7<((* 
 r0   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r   r   r   Nr   )r   r   r   r   r   r6   r*   r   s      r1   
list_asynczCreditNote.list_asyncd  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 z    | j                         dt        |      }t        d| j                  d||            S )2
        Updates an existing credit note.
        /r#   r   r   )r   r   r   r   r   r   r   urls       r1   modifyzCreditNote.modifyx  sD     +b/:   
 	
r0   c                    K   | j                         dt        |      }t        d| j                  d||       d{         S 7 w)r   r   r#   r   r   N)r   r   r   r   r   s       r1   modify_asynczCreditNote.modify_async  sR      +b/:++ ,  
 	
s   <A	A
	A	r   c                 >    t        d| j                  dd|            S )E
        Get a preview of a credit note without creating it.
        r#   r   /v1/credit_notes/previewr   )r   r   r   s     r1   previewzCreditNote.preview  s0     *   
 	
r0   c                 Z   K   t        d| j                  dd|       d{         S 7 w)r   r#   r   r   r   N)r   r   r   s     r1   preview_asynczCreditNote.preview_async  s>      ++* ,  
 	
s   +)
	+r   c                 L    t        t        d   | j                  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     r1   preview_lineszCreditNote.preview_lines  s6     +,0   
 	
r0   c                 h   K   t        t        d   | j                  dd|       d{         S 7 w)r   r   r   r  r   N)r   r   r   r   s     r1   preview_lines_asynczCreditNote.preview_lines_async  sD      +,++0 ,  
 	
s   %20
	2r   c                 8     | |fi |}|j                          |S )M
        Retrieves the credit note object with the given identifier.
        )refreshr   r   r   instances       r1   retrievezCreditNote.retrieve  s$     r$V$r0   c                 T   K    | |fi |}|j                          d{    |S 7 w)r  N)refresh_asyncr  s       r1   retrieve_asynczCreditNote.retrieve_async  s3      r$V$$$&&& 	's   (&(r   c                 p    t        d| j                  ddj                  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      r1   _cls_void_credit_notez CreditNote._cls_void_credit_note  sB     ,33{23G   
 	
r0   c                      yr  Nr/   r   r   s     r1   void_credit_notezCreditNote.void_credit_note   s     	r0   c                      yr  r/   selfr   s     r1   r  zCreditNote.void_credit_note
  s     	r0   r  c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r  r#   r   r  r   r  r   )r   _requestr  r   r   r  s     r1   r  zCreditNote.void_credit_note  sP     MM,33"488D>2 4    	
 		
r0   c                    K   t        d| j                  ddj                  t        |            |       d{         S 7 w)r  r#   r   r  r  r   N)r   r   r  r   r  s      r1   _cls_void_credit_note_asyncz&CreditNote._cls_void_credit_note_async%  sP      ++,33{23G ,  
 	
s   7AA
	Ac                    K   ywr  r/   r  s     r1   void_credit_note_asyncz!CreditNote.void_credit_note_async5  s      	   c                    K   ywr  r/   r  s     r1   r!  z!CreditNote.void_credit_note_async?  s      	r"  r  c                    K   t        d| j                  ddj                  t        | j	                  d                  |       d{         S 7 w)r  r#   r   r  r   r  r   N)r   _request_asyncr  r   r   r  s     r1   r!  z!CreditNote.void_credit_note_asyncH  s`      %%,33"488D>2 4   &  	
 		
s   AAA
		Ar   c                 ~    t        t        d   | j                  ddj                  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      r1   
list_lineszCreditNote.list_linesZ  sP     +,6== +K 8 >     	
 		
r0   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      r1   list_lines_asynczCreditNote.list_lines_asyncl  s^      +,++6== +K 8 >   ,  	
 		
s   >A A	
	A)r   r   rt   r|   N)Ar*   r+   r,   __doc__r%   r   r   r.   r	   r2   r7   rV   r\   r   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   rv   r   r   r   r   r[   r   classmethodr   r   r   r   r   r   r   r   r   r  r  r
  r  r  r   staticmethodr  r   r  r!  r+  r-  rU   r/   r0   r1   r#   r#   #   s    5BK'-01A \ (;,| ;,z&L &P?~ ?B&9 &PI 9 . $^ <I $~ K^ KZ& &P)  ? ?B&I &PY I  ~  K  L M j)) #+45#   >** 3- 	G Y'' *++ N 3- tCH~&& K M"" !% 
H $D);$<== O	
 
 _X.// L)) $%% M %SM) i  J "#& /
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	   @A	  12
@A
	
 3
" 

 &'H I
	
 
 !"CD	   @A	  78
@A
	
 9
" 

)/0L)M
	(	)
 
" 

)/0L)M
	(	)
 
$ +!3% 	r0   r#   N)3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   *stripe.billing._credit_balance_transactionr    r#   r/   r0   r1   <module>rE     s    B 4 * = O 2 . A : A A  @)O)'%2(
 v&_,'%,'_ '_r0   