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(requestor)
  @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. For a status=open invoice, a credit note reduces its 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 (using refund). 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.



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

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.



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

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.



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

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.



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

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.



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

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](stripe.com/docs/billing/invoices/credit-notes#voiding).



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

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