Class: Stripe::CreditNote

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List
Includes:
APIOperations::Save
Defined in:
lib/stripe/resources/credit_note.rb

Overview

Issue a credit note to adjust an invoice’s amount after the invoice is finalized.

Related guide: [Credit notes](stripe.com/docs/billing/invoices/credit-notes)

Defined Under Namespace

Classes: DiscountAmount, PretaxCreditAmount, Refund, ShippingCost, TotalTax

Constant Summary collapse

OBJECT_NAME =
"credit_note"

Constants inherited from StripeObject

StripeObject::RESERVED_FIELD_NAMES

Instance Attribute Summary collapse

Attributes inherited from APIResource

#save_with_parent

Attributes inherited from StripeObject

#last_response

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::List

list

Methods included from APIOperations::Save

included, #save

Methods inherited from APIResource

class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from StripeObject

#==, #[], #[]=, #_get_inner_class_type, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Stripe::StripeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject

Instance Attribute Details

#amountObject (readonly)

The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax.



143
144
145
# File 'lib/stripe/resources/credit_note.rb', line 143

def amount
  @amount
end

#amount_shippingObject (readonly)

This is the sum of all the shipping amounts.



145
146
147
# File 'lib/stripe/resources/credit_note.rb', line 145

def amount_shipping
  @amount_shipping
end

#createdObject (readonly)

Time at which the object was created. Measured in seconds since the Unix epoch.



147
148
149
# File 'lib/stripe/resources/credit_note.rb', line 147

def created
  @created
end

#currencyObject (readonly)

Three-letter [ISO currency code](www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](stripe.com/docs/currencies).



149
150
151
# File 'lib/stripe/resources/credit_note.rb', line 149

def currency
  @currency
end

#customerObject (readonly)

ID of the customer.



151
152
153
# File 'lib/stripe/resources/credit_note.rb', line 151

def customer
  @customer
end

#customer_balance_transactionObject (readonly)

Customer balance transaction related to this credit note.



153
154
155
# File 'lib/stripe/resources/credit_note.rb', line 153

def customer_balance_transaction
  @customer_balance_transaction
end

#discount_amountObject (readonly)

The integer amount in cents (or local equivalent) representing the total amount of discount that was credited.



155
156
157
# File 'lib/stripe/resources/credit_note.rb', line 155

def discount_amount
  @discount_amount
end

#discount_amountsObject (readonly)

The aggregate amounts calculated per discount for all line items.



157
158
159
# File 'lib/stripe/resources/credit_note.rb', line 157

def discount_amounts
  @discount_amounts
end

#effective_atObject (readonly)

The date when this credit note is in effect. Same as ‘created` unless overwritten. When defined, this value replaces the system-generated ’Date of issue’ printed on the credit note PDF.



159
160
161
# File 'lib/stripe/resources/credit_note.rb', line 159

def effective_at
  @effective_at
end

#idObject (readonly)

Unique identifier for the object.



161
162
163
# File 'lib/stripe/resources/credit_note.rb', line 161

def id
  @id
end

#invoiceObject (readonly)

ID of the invoice.



163
164
165
# File 'lib/stripe/resources/credit_note.rb', line 163

def invoice
  @invoice
end

#linesObject (readonly)

Line items that make up the credit note



165
166
167
# File 'lib/stripe/resources/credit_note.rb', line 165

def lines
  @lines
end

#livemodeObject (readonly)

Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.



167
168
169
# File 'lib/stripe/resources/credit_note.rb', line 167

def livemode
  @livemode
end

#memoObject (readonly)

Customer-facing text that appears on the credit note PDF.



169
170
171
# File 'lib/stripe/resources/credit_note.rb', line 169

def memo
  @memo
end

#metadataObject (readonly)

Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



171
172
173
# File 'lib/stripe/resources/credit_note.rb', line 171

def 
  @metadata
end

#numberObject (readonly)

A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.



173
174
175
# File 'lib/stripe/resources/credit_note.rb', line 173

def number
  @number
end

#objectObject (readonly)

String representing the object’s type. Objects of the same type share the same value.



175
176
177
# File 'lib/stripe/resources/credit_note.rb', line 175

def object
  @object
end

#out_of_band_amountObject (readonly)

Amount that was credited outside of Stripe.



177
178
179
# File 'lib/stripe/resources/credit_note.rb', line 177

def out_of_band_amount
  @out_of_band_amount
end

#pdfObject (readonly)

The link to download the PDF of the credit note.



179
180
181
# File 'lib/stripe/resources/credit_note.rb', line 179

def pdf
  @pdf
end

#post_payment_amountObject (readonly)

The amount of the credit note that was refunded to the customer, credited to the customer’s balance, credited outside of Stripe, or any combination thereof.



181
182
183
# File 'lib/stripe/resources/credit_note.rb', line 181

def post_payment_amount
  @post_payment_amount
end

#pre_payment_amountObject (readonly)

The amount of the credit note by which the invoice’s ‘amount_remaining` and `amount_due` were reduced.



183
184
185
# File 'lib/stripe/resources/credit_note.rb', line 183

def pre_payment_amount
  @pre_payment_amount
end

#pretax_credit_amountsObject (readonly)

The pretax credit amounts (ex: discount, credit grants, etc) for all line items.



185
186
187
# File 'lib/stripe/resources/credit_note.rb', line 185

