Class: Stripe::SubscriptionItem

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

Overview

Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.

Defined Under Namespace

Classes: BillingThresholds, CurrentTrial

Constant Summary collapse

OBJECT_NAME =
"subscription_item"

Constants inherited from StripeObject

Stripe::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 included from APIOperations::Delete

included

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, #_get_union_variant_class, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, field_encodings, #hash, #initialize, inner_class_union_variant_types, #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

#billed_until ⇒ Object (readonly)

The time period the subscription item has been billed for.



48
49
50
# File 'lib/stripe/resources/subscription_item.rb', line 48

def billed_until
  @billed_until
end

#billing_thresholds ⇒ Object (readonly)

Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period



50
51
52
# File 'lib/stripe/resources/subscription_item.rb', line 50

def billing_thresholds
  @billing_thresholds
end

#created ⇒ Object (readonly)

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



52
53
54
# File 'lib/stripe/resources/subscription_item.rb', line 52

def created
  @created
end

#current_period_end ⇒ Object (readonly)

The end time of this subscription item's current billing period.



54
55
56
# File 'lib/stripe/resources/subscription_item.rb', line 54

def current_period_end
  @current_period_end
end

#current_period_start ⇒ Object (readonly)

The start time of this subscription item's current billing period.



56
57
58
# File 'lib/stripe/resources/subscription_item.rb', line 56

def current_period_start
  @current_period_start
end

#current_trial ⇒ Object (readonly)

The current trial that is applied to this subscription item.



58
59
60
# File 'lib/stripe/resources/subscription_item.rb', line 58

def current_trial
  @current_trial
end

#deleted ⇒ Object (readonly)

Always true for a deleted object



60
61
62
# File 'lib/stripe/resources/subscription_item.rb', line 60

def deleted
  @deleted
end

#discounts ⇒ Object (readonly)

The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use expand[]=discounts to expand each discount.



62
63
64
# File 'lib/stripe/resources/subscription_item.rb', line 62

def discounts
  @discounts
end

#id ⇒ Object (readonly)

Unique identifier for the object.



64
65
66
# File 'lib/stripe/resources/subscription_item.rb', line 64

def id
  @id
end

#metadata ⇒ Object (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.



66
67
68
# File 'lib/stripe/resources/subscription_item.rb', line 66

def 
  @metadata
end

#object ⇒ Object (readonly)

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



68
69
70
# File 'lib/stripe/resources/subscription_item.rb', line 68

def object
  @object
end

#plan ⇒ Object (readonly)

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

Plans define the base price, currency, and billing cycle for recurring purchases of products. Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.

For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year.

Related guides: Set up a subscription and more about products and prices.



77
78
79
# File 'lib/stripe/resources/subscription_item.rb', line 77

def plan
  @plan
end

#price ⇒ Object (readonly)

Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. Products help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.

For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once.

Related guides: Set up a subscription, create an invoice, and more about products and prices.



84
85
86
# File 'lib/stripe/resources/subscription_item.rb', line 84

def price
  @price
end

#quantity ⇒ Object (readonly)

The quantity of the plan to which the customer should be subscribed.



86
87
88
# File 'lib/stripe/resources/subscription_item.rb', line 86

def quantity
  @quantity
end

#subscription ⇒ Object (readonly)

The subscription this subscription_item belongs to.



88
89
90
# File 'lib/stripe/resources/subscription_item.rb', line 88

def subscription
  @subscription
end

#tax_rates ⇒ Object (readonly)

The tax rates which apply to this subscription_item. When set, the default_tax_rates on the subscription do not apply to this subscription_item.



90
91
92
# File 'lib/stripe/resources/subscription_item.rb', line 90

def tax_rates
  @tax_rates
end

Class Method Details

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

Adds a new item to an existing subscription. No existing items will be changed or replaced.



93
94
95
96
97
98
99
100
# File 'lib/stripe/resources/subscription_item.rb', line 93

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

.delete(item, params = {}, opts = {}) ⇒ Object

Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.



103
104
105
106
107
108
109
110
# File 'lib/stripe/resources/subscription_item.rb', line 103

def self.delete(item, params = {}, opts = {})
  request_stripe_object(
    method: :delete,
    path: format("/v1/subscription_items/%<item>s", { item: CGI.escape(item) }),
    params: params,
    opts: opts
  )
end

.field_remappings ⇒ Object



146
147
148
# File 'lib/stripe/resources/subscription_item.rb', line 146

def self.field_remappings
  @field_remappings = {}
end

.inner_class_types ⇒ Object



142
143
144
# File 'lib/stripe/resources/subscription_item.rb', line 142

def self.inner_class_types
  @inner_class_types = { billing_thresholds: BillingThresholds, current_trial: CurrentTrial }
end

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

Returns a list of your subscription items for a given subscription.



123
124
125
126
127
128
129
130
# File 'lib/stripe/resources/subscription_item.rb', line 123

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

.object_name ⇒ Object



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

def self.object_name
  "subscription_item"
end

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

Updates the plan or quantity of an item on a current subscription.



133
134
135
136
137
138
139
140
# File 'lib/stripe/resources/subscription_item.rb', line 133

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

Instance Method Details

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

Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.



113
114
115
116
117
118
119
120
# File 'lib/stripe/resources/subscription_item.rb', line 113

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