Class: Stripe::CreditNoteService

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

Defined Under Namespace

Classes: CreateParams, ListParams, PreviewParams, RetrieveParams, UpdateParams, VoidCreditNoteParams

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.



462
463
464
465
466
467
468
469
470
# File 'lib/stripe/services/credit_note_service.rb', line 462

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.



473
474
475
476
477
478
479
480
481
# File 'lib/stripe/services/credit_note_service.rb', line 473

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.



484
485
486
487
488
489
490
491
492
# File 'lib/stripe/services/credit_note_service.rb', line 484

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.



495
496
497
498
499
500
501
502
503
# File 'lib/stripe/services/credit_note_service.rb', line 495

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.



506
507
508
509
510
511
512
513
514
# File 'lib/stripe/services/credit_note_service.rb', line 506

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



517
518
519
520
521
522
523
524
525
# File 'lib/stripe/services/credit_note_service.rb', line 517

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