Class: Nombaone::Resources::Invoices

Inherits:
BaseResource show all
Defined in:
lib/nombaone/resources/invoices.rb,
sig/nombaone/resources.rbs

Overview

Invoices — read what the billing engine produced; void what should never be collected. You never create invoices — subscription cycles do; amounts are locked at finalization. All amounts are integer kobo.

Instance Method Summary collapse

Methods inherited from BaseResource

#encode, #initialize, #request, #request_page

Constructor Details

This class inherits a constructor from Nombaone::Resources::BaseResource

Instance Method Details

#list(customer_id: OMIT, subscription_id: OMIT, status: OMIT, limit: OMIT, cursor: OMIT, request_options: {}) ⇒ Page<NombaObject>

List invoices, newest first.

Examples:

nombaone.invoices.list(status: "open").each { |inv| puts inv.amount_due_in_kobo }

Parameters:

  • customer_id (String) (defaults to: OMIT)

    filter to one customer (nbo…cus).

  • subscription_id (String) (defaults to: OMIT)

    filter to one subscription (nbo…sub).

  • status (String) (defaults to: OMIT)

    the list filter accepts "draft", "open", "paid", "void", "uncollectible" (note: no "partially_paid", though invoice objects can carry that status).

  • limit (Integer) (defaults to: OMIT)

    page size, 1–100 (API default 20).

  • cursor (String) (defaults to: OMIT)

    opaque cursor from a previous page.

  • request_options (Hash) (defaults to: {})

Returns:



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/nombaone/resources/invoices.rb', line 33

def list(customer_id: OMIT, subscription_id: OMIT, status: OMIT, limit: OMIT, cursor: OMIT,
         request_options: {})
  request_page("/invoices",
               query: {
                 customer_id: customer_id,
                 subscription_id: subscription_id,
                 status: status,
                 limit: limit,
                 cursor: cursor,
               },
               options: request_options)
end

#retrieve(id, request_options: {}) ⇒ NombaObject

Retrieve an invoice by id.

Parameters:

  • id (String)

    nbo…inv

  • request_options (Hash) (defaults to: {})
  • request_options: (Nombaone::request_options) (defaults to: {})

Returns:

Raises:



15
16
17
# File 'lib/nombaone/resources/invoices.rb', line 15

def retrieve(id, request_options: {})
  request(:get, "/invoices/#{encode(id)}", options: request_options)
end

#void(id, comment: OMIT, request_options: {}) ⇒ NombaObject

Void an open, unpaid invoice. Paid invoices can't be voided — refund the settlement instead.

Parameters:

  • id (String)

    nbo…inv

  • comment (String) (defaults to: OMIT)
  • request_options (Hash) (defaults to: {})
  • comment: (String) (defaults to: OMIT)
  • request_options: (Nombaone::request_options) (defaults to: {})

Returns:

Raises:



55
56
57
58
# File 'lib/nombaone/resources/invoices.rb', line 55

def void(id, comment: OMIT, request_options: {})
  request(:post, "/invoices/#{encode(id)}/void",
          body: { comment: comment }, options: request_options)
end