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 who received this quote. A customer is required to finalize the quote. Once specified, you can’t change it.



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

def customer
  @customer
end

#customer_accountObject (readonly)

The account representing the customer who received this quote. A customer or account is required to finalize the quote. Once specified, you can’t change it.



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

def 
  
end

#default_tax_ratesObject (readonly)

The tax rates applied to this quote.



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

def default_tax_rates
  @default_tax_rates
end

#descriptionObject (readonly)

A description that will be displayed on the quote PDF.



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

def description
  @description
end

#discountsObject (readonly)

The discounts applied to this quote.



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

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.



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

def expires_at
  @expires_at
end

A footer that will be displayed on the quote PDF.



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

def footer
  @footer
end

#from_quoteObject (readonly)

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



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

def from_quote
  @from_quote
end

#headerObject (readonly)

A header that will be displayed on the quote PDF.



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

def header
  @header
end

#idObject (readonly)

Unique identifier for the object.



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

def id
  @id
end

#invoiceObject (readonly)

The invoice that was created from this quote.



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

def invoice
  @invoice
end

#invoice_settingsObject (readonly)

Attribute for field invoice_settings



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

def invoice_settings
  @invoice_settings
end

#line_itemsObject (readonly)

A list of items the customer is being quoted for.



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

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.



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

def livemode
  @livemode
end

#metadataObject (readonly)

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



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

def 
  
end

#numberObject (readonly)

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



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

def number
  @number
end

#objectObject (readonly)

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



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

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.



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

def on_behalf_of
  @on_behalf_of
end

#statusObject (readonly)

The status of the quote.



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

def status
  @status
end

#status_transitionsObject (readonly)

Attribute for field status_transitions



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

def status_transitions
  @status_transitions
end

#subscriptionObject (readonly)

The subscription that was created or updated from this quote.



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

def subscription
  @subscription
end

#subscription_dataObject (readonly)

Attribute for field subscription_data



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

def subscription_data
  @subscription_data
end

#subscription_scheduleObject (readonly)

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



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

def subscription_schedule
  @subscription_schedule
end

#test_clockObject (readonly)

ID of the test clock this quote belongs to.



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

def test_clock
  @test_clock
end

#total_detailsObject (readonly)

Attribute for field total_details



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

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.



510
511
512
# File 'lib/stripe/resources/quote.rb', line 510

def transfer_data
  @transfer_data
end

Class Method Details

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

Accepts the specified quote.



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

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.



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

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



553
554
555
# File 'lib/stripe/resources/quote.rb', line 553

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

.field_remappingsObject



671
672
673
# File 'lib/stripe/resources/quote.rb', line 671

def self.field_remappings
  @field_remappings = {}
end

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

Finalizes the quote.



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

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



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

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.



578
579
580
# File 'lib/stripe/resources/quote.rb', line 578

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.



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

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.



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

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)



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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)



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

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