
    h              	       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/m0Z0 d dl1m2Z2  e	d       G d ded   ed   ed                Z3y)    )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                      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  G d0 d1e      Z! G d2 d3e      Z" G d4 d5e      Z# G d6 d7e      Z$e%ed8<   	 e%ed9<   	 e%ed:<   	 e&ed;<   	 e'd<   ed=<   	 e(e'd>      ed?<   	 e%ed@<   	 e)e	   edA<   	 e(e%   edB<   	 e&edC<   	 e'dD   edE<   	 e*dF   edG<   	 e+edH<   	 e(e&   edI<   	 e(e,e&e&f      edJ<   	 e&edK<   	 ed   edL<   	 e(e%   edM<   	 e&edN<   	 e)e
   edO<   	 e(edP      edQ<   	 e)e   edR<   	 e(e   edS<   	 edT   edU<   	 e%edV<   	 e(e%   edW<   	 e%edX<   	 e(e%   edY<   	 e(e)e      edZ<   	 ed[   ed\<   	 e(e%   ed]<   	 e-d^e.d_   d`d fda       Z/e-d^e.d_   d`d fdb       Z0e-d^e.dc   d`e*d    fdd       Z1e-d^e.dc   d`e*d    fde       Z2e-dCe&d^e.df   d`d fdg       Z3e-dCe&d^e.df   d`d fdh       Z4e-d^e.di   d`d fdj       Z5e-d^e.di   d`d fdk       Z6e-d^e.dl   d`e*dF   fdm       Z7e-d^e.dl   d`e*dF   fdn       Z8e-dCe&d^e.do   d`d fdp       Z9e-dCe&d^e.do   d`d fdq       Z:e-dCe&d^e.dr   d`d fds       Z;e<e=dCe&d^e.dr   d`d fdt              Z>e<d^e.dr   d`d fdu       Z> e?dv      d^e.dr   d`d fdw       Z>e-dCe&d^e.dr   d`d fdx       Z@e<e=dCe&d^e.dr   d`d fdy              ZAe<d^e.dr   d`d fdz       ZA e?d{      d^e.dr   d`d fd|       ZAe-de&d^e.d}   d`e*dF   fd~       ZBe-de&d^e.d}   d`e*dF   fd       ZCe	e
eeedZDy)
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        S/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/stripe/_credit_note.pyDiscountAmountr'   1   s    	 "*--	r1   r3   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)   )r6   r)   typeN)r+   r,   r-   r.   r/   r   r   r   r0   r1   r2   PretaxCreditAmountr5   ;   sS    	 %-67%
 	
	 ?:677	 >??	r1   r8   c                   *    e Zd ZU eed<   	 ed   ed<   y)CreditNote.Refundamount_refundedRefundResourcerefundNr*   r0   r1   r2   r   r:   O   s     	   011	r1   r   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   r0   r1   r2   TaxrA   Z   sJ    K O
  ("  & %SM)r1   rT   amount_subtotal
amount_taxamount_totalr   shipping_ratetaxesN)r+   r,   r-   r	   rT   r.   r/   r   r   r   _inner_class_typesr0   r1   r2   ShippingCostr?   Y   sn    $	, $	L 	 	 	   ?@@	 S	""	 &s^r1   r[   c                       e Zd ZU  G d de      Zeed<   	 ed   ed<   	 ee   ed<   	 ed   ed<   	 ee   ed	<   	 ed   ed
<   	 deiZ	y)CreditNote.TotalTaxc                       e Zd ZU eed<   y)"CreditNote.TotalTax.TaxRateDetailstax_rateN)r+   r,   r-   strr/   r0   r1   r2   TaxRateDetailsr_      s    Mr1   rb   r(   )	exclusive	inclusivetax_behaviortax_rate_details)rC   not_availablerD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r7   N)
r+   r,   r-   r	   rb   r.   r/   r   r   rZ   r0   r1   r2   TotalTaxr]      s    	\ 	 	 677	 #>22	 #
 	
