Class: Orb::Resources::Invoices
- Inherits:
-
Object
- Object
- Orb::Resources::Invoices
- Defined in:
- lib/orb/resources/invoices.rb
Instance Method Summary collapse
-
#create(currency: , invoice_date: , line_items: , customer_id: nil, discount: nil, external_customer_id: nil, memo: nil, metadata: nil, net_terms: nil, will_auto_issue: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceCreateParams for more details.
-
#fetch(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint is used to fetch an [‘Invoice`](/core-concepts#invoice) given an identifier.
-
#fetch_upcoming(subscription_id: , request_options: {}) ⇒ Orb::Models::InvoiceFetchUpcomingResponse
This endpoint can be used to fetch the upcoming [invoice](/core-concepts#invoice) for the current billing period given a subscription.
-
#initialize(client:) ⇒ Invoices
constructor
private
A new instance of Invoices.
-
#issue(invoice_id, synchronous: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceIssueParams for more details.
-
#list(amount: nil, amount_gt: nil, amount_lt: nil, cursor: nil, customer_id: nil, date_type: nil, due_date: nil, due_date_window: nil, due_date_gt: nil, due_date_lt: nil, external_customer_id: nil, invoice_date_gt: nil, invoice_date_gte: nil, invoice_date_lt: nil, invoice_date_lte: nil, is_recurring: nil, limit: nil, status: nil, subscription_id: nil, request_options: {}) ⇒ Orb::Internal::Page<Orb::Models::Invoice>
Some parameter documentations has been truncated, see Models::InvoiceListParams for more details.
-
#mark_paid(invoice_id, payment_received_date: , external_id: nil, notes: nil, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint allows an invoice’s status to be set the ‘paid` status.
-
#pay(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint collects payment for an invoice using the customer’s default payment method.
-
#update(invoice_id, metadata: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceUpdateParams for more details.
-
#void(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint allows an invoice’s status to be set the ‘void` status.
Constructor Details
#initialize(client:) ⇒ Invoices
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Invoices.
314 315 316 |
# File 'lib/orb/resources/invoices.rb', line 314 def initialize(client:) @client = client end |
Instance Method Details
#create(currency: , invoice_date: , line_items: , customer_id: nil, discount: nil, external_customer_id: nil, memo: nil, metadata: nil, net_terms: nil, will_auto_issue: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceCreateParams for more details.
This endpoint is used to create a one-off invoice for a customer.
38 39 40 41 |
# File 'lib/orb/resources/invoices.rb', line 38 def create(params) parsed, = Orb::InvoiceCreateParams.dump_request(params) @client.request(method: :post, path: "invoices", body: parsed, model: Orb::Invoice, options: ) end |
#fetch(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint is used to fetch an [‘Invoice`](/core-concepts#invoice) given an identifier.
169 170 171 172 173 174 175 176 |
# File 'lib/orb/resources/invoices.rb', line 169 def fetch(invoice_id, params = {}) @client.request( method: :get, path: ["invoices/%1$s", invoice_id], model: Orb::Invoice, options: params[:request_options] ) end |
#fetch_upcoming(subscription_id: , request_options: {}) ⇒ Orb::Models::InvoiceFetchUpcomingResponse
This endpoint can be used to fetch the upcoming [invoice](/core-concepts#invoice) for the current billing period given a subscription.
190 191 192 193 194 195 196 197 198 199 |
# File 'lib/orb/resources/invoices.rb', line 190 def fetch_upcoming(params) parsed, = Orb::InvoiceFetchUpcomingParams.dump_request(params) @client.request( method: :get, path: "invoices/upcoming", query: parsed, model: Orb::Models::InvoiceFetchUpcomingResponse, options: ) end |
#issue(invoice_id, synchronous: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceIssueParams for more details.
This endpoint allows an eligible invoice to be issued manually. This is only possible with invoices where status is ‘draft`, `will_auto_issue` is false, and an `eligible_to_issue_at` is a time in the past. Issuing an invoice could possibly trigger side effects, some of which could be customer-visible (e.g. sending emails, auto-collecting payment, syncing the invoice to external providers, etc).
222 223 224 225 226 227 228 229 230 231 |
# File 'lib/orb/resources/invoices.rb', line 222 def issue(invoice_id, params = {}) parsed, = Orb::InvoiceIssueParams.dump_request(params) @client.request( method: :post, path: ["invoices/%1$s/issue", invoice_id], body: parsed, model: Orb::Invoice, options: ) end |
#list(amount: nil, amount_gt: nil, amount_lt: nil, cursor: nil, customer_id: nil, date_type: nil, due_date: nil, due_date_window: nil, due_date_gt: nil, due_date_lt: nil, external_customer_id: nil, invoice_date_gt: nil, invoice_date_gte: nil, invoice_date_lt: nil, invoice_date_lte: nil, is_recurring: nil, limit: nil, status: nil, subscription_id: nil, request_options: {}) ⇒ Orb::Internal::Page<Orb::Models::Invoice>
Some parameter documentations has been truncated, see Models::InvoiceListParams for more details.
This endpoint returns a list of all [‘Invoice`](/core-concepts#invoice)s for an account in a list format.
The list of invoices is ordered starting from the most recently issued invoice date. The response also includes [‘pagination_metadata`](/api-reference/pagination), which lets the caller retrieve the next page of results if they exist.
By default, this only returns invoices that are ‘issued`, `paid`, or `synced`.
When fetching any ‘draft` invoices, this returns the last-computed invoice values for each draft invoice, which may not always be up-to-date since Orb regularly refreshes invoices asynchronously.
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/orb/resources/invoices.rb', line 137 def list(params = {}) parsed, = Orb::InvoiceListParams.dump_request(params) @client.request( method: :get, path: "invoices", query: parsed.transform_keys( amount_gt: "amount[gt]", amount_lt: "amount[lt]", due_date_gt: "due_date[gt]", due_date_lt: "due_date[lt]", invoice_date_gt: "invoice_date[gt]", invoice_date_gte: "invoice_date[gte]", invoice_date_lt: "invoice_date[lt]", invoice_date_lte: "invoice_date[lte]" ), page: Orb::Internal::Page, model: Orb::Invoice, options: ) end |
#mark_paid(invoice_id, payment_received_date: , external_id: nil, notes: nil, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint allows an invoice’s status to be set the ‘paid` status. This can only be done to invoices that are in the `issued` status.
251 252 253 254 255 256 257 258 259 260 |
# File 'lib/orb/resources/invoices.rb', line 251 def mark_paid(invoice_id, params) parsed, = Orb::InvoiceMarkPaidParams.dump_request(params) @client.request( method: :post, path: ["invoices/%1$s/mark_paid", invoice_id], body: parsed, model: Orb::Invoice, options: ) end |
#pay(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint collects payment for an invoice using the customer’s default payment method. This action can only be taken on invoices with status “issued”.
273 274 275 276 277 278 279 280 |
# File 'lib/orb/resources/invoices.rb', line 273 def pay(invoice_id, params = {}) @client.request( method: :post, path: ["invoices/%1$s/pay", invoice_id], model: Orb::Invoice, options: params[:request_options] ) end |
#update(invoice_id, metadata: nil, request_options: {}) ⇒ Orb::Models::Invoice
Some parameter documentations has been truncated, see Models::InvoiceUpdateParams for more details.
This endpoint allows you to update the ‘metadata`, `net_terms`, and `due_date` properties on an invoice. If you pass null for the metadata value, it will clear any existing metadata for that invoice.
‘metadata` can be modified regardless of invoice state. `net_terms` and `due_date` can only be modified if the invoice is in a `draft` state.
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/orb/resources/invoices.rb', line 64 def update(invoice_id, params = {}) parsed, = Orb::InvoiceUpdateParams.dump_request(params) @client.request( method: :put, path: ["invoices/%1$s", invoice_id], body: parsed, model: Orb::Invoice, options: ) end |
#void(invoice_id, request_options: {}) ⇒ Orb::Models::Invoice
This endpoint allows an invoice’s status to be set the ‘void` status. This can only be done to invoices that are in the `issued` status.
If the associated invoice has used the customer balance to change the amount due, the customer balance operation will be reverted. For example, if the invoice used $10 of customer balance, that amount will be added back to the customer balance upon voiding.
If the invoice was used to purchase a credit block, but the invoice is not yet paid, the credit block will be voided. If the invoice was created due to a top-up, the top-up will be disabled.
302 303 304 305 306 307 308 309 |
# File 'lib/orb/resources/invoices.rb', line 302 def void(invoice_id, params = {}) @client.request( method: :post, path: ["invoices/%1$s/void", invoice_id], model: Orb::Invoice, options: params[:request_options] ) end |