Class: Stripe::Quote

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List, APIOperations::NestedResource
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, StatusDetails, StatusTransitions, SubscriptionData, SubscriptionDataOverride, SubscriptionSchedule, 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::NestedResource

nested_resource_class_methods

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?, field_encodings, #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

#allow_backdated_linesObject (readonly)

Allow quote lines to have starts_at in the past if collection is paused between starts_at and now.



915
916
917
# File 'lib/stripe/resources/quote.rb', line 915

def allow_backdated_lines
  @allow_backdated_lines
end

#amount_subtotalObject (readonly)

Total before any discounts or taxes are applied.



917
918
919
# File 'lib/stripe/resources/quote.rb', line 917

def amount_subtotal
  @amount_subtotal
end

#amount_totalObject (readonly)

Total after discounts and taxes are applied.



919
920
921
# File 'lib/stripe/resources/quote.rb', line 919

def amount_total
  @amount_total
end

#applicationObject (readonly)

ID of the Connect Application that created the quote.



921
922
923
# File 'lib/stripe/resources/quote.rb', line 921

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.



923
924
925
# File 'lib/stripe/resources/quote.rb', line 923

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.



925
926
927
# File 'lib/stripe/resources/quote.rb', line 925

def application_fee_percent
  @application_fee_percent
end

#automatic_taxObject (readonly)

Attribute for field automatic_tax



927
928
929
# File 'lib/stripe/resources/quote.rb', line 927

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.



929
930
931
# File 'lib/stripe/resources/quote.rb', line 929

def collection_method
  @collection_method
end

#computedObject (readonly)

Attribute for field computed



931
932
933
# File 'lib/stripe/resources/quote.rb', line 931

def computed
  @computed
end

#createdObject (readonly)

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



933
934
935
# File 'lib/stripe/resources/quote.rb', line 933

def created
  @created
end

#currencyObject (readonly)

Three-letter ISO currency code, in lowercase. Must be a supported currency.



935
936
937
# File 'lib/stripe/resources/quote.rb', line 935

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.



937
938
939
# File 'lib/stripe/resources/quote.rb', line 937

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.



939
940
941
# File 'lib/stripe/resources/quote.rb', line 939

def 
  @customer_account
end

#default_tax_ratesObject (readonly)

The tax rates applied to this quote.



941
942
943
# File 'lib/stripe/resources/quote.rb', line 941

def default_tax_rates
  @default_tax_rates
end

#descriptionObject (readonly)

A description that will be displayed on the quote PDF.



943
944
945
# File 'lib/stripe/resources/quote.rb', line 943

def description
  @description
end

#discountsObject (readonly)

The discounts applied to this quote.



945
946
947
# File 'lib/stripe/resources/quote.rb', line 945

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.



947
948
949
# File 'lib/stripe/resources/quote.rb', line 947

def expires_at
  @expires_at
end

A footer that will be displayed on the quote PDF.



949
950
951
# File 'lib/stripe/resources/quote.rb', line 949

def footer
  @footer
end

#from_quoteObject (readonly)

Details of the quote that was cloned. See the cloning documentation for more details.



951
952
953
# File 'lib/stripe/resources/quote.rb', line 951

def from_quote
  @from_quote
end

#headerObject (readonly)

A header that will be displayed on the quote PDF.



953
954
955
# File 'lib/stripe/resources/quote.rb', line 953

def header
  @header
end

#idObject (readonly)

Unique identifier for the object.



955
956
957
# File 'lib/stripe/resources/quote.rb', line 955

def id
  @id
end

#invoiceObject (readonly)

The invoice that was created from this quote.



957
958
959
# File 'lib/stripe/resources/quote.rb', line 957

def invoice
  @invoice
end

#invoice_settingsObject (readonly)

Attribute for field invoice_settings



959
960
961
# File 'lib/stripe/resources/quote.rb', line 959

def invoice_settings
  @invoice_settings
end

#line_itemsObject (readonly)

A list of items the customer is being quoted for.



961
962
963
# File 'lib/stripe/resources/quote.rb', line 961

def line_items
  @line_items
end

#linesObject (readonly)

A list of quote lines on the quote. These lines describe changes, in the order provided, that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.



963
964
965
# File 'lib/stripe/resources/quote.rb', line 963

def lines
  @lines
end

#livemodeObject (readonly)

If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.



965
966
967
# File 'lib/stripe/resources/quote.rb', line 965

def livemode
  @livemode
end

#metadataObject (readonly)

Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



967
968
969
# File 'lib/stripe/resources/quote.rb', line 967

def 
  @metadata
end

#numberObject (readonly)

A unique number that identifies this particular quote. This number is assigned once the quote is finalized.



969
970
971
# File 'lib/stripe/resources/quote.rb', line 969

def number
  @number
end

#objectObject (readonly)

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



971
972
973
# File 'lib/stripe/resources/quote.rb', line 971

def object
  @object
end

#on_behalf_ofObject (readonly)

The account on behalf of which to charge. See the Connect documentation for details.



973
974
975
# File 'lib/stripe/resources/quote.rb', line 973

def on_behalf_of
  @on_behalf_of
end

#statusObject (readonly)

The status of the quote.



975
976
977
# File 'lib/stripe/resources/quote.rb', line 975

def status
  @status
end

#status_detailsObject (readonly)

Details on when and why a quote has been marked as stale or canceled.



977
978
979
# File 'lib/stripe/resources/quote.rb', line 977

def status_details
  @status_details
end

#status_transitionsObject (readonly)

Attribute for field status_transitions



979
980
981
# File 'lib/stripe/resources/quote.rb', line 979

