Class: Stripe::CreditNoteService

Inherits:
StripeService show all
Defined in:
lib/stripe/services/credit_note_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from StripeService

#request, #request_stream

Constructor Details

#initialize(requestor) ⇒ CreditNoteService

Returns a new instance of CreditNoteService.



8
9
10
11
12
# File 'lib/stripe/services/credit_note_service.rb', line 8

def initialize(requestor)
  super
  @line_items = Stripe::CreditNoteLineItemService.new(@requestor)
  @preview_lines = Stripe::CreditNotePreviewLinesService.new(@requestor)
end

Instance Attribute Details

#line_itemsObject (readonly)

Returns the value of attribute line_items.



6
7
8
# File 'lib/stripe/services/credit_note_service.rb', line 6

def line_items
  @line_items
end

#preview_linesObject (readonly)

Returns the value of attribute preview_lines.



6
7
8
# File 'lib/stripe/services/credit_note_service.rb', line 6

def preview_lines
  @preview_lines
end

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



27
28
29
30
31
32
33
34
35
# File 'lib/stripe/services/credit_note_service.rb', line 27

def create(params = {}, opts = {})
  request(
    method: :post,
    path: "/v1/credit_notes",
    params: params,
    opts: opts,
    base_address: :api
  )
end

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

Returns a list of credit notes.



38
39
40
41
42
43
44
45
46
# File 'lib/stripe/services/credit_note_service.rb', line 38

def list(params = {}, opts = {})
  request(
    method: :get,
    path: "/v1/credit_notes",
    params: params,
    opts: opts,
    base_address: :api
  )
end

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

Get a preview of a credit note without creating it.



49
50
51
52
53
54
55
56
57
# File 'lib/stripe/services/credit_note_service.rb', line 49

def preview(params = {}, opts = {})
  request(
    method: :get,
    path: "/v1/credit_notes/preview",
    params: params,
    opts: opts,
    base_address: :api
  )
end

#retrieve(id, params = {}, opts = {}) ⇒ Object

Retrieves the credit note object with the given identifier.



60
61
62
63
64
65
66
67
68
# File 'lib/stripe/services/credit_note_service.rb', line 60

def retrieve(id, params = {}, opts = {})
  request(
    method: :get,
    path: format("/v1/credit_notes/%<id>s", { id: CGI.escape(id) }),
    params: params,
    opts: opts,
    base_address: :api
  )
end

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

Updates an existing credit note.



71
72
73
74
75
76
77
78
79
# File 'lib/stripe/services/credit_note_service.rb', line 71

def update(id, params = {}, opts = {})
  request(
    method: :post,
    path: format("/v1/credit_notes/%<id>s", { id: CGI.escape(id) }),
    params: params,
    opts: opts,
    base_address: :api
  )
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).



82
83
84
85
86
87
88
89
90
# File 'lib/stripe/services/credit_note_service.rb', line 82

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