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: CreateParams, DiscountAmount, ListParams, ListPreviewLineItemsParams, PretaxCreditAmount, PreviewParams, Refund, ShippingCost, TotalTax, UpdateParams, VoidCreditNoteParams

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

#==, #[], #[]=, 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.



599
600
601
# File 'lib/stripe/resources/credit_note.rb', line 599

def amount
  @amount
end

#amount_shippingObject (readonly)

This is the sum of all the shipping amounts.



601
602
603
# File 'lib/stripe/resources/credit_note.rb', line 601

def amount_shipping
  @amount_shipping
end

#createdObject (readonly)

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



603
604
605
# File 'lib/stripe/resources/credit_note.rb', line 603

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).



605
606
607
# File 'lib/stripe/resources/credit_note.rb', line 605

def currency
  @currency
end

#customerObject (readonly)

ID of the customer.



607
608
609
# File 'lib/stripe/resources/credit_note.rb', line 607

def customer
  @customer
end

#customer_accountObject (readonly)

ID of the account.



609
610
611
# File 'lib/stripe/resources/credit_note.rb', line 609

def 
  @customer_account
end

#customer_balance_transactionObject (readonly)

Customer balance transaction related to this credit note.



611
612
613
# File 'lib/stripe/resources/credit_note.rb', line 611

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.



613
614
615
# File 'lib/stripe/resources/credit_note.rb', line 613

def discount_amount
  @discount_amount
end

#discount_amountsObject (readonly)

The aggregate amounts calculated per discount for all line items.



615
616
617
# File 'lib/stripe/resources/credit_note.rb', line 615

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.



617
618
619
# File 'lib/stripe/resources/credit_note.rb', line 617

def effective_at
  @effective_at
end

#idObject (readonly)

Unique identifier for the object.



619
620
621
# File 'lib/stripe/resources/credit_note.rb', line 619

def id
  @id
end

#invoiceObject (readonly)

ID of the invoice.



621
622
623
# File 'lib/stripe/resources/credit_note.rb', line 621

def invoice
  @invoice
end

#linesObject (readonly)

Line items that make up the credit note



623
624
625
# File 'lib/stripe/resources/credit_note.rb', line 623

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.



625
626
627
# File 'lib/stripe/resources/credit_note.rb', line 625

def livemode
  @livemode
end

#memoObject (readonly)

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



627
628
629
# File 'lib/stripe/resources/credit_note.rb', line 627

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.



629
630
631
# File 'lib/stripe/resources/credit_note.rb', line 629

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.



631
632
633
# File 'lib/stripe/resources/credit_note.rb', line 631

def number
  @number
end

#objectObject (readonly)

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



633
634
635
# File 'lib/stripe/resources/credit_note.rb', line 633

def object
  @object
end

#out_of_band_amountObject (readonly)

Amount that was credited outside of Stripe.



635
636
637
# File 'lib/stripe/resources/credit_note.rb', line 635

def out_of_band_amount
  @out_of_band_amount
end

#pdfObject (readonly)

The link to download the PDF of the credit note.



637
638
639
# File 'lib/stripe/resources/credit_note.rb', line 637

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.



639
640
641
# File 'lib/stripe/resources/credit_note.rb', line 639

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.



641
642
643
# File 'lib/stripe/resources/credit_note.rb', line 641

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.



643
644
645
# File 'lib/stripe/resources/credit_note.rb', line 643

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`



645
646
647
# File 'lib/stripe/resources/credit_note.rb', line 645

def reason
  @reason
end

#refundsObject (readonly)

Refunds related to this credit note.



647
648
649
# File 'lib/stripe/resources/credit_note.rb', line 647

def refunds
  @refunds
end

#shipping_costObject (readonly)

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



649
650
651
# File 'lib/stripe/resources/credit_note.rb', line 649

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).



651
652
653
# File 'lib/stripe/resources/credit_note.rb', line 651

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.



653
654
655
# File 'lib/stripe/resources/credit_note.rb', line 653

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.



655
656
657
# File 'lib/stripe/resources/credit_note.rb', line 655

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.



657
658
659
# File 'lib/stripe/resources/credit_note.rb', line 657

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.



659
660
661
# File 'lib/stripe/resources/credit_note.rb', line 659

def total_excluding_tax
  @total_excluding_tax
end

#total_taxesObject (readonly)

The aggregate tax information for all line items.



661
662
663
# File 'lib/stripe/resources/credit_note.rb', line 661

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.



663
664
665
# File 'lib/stripe/resources/credit_note.rb', line 663

def type
  @type
end

#voided_atObject (readonly)

The time that the credit note was voided.



665
666
667
# File 'lib/stripe/resources/credit_note.rb', line 665

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.



680
681
682
# File 'lib/stripe/resources/credit_note.rb', line 680

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

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

Returns a list of credit notes.



685
686
687
# File 'lib/stripe/resources/credit_note.rb', line 685

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.



690
691
692
693
694
695
696
697
# File 'lib/stripe/resources/credit_note.rb', line 690

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.



700
701
702
703
704
705
706
707
# File 'lib/stripe/resources/credit_note.rb', line 700

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.



710
711
712
713
714
715
716
717
# File 'lib/stripe/resources/credit_note.rb', line 710

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).



730
731
732
733
734
735
736
737
# File 'lib/stripe/resources/credit_note.rb', line 730

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).



720
721
722
723
724
725
726
727
# File 'lib/stripe/resources/credit_note.rb', line 720

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