Class: Stripe::Quote

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List
Includes:
APIOperations::Save
Defined in:
lib/stripe/resources/quote.rb

Overview

A Quote is a way to model prices that you’d like to provide to a customer. Once accepted, it will automatically create an invoice, subscription or subscription schedule.

Defined Under Namespace

Classes: AutomaticTax, Computed, FromQuote, InvoiceSettings, StatusTransitions, SubscriptionData, TotalDetails, TransferData

Constant Summary collapse

OBJECT_NAME =
"quote"

Constants inherited from StripeObject

StripeObject::RESERVED_FIELD_NAMES

Instance Attribute Summary collapse

Attributes inherited from APIResource

#save_with_parent

Attributes inherited from StripeObject

#last_response

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::List

list

Methods included from APIOperations::Save

included, #save

Methods inherited from APIResource

class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from StripeObject

#==, #[], #[]=, #_get_inner_class_type, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Stripe::StripeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject

Instance Attribute Details

#amount_subtotalObject (readonly)

Total before any discounts or taxes are applied.



440
441
442
# File 'lib/stripe/resources/quote.rb', line 440

def amount_subtotal
  @amount_subtotal
end

#amount_totalObject (readonly)

Total after discounts and taxes are applied.



442
443
444
# File 'lib/stripe/resources/quote.rb', line 442

def amount_total
  @amount_total
end

#applicationObject (readonly)

ID of the Connect Application that created the quote.



444
445
446
# File 'lib/stripe/resources/quote.rb', line 444

def application
  @application
end

#application_fee_amountObject (readonly)

The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner’s Stripe account. Only applicable if there are no line items with recurring prices on the quote.



446
447
448
# File 'lib/stripe/resources/quote.rb', line 446

def application_fee_amount
  @application_fee_amount
end

#application_fee_percentObject (readonly)

A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner’s Stripe account. Only applicable if there are line items with recurring prices on the quote.



448
449
450
# File 'lib/stripe/resources/quote.rb', line 448

def application_fee_percent
  @application_fee_percent
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



450
451
452
# File 'lib/stripe/resources/quote.rb', line 450

def automatic_tax
  @automatic_tax
end

#collection_methodObject (readonly)

Either ‘charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.



452
453
454
# File 'lib/stripe/resources/quote.rb', line 452

def collection_method
  @collection_method
end

#computedObject (readonly)

Attribute for field computed



454
455
456
# File 'lib/stripe/resources/quote.rb', line 454

def computed
  @computed
end

#createdObject (readonly)

Time at which the object was created. Measured in seconds since the Unix epoch.



456
457
458
# File 'lib/stripe/resources/quote.rb', line 456

def created
  @created
end

#currencyObject (readonly)

Three-letter [ISO currency code](www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](stripe.com/docs/currencies).



458
459
460
# File 'lib/stripe/resources/quote.rb', line 458

def currency
  @currency
end

#customerObject (readonly)

The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.



460
461
462
# File 'lib/stripe/resources/quote.rb', line 460

def customer
  @customer
end

#default_tax_ratesObject (readonly)

The tax rates applied to this quote.



462
463
464
# File 'lib/stripe/resources/quote.rb', line 462

def default_tax_rates
  @default_tax_rates
end

#descriptionObject (readonly)

A description that will be displayed on the quote PDF.



464
465
466
# File 'lib/stripe/resources/quote.rb', line 464

def description
  @description
end

#discountsObject (readonly)

The discounts applied to this quote.



466
467
468
# File 'lib/stripe/resources/quote.rb', line 466

def discounts
  @discounts
end

#expires_atObject (readonly)