$	 !%	 ())	 1.Ar1   rh   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d      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_amountCreditNote.CreateParamsRefundrefunds#CreditNote.CreateParamsShippingCostshipping_costN
r+   r,   r-   r   r.   r/   r   r   ra   r   r0   r1   r2   CreateParamsrj      s$   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 =>??	 #	 d38n--	 (,,	 *
 	
	 #3''	 T"ABCC	 ##HII	r1   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)rr   r(   descriptioninvoice_line_itemquantityz6Literal['']|List[CreditNote.CreateParamsLineTaxAmount]tax_amountsLiteral['']|List[str]	tax_ratescustom_line_itemr   r7   unit_amountunit_amount_decimalNr+   r,   r-   r   r.   r/   ra   r   r0   r1   r2   CreateParamsLinezCreditNote.CreateParamsLine  s    C  	 !%%	 's++	 c""	 !D
 	
	 677	 =>>	 !%%	 )--	r1   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)$CreditNote.CreateParamsLineTaxAmountr(   r`   rS   Nr+   r,   r-   r.   r/   ra   r0   r1   r2   CreateParamsLineTaxAmountr   .  %    	 	 	r1   r   c                   0    e Zd ZU ee   ed<   	 ee   ed<   y)r~   r;   r=   Nr+   r,   r-   r   r.   r/   ra   r0   r1   r2   CreateParamsRefundzCreditNote.CreateParamsRefund<  $    $S))	 C  	r1   r   c                       e Zd ZU ee   ed<   y)r   rX   Nr+   r,   r-   r   ra   r/   r0   r1   r2   CreateParamsShippingCostz#CreditNote.CreateParamsShippingCostF      "3''	r1   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_beforerp   limitstarting_afterN)r+   r,   r-   r   ra   r/   r   r.   r0   r1   r2   ListLinesParamsr   L  sL    "3''	 DI&&	 3	 $C((	r1   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   rp   rq   r   r   N)r+   r,   r-   r   r/   ra   r   r.   r0   r1   r2   
ListParamsr   ^  s    ?@@	 c""	 #3''	 DI&&	 S!!	 3	 $C((	r1   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/   r0   r1   r2   ListParamsCreatedr   |  sH    	 	 	 	r1   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.ModifyParamsrp   rt   ru   N)r+   r,   r-   r   r   ra   r/   r   r0   r1   r2   ModifyParamsr     sB    DI&&	 #	 d38n--	r1   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d      ed<   	 ed   ed<   	 ee   ed<   y)CreditNote.PreviewLinesParamsr(   rk   rl   rm   ro   r   rp   rq   r   !CreditNote.PreviewLinesParamsLiners   rt   ru   rv   rw   r|   r}   #CreditNote.PreviewLinesParamsRefundr   )CreditNote.PreviewLinesParamsShippingCostr   r   N)
r+   r,   r-   r   r.   r/   r   ra   r   r   r0   r1   r2   PreviewLinesParamsr     sZ   C  	 #3''	 "#&&	  (= >??	 #3''	 DI&&	 	 3	 4 CDEE	 #	 d38n--	 (,,	 *
 	
	 #3''	 T"GHII	 ##NOO	 $C((	r1   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(   r   r   r   z<Literal['']|List[CreditNote.PreviewLinesParamsLineTaxAmount]r   r   r   r   r7   r   r   Nr   r0   r1   r2   PreviewLinesParamsLinez!CreditNote.PreviewLinesParamsLine  s    C  	 !%%	 's++	 c""	 !J
 	
	 677	 =>>	 !%%	 )--	r1   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)*CreditNote.PreviewLinesParamsLineTaxAmountr(   r`   rS   Nr   r0   r1   r2   PreviewLinesParamsLineTaxAmountr     r   r1   r   c                   0    e Zd ZU ee   ed<   	 ee   ed<   y)r   r;   r=   Nr   r0   r1   r2   PreviewLinesParamsRefundz#CreditNote.PreviewLinesParamsRefund  r   r1   r   c                       e Zd ZU ee   ed<   y)r   rX   Nr   r0   r1   r2   PreviewLinesParamsShippingCostz)CreditNote.PreviewLinesParamsShippingCost)  r   r1   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d      ed<   	 ed   ed<   y)CreditNote.PreviewParamsr(   rk   rl   rm   ro   rp   rq   CreditNote.PreviewParamsLiners   rt   ru   rv   rw   r|   r}   CreditNote.PreviewParamsRefundr   $CreditNote.PreviewParamsShippingCostr   Nr   r0   r1   r2   PreviewParamsr   /  s$   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 >?@@	 #	 d38n--	 (,,	 *
 	
	 #3''	 T"BCDD	 ##IJJ	r1   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(   r   r   r   z7Literal['']|List[CreditNote.PreviewParamsLineTaxAmount]r   r   r   r   r7   r   r   Nr   r0   r1   r2   PreviewParamsLinezCreditNote.PreviewParamsLinep  s    C  	 !%%	 's++	 c""	 !E
 	
	 677	 =>>	 !%%	 )--	r1   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)%CreditNote.PreviewParamsLineTaxAmountr(   r`   rS   Nr   r0   r1   r2   PreviewParamsLineTaxAmountr     r   r1   r   c                   0    e Zd ZU ee   ed<   	 ee   ed<   y)r   r;   r=   Nr   r0   r1   r2   PreviewParamsRefundzCreditNote.PreviewParamsRefund  r   r1   r   c                       e Zd ZU ee   ed<   y)r   rX   Nr   r0   r1   r2   PreviewParamsShippingCostz$CreditNote.PreviewParamsShippingCost  r   r1   r   c                   $    e Zd ZU eee      ed<   y)CreditNote.RetrieveParamsrp   Nr+   r,   r-   r   r   ra   r/   r0   r1   r2   RetrieveParamsr         DI&&	r1   r   c                   $    e Zd ZU eee      ed<   y)CreditNote.VoidCreditNoteParamsrp   Nr   r0   r1   r2   VoidCreditNoteParamsr     r   r1   r   r(   amount_shippingr   currencyr   r   r   customer_balance_transactiondiscount_amountdiscount_amountsrl   idr   rq   r   rs   livemodert   ru   numberobjectrv   pdfpretax_credit_amountsrw   r|   r   r   )issuedvoidstatussubtotalsubtotal_excluding_taxtotaltotal_excluding_taxtotal_taxes)post_paymentpre_paymentr7   	voided_atparamsrj   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     r2   createzCreditNote.createE  s6    (    
 	
r1   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r   r#   r   r   N)r   _static_request_asyncr   r   s     r2   create_asynczCreditNote.create_asyncb  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   	TypeErrorr7   r+   r   r   results      r2   listzCreditNote.list  s]     $$MMO % 

 &*-7<((* 
 r1   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  r7   r+   r  s      r2   
list_asynczCreditNote.list_async  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       r2   modifyzCreditNote.modify  sD     +b/:   
 	
r1   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       r2   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     r2   previewzCreditNote.preview  s0     *   
 	
r1   c                 Z   K   t        d| j                  dd|       d{         S 7 w)r  r#   r   r  r   N)r   r   r   s     r2   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     r2   preview_lineszCreditNote.preview_lines  s6     +,0   
 	
r1   c                 h   K   t        t        d   | j                  dd|       d{         S 7 w)r  r   r   r  r   N)r   r   r   r   s     r2   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       r2   retrievezCreditNote.retrieve	  s$     r$V$r1   c                 T   K    | |fi |}|j                          d{    |S 7 w)r  N)refresh_asyncr  s       r2   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      r2   _cls_void_credit_notez CreditNote._cls_void_credit_note  sB     ,33{23G   
 	
r1   c                      yr&  Nr0   r   r   s     r2   void_credit_notezCreditNote.void_credit_note/  s     	r1   c                      yr-  r0   selfr   s     r2   r/  zCreditNote.void_credit_note9  s     	r1   r+  c                     t        d| j                  ddj                  t        | j	                  d                  |            S )r&  r#   r   r'  r   r(  r   )r   _requestr)  r   r   r1  s     r2   r/  zCreditNote.void_credit_noteB  sP     MM,33"488D>2 4    	
 		
r1   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      r2   _cls_void_credit_note_asyncz&CreditNote._cls_void_credit_note_asyncT  sP      ++,33{23G ,  
 	
s   7AA
	Ac                    K   ywr-  r0   r.  s     r2   void_credit_note_asyncz!CreditNote.void_credit_note_asyncd  s      	   c                    K   ywr-  r0   r1  s     r2   r8  z!CreditNote.void_credit_note_asyncn  s      	r9  r6  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   r1  s     r2   r8  z!CreditNote.void_credit_note_asyncw  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      r2   
list_lineszCreditNote.list_lines  sP     +,6== +K 8 >     	
 		
r1   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   rA  s      r2   list_lines_asynczCreditNote.list_lines_async  s^      +,++6== +K 8 >   ,  	
 		
s   >A A	
	A)r   r   r   r   r   N)Er+   r,   r-   __doc__r%   r   r   r/   r	   r3   r8   r   r[   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   ra   r   r   r   r   boolr   classmethodr   r   r   r  r  r  r  r  r  r  r  r!  r$  r+  r   staticmethodr/  r   r6  r8  rB  rD  rZ   r0   r1   r2   r#   r#   #   s    5BK'-01A \ ( ;,| ;,z-B< -B^?~ ?B&9 &PI Y 9 . $^ <I $~ K^ KZ& &P) 9  ? ?B&I &PY i I  ~  K  L M j)) #+45#   >** 3- 	G Y'' *++ N 3- tCH~&& K M"" !% 
H   233 O	
 
 &\ L)) $%% M %SM) J "#& $x.)) /
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%r1   r#   N)4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   r<   stripe._shipping_rater   stripe._tax_rater   *stripe.billing._credit_balance_transactionr    r#   r0   r1   r2   <module>r]     s    B 4 * = O 2 . A : A A  @)O)'72(
 v&O,'%,'O 'Or1   