def pretax_credit_amounts
  @pretax_credit_amounts
end

#reasonObject (readonly)

Reason for issuing this credit note, one of ‘duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`



187
188
189
# File 'lib/stripe/resources/credit_note.rb', line 187

def reason
  @reason
end

#refundsObject (readonly)

Refunds related to this credit note.



189
190
191
# File 'lib/stripe/resources/credit_note.rb', line 189

def refunds
  @refunds
end

#shipping_costObject (readonly)

The details of the cost of shipping, including the ShippingRate applied to the invoice.



191
192
193
# File 'lib/stripe/resources/credit_note.rb', line 191

def shipping_cost
  @shipping_cost
end

#statusObject (readonly)

Status of this credit note, one of ‘issued` or `void`. Learn more about [voiding credit notes](stripe.com/docs/billing/invoices/credit-notes#voiding).



193
194
195
# File 'lib/stripe/resources/credit_note.rb', line 193

def status
  @status
end

#subtotalObject (readonly)

The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts.



195
196
197
# File 'lib/stripe/resources/credit_note.rb', line 195

def subtotal
  @subtotal
end

#subtotal_excluding_taxObject (readonly)

The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts.



197
198
199
# File 'lib/stripe/resources/credit_note.rb', line 197

def subtotal_excluding_tax
  @subtotal_excluding_tax
end

#totalObject (readonly)

The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount.



199
200
201
# File 'lib/stripe/resources/credit_note.rb', line 199

def total
  @total
end

#total_excluding_taxObject (readonly)

The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts.



201
202
203
# File 'lib/stripe/resources/credit_note.rb', line 201

def total_excluding_tax
  @total_excluding_tax
end

#total_taxesObject (readonly)

The aggregate tax information for all line items.



203
204
205
# File 'lib/stripe/resources/credit_note.rb', line 203

def total_taxes
  @total_taxes
end

#typeObject (readonly)

Type of this credit note, one of ‘pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid.



205
206
207
# File 'lib/stripe/resources/credit_note.rb', line 205

def type
  @type
end

#voided_atObject (readonly)

The time that the credit note was voided.



207
208
209
# File 'lib/stripe/resources/credit_note.rb', line 207

def voided_at
  @voided_at
end

Class Method Details

.create(params = {}, opts = {}) ⇒ Object

Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice’s amount_remaining (and amount_due), but not below zero. This amount is indicated by the credit note’s pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following:

Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds). 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).

The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount.

You may issue multiple credit notes for an invoice. Each credit note may increment the invoice’s pre_payment_credit_notes_amount, post_payment_credit_notes_amount, or both, depending on the invoice’s amount_remaining at the time of credit note creation.



222
223
224
# File 'lib/stripe/resources/credit_note.rb', line 222

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/credit_notes", params: params, opts: opts)
end

.field_remappingsObject



291
292
293
# File 'lib/stripe/resources/credit_note.rb', line 291

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



281
282
283
284
285
286
287
288
289
# File 'lib/stripe/resources/credit_note.rb', line 281

def self.inner_class_types
  @inner_class_types = {
    discount_amounts: DiscountAmount,
    pretax_credit_amounts: PretaxCreditAmount,
    refunds: Refund,
    shipping_cost: ShippingCost,
    total_taxes: TotalTax,
  }
end

.list(params = {}, opts = {}) ⇒ Object

Returns a list of credit notes.



227
228
229
# File 'lib/stripe/resources/credit_note.rb', line 227

def self.list(params = {}, opts = {})
  request_stripe_object(method: :get, path: "/v1/credit_notes", params: params, opts: opts)
end

.list_preview_line_items(params = {}, opts = {}) ⇒ Object

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.



232
233
234
235
236
237
238
239
# File 'lib/stripe/resources/credit_note.rb', line 232

def self.list_preview_line_items(params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: "/v1/credit_notes/preview/lines",
    params: params,
    opts: opts
  )
end

.object_nameObject



14
15
16
# File 'lib/stripe/resources/credit_note.rb', line 14

def self.object_name
  "credit_note"
end

.preview(params = {}, opts = {}) ⇒ Object

Get a preview of a credit note without creating it.



242
243
244
245
246
247
248
249
# File 'lib/stripe/resources/credit_note.rb', line 242

def self.preview(params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: "/v1/credit_notes/preview",
    params: params,
    opts: opts
  )
end

.update(id, params = {}, opts = {}) ⇒ Object

Updates an existing credit note.



252
253
254
255
256
257
258
259
# File 'lib/stripe/resources/credit_note.rb', line 252

def self.update(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/credit_notes/%<id>s", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
end

.void_credit_note(id, params = {}, opts = {}) ⇒ Object

Marks a credit note as void. Learn more about [voiding credit notes](docs.stripe.com/docs/billing/invoices/credit-notes#voiding).



272
273
274
275
276
277
278
279
# File 'lib/stripe/resources/credit_note.rb', line 272

def self.void_credit_note(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/credit_notes/%<id>s/void", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
end

Instance Method Details

#void_credit_note(params = {}, opts = {}) ⇒ Object

Marks a credit note as void. Learn more about [voiding credit notes](docs.stripe.com/docs/billing/invoices/credit-notes#voiding).



262
263
264
265
266
267
268
269
# File 'lib/stripe/resources/credit_note.rb', line 262

def void_credit_note(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/credit_notes/%<id>s/void", { id: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end