View Source Stripe.CreditNote (stripity_stripe v3.2.0)
Issue a credit note to adjust an invoice's amount after the invoice is finalized.
Related guide: Credit notes
Summary
Types
When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.
The credit_note
type.
Functions
Issue a credit note to adjust the amount of a finalized invoice. For a status=open
invoice, a credit note reducesits 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
Returns a list of credit notes.
Get a preview of a credit note without creating it.
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.
Retrieves the credit note object with the given identifier.
Updates an existing credit note.
Marks a credit note as void. Learn more about voiding credit notes.
Types
@type lines() :: %{ optional(:amount) => integer(), optional(:description) => binary(), optional(:invoice_line_item) => binary(), optional(:quantity) => integer(), optional(:tax_amounts) => [tax_amounts()] | binary(), optional(:tax_rates) => [binary()] | binary(), optional(:type) => :custom_line_item | :invoice_line_item, optional(:unit_amount) => integer(), optional(:unit_amount_decimal) => binary() }
@type shipping_cost() :: %{optional(:shipping_rate) => binary()}
When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.
@type t() :: %Stripe.CreditNote{ amount: integer(), amount_shipping: integer(), created: integer(), currency: binary(), customer: binary() | Stripe.Customer.t() | Stripe.DeletedCustomer.t(), customer_balance_transaction: (binary() | Stripe.CustomerBalanceTransaction.t()) | nil, discount_amount: integer(), discount_amounts: term(), effective_at: integer() | nil, id: binary(), invoice: binary() | Stripe.Invoice.t(), lines: term(), livemode: boolean(), memo: binary() | nil, metadata: term() | nil, number: binary(), object: binary(), out_of_band_amount: integer() | nil, pdf: binary(), reason: binary() | nil, refund: (binary() | Stripe.Refund.t()) | nil, shipping_cost: term() | nil, status: binary(), subtotal: integer(), subtotal_excluding_tax: integer() | nil, tax_amounts: term(), total: integer(), total_excluding_tax: integer() | nil, type: binary(), voided_at: integer() | nil }
The credit_note
type.
amount
The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax.amount_shipping
This is the sum of all the shipping amounts.created
Time at which the object was created. Measured in seconds since the Unix epoch.currency
Three-letter ISO currency code, in lowercase. Must be a supported currency.customer
ID of the customer.customer_balance_transaction
Customer balance transaction related to this credit note.discount_amount
The integer amount in cents (or local equivalent) representing the total amount of discount that was credited.discount_amounts
The aggregate amounts calculated per discount for all line items.effective_at
The date when this credit note is in effect. Same ascreated
unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.id
Unique identifier for the object.invoice
ID of the invoice.lines
Line items that make up the credit notelivemode
Has the valuetrue
if the object exists in live mode or the valuefalse
if the object exists in test mode.memo
Customer-facing text that appears on the credit note PDF.metadata
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.number
A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.object
String representing the object's type. Objects of the same type share the same value.out_of_band_amount
Amount that was credited outside of Stripe.pdf
The link to download the PDF of the credit note.reason
Reason for issuing this credit note, one ofduplicate
,fraudulent
,order_change
, orproduct_unsatisfactory
refund
Refund related to this credit note.shipping_cost
The details of the cost of shipping, including the ShippingRate applied to the invoice.status
Status of this credit note, one ofissued
orvoid
. Learn more about voiding credit notes.subtotal
The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts.subtotal_excluding_tax
The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts.tax_amounts
The aggregate amounts calculated per tax rate for all line items.total
The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount.total_excluding_tax
The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts.type
Type of this credit note, one ofpre_payment
orpost_payment
. Apre_payment
credit note means it was issued when the invoice was open. Apost_payment
credit note means it was issued when the invoice was paid.voided_at
The time that the credit note was voided.
Functions
@spec create( params :: %{ optional(:amount) => integer(), optional(:credit_amount) => integer(), optional(:effective_at) => integer(), optional(:expand) => [binary()], optional(:invoice) => binary(), optional(:lines) => [lines()], optional(:memo) => binary(), optional(:metadata) => %{optional(binary()) => binary()}, optional(:out_of_band_amount) => integer(), optional(:reason) => :duplicate | :fraudulent | :order_change | :product_unsatisfactory, optional(:refund) => binary(), optional(:refund_amount) => integer(), optional(:shipping_cost) => shipping_cost() }, opts :: Keyword.t() ) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Issue a credit note to adjust the amount of a finalized invoice. For a status=open
invoice, a credit note reducesits 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 (usingrefund
). - 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.
@spec list( params :: %{ optional(:customer) => binary(), optional(:ending_before) => binary(), optional(:expand) => [binary()], optional(:invoice) => binary(), optional(:limit) => integer(), optional(:starting_after) => binary() }, opts :: Keyword.t() ) :: {:ok, Stripe.List.t(t())} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Returns a list of credit notes.
Details
- Method:
get
- Path:
/v1/credit_notes
@spec preview( params :: %{ optional(:amount) => integer(), optional(:credit_amount) => integer(), optional(:effective_at) => integer(), optional(:expand) => [binary()], optional(:invoice) => binary(), optional(:lines) => [lines()], optional(:memo) => binary(), optional(:metadata) => %{optional(binary()) => binary()}, optional(:out_of_band_amount) => integer(), optional(:reason) => :duplicate | :fraudulent | :order_change | :product_unsatisfactory, optional(:refund) => binary(), optional(:refund_amount) => integer(), optional(:shipping_cost) => shipping_cost() }, opts :: Keyword.t() ) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Get a preview of a credit note without creating it.
Details
- Method:
get
- Path:
/v1/credit_notes/preview
@spec preview_lines( params :: %{ optional(:amount) => integer(), optional(:credit_amount) => integer(), optional(:effective_at) => integer(), optional(:ending_before) => binary(), optional(:expand) => [binary()], optional(:invoice) => binary(), optional(:limit) => integer(), optional(:lines) => [lines()], optional(:memo) => binary(), optional(:metadata) => %{optional(binary()) => binary()}, optional(:out_of_band_amount) => integer(), optional(:reason) => :duplicate | :fraudulent | :order_change | :product_unsatisfactory, optional(:refund) => binary(), optional(:refund_amount) => integer(), optional(:shipping_cost) => shipping_cost(), optional(:starting_after) => binary() }, opts :: Keyword.t() ) :: {:ok, Stripe.List.t(Stripe.CreditNoteLineItem.t())} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
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.
Details
- Method:
get
- Path:
/v1/credit_notes/preview/lines
@spec retrieve( id :: binary(), params :: %{optional(:expand) => [binary()]}, opts :: Keyword.t() ) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Retrieves the credit note object with the given identifier.
Details
- Method:
get
- Path:
/v1/credit_notes/{id}
@spec update( id :: binary(), params :: %{ optional(:expand) => [binary()], optional(:memo) => binary(), optional(:metadata) => %{optional(binary()) => binary()} }, opts :: Keyword.t() ) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Updates an existing credit note.
Details
- Method:
post
- Path:
/v1/credit_notes/{id}
@spec void_credit_note( id :: binary(), params :: %{optional(:expand) => [binary()]}, opts :: Keyword.t() ) :: {:ok, t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
Marks a credit note as void. Learn more about voiding credit notes.
Details
- Method:
post
- Path:
/v1/credit_notes/{id}/void