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

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



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

def amount
  @amount
end

#amount_shippingObject (readonly)

This is the sum of all the shipping amounts.



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

def amount_shipping
  @amount_shipping
end

#createdObject (readonly)

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



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

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



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

def currency
  @currency
end

#customerObject (readonly)

ID of the customer.



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

def customer
  @customer
end

#customer_accountObject (readonly)

ID of the account.



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

def 
  @customer_account
end

#customer_balance_transactionObject (readonly)

Customer balance transaction related to this credit note.



667
668
669
# File 'lib/stripe/resources/credit_note.rb', line 667

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.



669
670
671
# File 'lib/stripe/resources/credit_note.rb', line 669

def discount_amount
  @discount_amount
end

#discount_amountsObject (readonly)

The aggregate amounts calculated per discount for all line items.



671
672
673
# File 'lib/stripe/resources/credit_note.rb', line 671

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.



673
674
675
# File 'lib/stripe/resources/credit_note.rb', line 673

def effective_at
  @effective_at
end

#idObject (readonly)

Unique identifier for the object.



675
676
677
# File 'lib/stripe/resources/credit_note.rb', line 675

def id
  @id
end

#invoiceObject (readonly)

ID of the invoice.



677
678
679
# File 'lib/stripe/resources/credit_note.rb', line 677

def invoice
  @invoice
end

#linesObject (readonly)

Line items that make up the credit note



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

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.



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

def livemode
  @livemode
end

#memoObject (readonly)

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



683
684
685
# File 'lib/stripe/resources/credit_note.rb', line 683

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.



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

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.



687
688
689
# File 'lib/stripe/resources/credit_note.rb', line 687

def number
  @number
end

#objectObject (readonly)

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



689
690
691
# File 'lib/stripe/resources/credit_note.rb', line 689

def object
  @object
end

#out_of_band_amountObject (readonly)

Amount that was credited outside of Stripe.



691
692
693
# File 'lib/stripe/resources/credit_note.rb', line 691

def out_of_band_amount
  @out_of_band_amount
end

#pdfObject (readonly)

The link to download the PDF of the credit note.



693
694
695
# File 'lib/stripe/resources/credit_note.rb', line 693

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.



695
696
697
# File 'lib/stripe/resources/credit_note.rb', line 695

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.



697
698
699
# File 'lib/stripe/resources/credit_note.rb', line 697

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.



699
700
701
# File 'lib/stripe/resources/credit_note.rb', line 699

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`



701
702
703
# File 'lib/stripe/resources/credit_note.rb', line 701

def reason
  @reason
end

#refundsObject (readonly)

Refunds related to this credit note.



703
704
705
# File 'lib/stripe/resources/credit_note.rb', line 703

def refunds
  @refunds
end

#shipping_costObject (readonly)

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



705
706
707
# File 'lib/stripe/resources/credit_note.rb', line 705

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



707
708
709
# File 'lib/stripe/resources/credit_note.rb', line 707

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.



709
710
711
# File 'lib/stripe/resources/credit_note.rb', line 709

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.



711
712
713
# File 'lib/stripe/resources/credit_note.rb', line 711

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.



713
714
715
# File 'lib/stripe/resources/credit_note.rb', line 713

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.



715
716
717
# File 'lib/stripe/resources/credit_note.rb', line 715

def total_excluding_tax
  @total_excluding_tax
end

#total_taxesObject (readonly)

The aggregate tax information for all line items.



717
718
719
# File 'lib/stripe/resources/credit_note.rb', line 717

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.



719
720
721
# File 'lib/stripe/resources/credit_note.rb', line 719

def type
  @type
end

#voided_atObject (readonly)

The time that the credit note was voided.



721
722
723
# File 'lib/stripe/resources/credit_note.rb', line 721

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.



736
737
738
# File 'lib/stripe/resources/credit_note.rb', line 736

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

.field_remappingsObject



805
806
807
# File 'lib/stripe/resources/credit_note.rb', line 805

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



795
796
797
798
799
800
801
802
803
# File 'lib/stripe/resources/credit_note.rb', line 795

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.



741
742
743
# File 'lib/stripe/resources/credit_note.rb', line 741

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.



746
747
748
749
750
751
752
753
# File 'lib/stripe/resources/credit_note.rb', line 746

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.



756
757
758
759
760
761
762
763
# File 'lib/stripe/resources/credit_note.rb', line 756

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.



766
767
768
769
770
771
772
773
# File 'lib/stripe/resources/credit_note.rb', line 766

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



786
787
788
789
790
791
792
793
# File 'lib/stripe/resources/credit_note.rb', line 786

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



776
777
778
779
780
781
782
783
# File 'lib/stripe/resources/credit_note.rb', line 776

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