def status_transitions
  @status_transitions
end

#subscriptionObject (readonly)

The subscription that was created or updated from this quote.



981
982
983
# File 'lib/stripe/resources/quote.rb', line 981

def subscription
  @subscription
end

#subscription_dataObject (readonly)

Attribute for field subscription_data



983
984
985
# File 'lib/stripe/resources/quote.rb', line 983

def subscription_data
  @subscription_data
end

#subscription_data_overridesObject (readonly)

List representing overrides for subscription_data configurations for specific subscription schedules.



985
986
987
# File 'lib/stripe/resources/quote.rb', line 985

def subscription_data_overrides
  @subscription_data_overrides
end

#subscription_scheduleObject (readonly)

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



987
988
989
# File 'lib/stripe/resources/quote.rb', line 987

def subscription_schedule
  @subscription_schedule
end

#subscription_schedulesObject (readonly)

The subscription schedules that were created or updated from this quote.



989
990
991
# File 'lib/stripe/resources/quote.rb', line 989

def subscription_schedules
  @subscription_schedules
end

#test_clockObject (readonly)

ID of the test clock this quote belongs to.



991
992
993
# File 'lib/stripe/resources/quote.rb', line 991

def test_clock
  @test_clock
end

#total_detailsObject (readonly)

Attribute for field total_details



993
994
995
# File 'lib/stripe/resources/quote.rb', line 993

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.



995
996
997
# File 'lib/stripe/resources/quote.rb', line 995

def transfer_data
  @transfer_data
end

Class Method Details

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

Accepts the specified quote.



1008
1009
1010
1011
1012
1013
1014
1015
# File 'lib/stripe/resources/quote.rb', line 1008

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.



1028
1029
1030
1031
1032
1033
1034
1035
# File 'lib/stripe/resources/quote.rb', line 1028

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.



1038
1039
1040
# File 'lib/stripe/resources/quote.rb', line 1038

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

.field_remappingsObject



1259
1260
1261
# File 'lib/stripe/resources/quote.rb', line 1259

def self.field_remappings
  @field_remappings = {}
end

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

Finalizes the quote.



1053
1054
1055
1056
1057
1058
1059
1060
# File 'lib/stripe/resources/quote.rb', line 1053

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



1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
# File 'lib/stripe/resources/quote.rb', line 1243

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

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

Returns a list of your quotes.



1063
1064
1065
# File 'lib/stripe/resources/quote.rb', line 1063

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



1078
1079
1080
1081
1082
1083
1084
1085
# File 'lib/stripe/resources/quote.rb', line 1078

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.



1098
1099
1100
1101
1102
1103
1104
1105
# File 'lib/stripe/resources/quote.rb', line 1098

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

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

Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.



1118
1119
1120
1121
1122
1123
1124
1125
# File 'lib/stripe/resources/quote.rb', line 1118

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

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

Preview the invoice line items that would be generated by accepting the quote.



1138
1139
1140
1141
1142
1143
1144
1145
# File 'lib/stripe/resources/quote.rb', line 1138

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

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

Converts a stale quote to draft.



1158
1159
1160
1161
1162
1163
1164
1165
# File 'lib/stripe/resources/quote.rb', line 1158

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

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

Converts a draft or open quote to stale.



1178
1179
1180
1181
1182
1183
1184
1185
# File 'lib/stripe/resources/quote.rb', line 1178

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

.object_nameObject



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

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



1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
# File 'lib/stripe/resources/quote.rb', line 1201

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

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

Recompute the upcoming invoice estimate for the quote.



1224
1225
1226
1227
1228
1229
1230
1231
# File 'lib/stripe/resources/quote.rb', line 1224

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

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

A quote models prices and services for a customer.



1234
1235
1236
1237
1238
1239
1240
1241
# File 'lib/stripe/resources/quote.rb', line 1234

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.



998
999
1000
1001
1002
1003
1004
1005
# File 'lib/stripe/resources/quote.rb', line 998

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.



1018
1019
1020
1021
1022
1023
1024
1025
# File 'lib/stripe/resources/quote.rb', line 1018

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.



1043
1044
1045
1046
1047
1048
1049
1050
# File 'lib/stripe/resources/quote.rb', line 1043

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



1068
1069
1070
1071
1072
1073
1074
1075
# File 'lib/stripe/resources/quote.rb', line 1068

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.



1088
1089
1090
1091
1092
1093
1094
1095
# File 'lib/stripe/resources/quote.rb', line 1088

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

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

Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.



1108
1109
1110
1111
1112
1113
1114
1115
# File 'lib/stripe/resources/quote.rb', line 1108

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

#list_preview_invoice_lines(preview_invoice, params = {}, opts = {}) ⇒ Object

Preview the invoice line items that would be generated by accepting the quote.



1128
1129
1130
1131
1132
1133
1134
1135
# File 'lib/stripe/resources/quote.rb', line 1128

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

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

Converts a stale quote to draft.



1148
1149
1150
1151
1152
1153
1154
1155
# File 'lib/stripe/resources/quote.rb', line 1148

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

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

Converts a draft or open quote to stale.



1168
1169
1170
1171
1172
1173
1174
1175
# File 'lib/stripe/resources/quote.rb', line 1168

def mark_stale(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/quotes/%<quote>s/mark_stale", { 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



1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
# File 'lib/stripe/resources/quote.rb', line 1188

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

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

Recompute the upcoming invoice estimate for the quote.



1214
1215
1216
1217
1218
1219
1220
1221
# File 'lib/stripe/resources/quote.rb', line 1214

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