The date on which the quote will be canceled if in ‘open` or `draft` status. Measured in seconds since the Unix epoch.



468
469
470
# File 'lib/stripe/resources/quote.rb', line 468

def expires_at
  @expires_at
end

A footer that will be displayed on the quote PDF.



470
471
472
# File 'lib/stripe/resources/quote.rb', line 470

def footer
  @footer
end

#from_quoteObject (readonly)

Details of the quote that was cloned. See the [cloning documentation](stripe.com/docs/quotes/clone) for more details.



472
473
474
# File 'lib/stripe/resources/quote.rb', line 472

def from_quote
  @from_quote
end

#headerObject (readonly)

A header that will be displayed on the quote PDF.



474
475
476
# File 'lib/stripe/resources/quote.rb', line 474

def header
  @header
end

#idObject (readonly)

Unique identifier for the object.



476
477
478
# File 'lib/stripe/resources/quote.rb', line 476

def id
  @id
end

#invoiceObject (readonly)

The invoice that was created from this quote.



478
479
480
# File 'lib/stripe/resources/quote.rb', line 478

def invoice
  @invoice
end

#invoice_settingsObject (readonly)

Attribute for field invoice_settings



480
481
482
# File 'lib/stripe/resources/quote.rb', line 480

def invoice_settings
  @invoice_settings
end

#line_itemsObject (readonly)

A list of items the customer is being quoted for.



482
483
484
# File 'lib/stripe/resources/quote.rb', line 482

def line_items
  @line_items
end

#livemodeObject (readonly)

Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.



484
485
486
# File 'lib/stripe/resources/quote.rb', line 484

def livemode
  @livemode
end

#metadataObject (readonly)

Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



486
487
488
# File 'lib/stripe/resources/quote.rb', line 486

def 
  @metadata
end

#numberObject (readonly)

A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](stripe.com/docs/quotes/overview#finalize).



488
489
490
# File 'lib/stripe/resources/quote.rb', line 488

def number
  @number
end

#objectObject (readonly)

String representing the object’s type. Objects of the same type share the same value.



490
491
492
# File 'lib/stripe/resources/quote.rb', line 490

def object
  @object
end

#on_behalf_ofObject (readonly)

The account on behalf of which to charge. See the [Connect documentation](support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details.



492
493
494
# File 'lib/stripe/resources/quote.rb', line 492

def on_behalf_of
  @on_behalf_of
end

#statusObject (readonly)

The status of the quote.



494
495
496
# File 'lib/stripe/resources/quote.rb', line 494

def status
  @status
end

#status_transitionsObject (readonly)

Attribute for field status_transitions



496
497
498
# File 'lib/stripe/resources/quote.rb', line 496

def status_transitions
  @status_transitions
end

#subscriptionObject (readonly)

The subscription that was created or updated from this quote.



498
499
500
# File 'lib/stripe/resources/quote.rb', line 498

def subscription
  @subscription
end

#subscription_dataObject (readonly)

Attribute for field subscription_data



500
501
502
# File 'lib/stripe/resources/quote.rb', line 500

def subscription_data
  @subscription_data
end

#subscription_scheduleObject (readonly)

The subscription schedule that was created or updated from this quote.



502
503
504
# File 'lib/stripe/resources/quote.rb', line 502

def subscription_schedule
  @subscription_schedule
end

#test_clockObject (readonly)

ID of the test clock this quote belongs to.



504
505
506
# File 'lib/stripe/resources/quote.rb', line 504

def test_clock
  @test_clock
end

#total_detailsObject (readonly)

Attribute for field total_details



506
507
508
# File 'lib/stripe/resources/quote.rb', line 506

def total_details
  @total_details
end

#transfer_dataObject (readonly)

The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices.



508
509
510
# File 'lib/stripe/resources/quote.rb', line 508

def transfer_data
  @transfer_data
end

Class Method Details

.accept(quote, params = {}, opts = {}) ⇒ Object

Accepts the specified quote.



521
522
523
524
525
526
527
528
# File 'lib/stripe/resources/quote.rb', line 521

def self.accept(quote, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/accept", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

.cancel(quote, params = {}, opts = {}) ⇒ Object

Cancels the quote.



541
542
543
544
545
546
547
548
# File 'lib/stripe/resources/quote.rb', line 541

def self.cancel(quote, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/cancel", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

.create(params = {}, opts = {}) ⇒ Object

A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](dashboard.stripe.com/settings/billing/quote).



551
552
553
# File 'lib/stripe/resources/quote.rb', line 551

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/quotes", params: params, opts: opts)
end

.field_remappingsObject



669
670
671
# File 'lib/stripe/resources/quote.rb', line 669

def self.field_remappings
  @field_remappings = {}
end

.finalize_quote(quote, params = {}, opts = {}) ⇒ Object

Finalizes the quote.



566
567
568
569
570
571
572
573
# File 'lib/stripe/resources/quote.rb', line 566

def self.finalize_quote(quote, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/finalize", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

.inner_class_typesObject



656
657
658
659
660
661
662
663
664
665
666
667
# File 'lib/stripe/resources/quote.rb', line 656

def self.inner_class_types
  @inner_class_types = {
    automatic_tax: AutomaticTax,
    computed: Computed,
    from_quote: FromQuote,
    invoice_settings: InvoiceSettings,
    status_transitions: StatusTransitions,
    subscription_data: SubscriptionData,
    total_details: TotalDetails,
    transfer_data: TransferData,
  }
end

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

Returns a list of your quotes.



576
577
578
# File 'lib/stripe/resources/quote.rb', line 576

def self.list(params = {}, opts = {})
  request_stripe_object(method: :get, path: "/v1/quotes", params: params, opts: opts)
end

.list_computed_upfront_line_items(quote, params = {}, opts = {}) ⇒ Object

When retrieving a quote, there is an includable [computed.upfront.line_items](stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.



591
592
593
594
595
596
597
598
# File 'lib/stripe/resources/quote.rb', line 591

def self.list_computed_upfront_line_items(quote, params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: format("/v1/quotes/%<quote>s/computed_upfront_line_items", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

.list_line_items(quote, params = {}, opts = {}) ⇒ Object

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.



611
612
613
614
615
616
617
618
# File 'lib/stripe/resources/quote.rb', line 611

def self.list_line_items(quote, params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: format("/v1/quotes/%<quote>s/line_items", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

.object_nameObject



13
14
15
# File 'lib/stripe/resources/quote.rb', line 13

def self.object_name
  "quote"
end

.pdf(quote, params = {}, opts = {}, &read_body_chunk_block) ⇒ Object

Download the PDF for a finalized quote. Explanation for special handling can be found [here](docs.stripe.com/quotes/overview#quote_pdf)



634
635
636
637
638
639
640
641
642
643
644
# File 'lib/stripe/resources/quote.rb', line 634

def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
  opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
  execute_resource_request_stream(
    :get,
    format("/v1/quotes/%<quote>s/pdf", { quote: CGI.escape(quote) }),
    :files,
    params,
    opts,
    &read_body_chunk_block
  )
end

.update(quote, params = {}, opts = {}) ⇒ Object

A quote models prices and services for a customer.



647
648
649
650
651
652
653
654
# File 'lib/stripe/resources/quote.rb', line 647

def self.update(quote, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s", { quote: CGI.escape(quote) }),
    params: params,
    opts: opts
  )
end

Instance Method Details

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

Accepts the specified quote.



511
512
513
514
515
516
517
518
# File 'lib/stripe/resources/quote.rb', line 511

def accept(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/accept", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

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

Cancels the quote.



531
532
533
534
535
536
537
538
# File 'lib/stripe/resources/quote.rb', line 531

def cancel(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/cancel", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

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

Finalizes the quote.



556
557
558
559
560
561
562
563
# File 'lib/stripe/resources/quote.rb', line 556

def finalize_quote(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/finalize", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

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

When retrieving a quote, there is an includable [computed.upfront.line_items](stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.



581
582
583
584
585
586
587
588
# File 'lib/stripe/resources/quote.rb', line 581

def list_computed_upfront_line_items(params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: format("/v1/quotes/%<quote>s/computed_upfront_line_items", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

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

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.



601
602
603
604
605
606
607
608
# File 'lib/stripe/resources/quote.rb', line 601

def list_line_items(params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: format("/v1/quotes/%<quote>s/line_items", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

#pdf(params = {}, opts = {}, &read_body_chunk_block) ⇒ Object

Download the PDF for a finalized quote. Explanation for special handling can be found [here](docs.stripe.com/quotes/overview#quote_pdf)



621
622
623
624
625
626
627
628
629
630
631
# File 'lib/stripe/resources/quote.rb', line 621

def pdf(params = {}, opts = {}, &read_body_chunk_block)
  opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
  request_stream(
    method: :get,
    path: format("/v1/quotes/%<quote>s/pdf", { quote: CGI.escape(self["id"]) }),
    params: params,
    opts: opts,
    base_address: :files,
    &read_body_chunk_block
  )
end