Class: Stripe::SubscriptionSchedule

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

Overview

A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.

Related guide: Subscription schedules

Defined Under Namespace

Classes: BillingMode, CurrentPhase, DefaultSettings, LastPriceMigrationError, Phase, Prebilling

Constant Summary collapse

OBJECT_NAME =
"subscription_schedule"

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

#applicationObject (readonly)

ID of the Connect Application that created the schedule.



706
707
708
# File 'lib/stripe/resources/subscription_schedule.rb', line 706

def application
  @application
end

#billing_behaviorObject (readonly)

Configures when the subscription schedule generates prorations for phase transitions. Possible values are prorate_on_next_phase or prorate_up_front with the default being prorate_on_next_phase. prorate_on_next_phase will apply phase changes and generate prorations at transition time. prorate_up_front will bill for all phases within the current billing cycle up front.



708
709
710
# File 'lib/stripe/resources/subscription_schedule.rb', line 708

def billing_behavior
  @billing_behavior
end

#billing_modeObject (readonly)

The billing mode of the subscription.



710
711
712
# File 'lib/stripe/resources/subscription_schedule.rb', line 710

def billing_mode
  @billing_mode
end

#canceled_atObject (readonly)

Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.



712
713
714
# File 'lib/stripe/resources/subscription_schedule.rb', line 712

def canceled_at
  @canceled_at
end

#completed_atObject (readonly)

Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.



714
715
716
# File 'lib/stripe/resources/subscription_schedule.rb', line 714

def completed_at
  @completed_at
end

#createdObject (readonly)

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



716
717
718
# File 'lib/stripe/resources/subscription_schedule.rb', line 716

def created
  @created
end

#current_phaseObject (readonly)

Object representing the start and end dates for the current phase of the subscription schedule, if it is active.



718
719
720
# File 'lib/stripe/resources/subscription_schedule.rb', line 718

def current_phase
  @current_phase
end

#customerObject (readonly)

ID of the customer who owns the subscription schedule.



720
721
722
# File 'lib/stripe/resources/subscription_schedule.rb', line 720

def customer
  @customer
end

#customer_accountObject (readonly)

ID of the account who owns the subscription schedule.



722
723
724
# File 'lib/stripe/resources/subscription_schedule.rb', line 722

def 
  @customer_account
end

#default_settingsObject (readonly)

Attribute for field default_settings



724
725
726
# File 'lib/stripe/resources/subscription_schedule.rb', line 724

def default_settings
  @default_settings
end

#end_behaviorObject (readonly)

Behavior of the subscription schedule and underlying subscription when it ends. Possible values are release or cancel with the default being release. release will end the subscription schedule and keep the underlying subscription running. cancel will end the subscription schedule and cancel the underlying subscription.



726
727
728
# File 'lib/stripe/resources/subscription_schedule.rb', line 726

def end_behavior
  @end_behavior
end

#idObject (readonly)

Unique identifier for the object.



728
729
730
# File 'lib/stripe/resources/subscription_schedule.rb', line 728

def id
  @id
end

#last_price_migration_errorObject (readonly)

Details of the most recent price migration that failed for the subscription schedule.



730
731
732
# File 'lib/stripe/resources/subscription_schedule.rb', line 730

def last_price_migration_error
  @last_price_migration_error
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.



732
733
734
# File 'lib/stripe/resources/subscription_schedule.rb', line 732

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.



734
735
736
# File 'lib/stripe/resources/subscription_schedule.rb', line 734

def 
  @metadata
end

#objectObject (readonly)

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



736
737
738
# File 'lib/stripe/resources/subscription_schedule.rb', line 736

def object
  @object
end

#phasesObject (readonly)

Configuration for the subscription schedule's phases.



738
739
740
# File 'lib/stripe/resources/subscription_schedule.rb', line 738

def phases
  @phases
end

#prebillingObject (readonly)

Time period and invoice for a Subscription billed in advance.



740
741
742
# File 'lib/stripe/resources/subscription_schedule.rb', line 740

def prebilling
  @prebilling
end

#released_atObject (readonly)

Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.



742
743
744
# File 'lib/stripe/resources/subscription_schedule.rb', line 742

def released_at
  @released_at
end

#released_subscriptionObject (readonly)

ID of the subscription once managed by the subscription schedule (if it is released).



744
745
746
# File 'lib/stripe/resources/subscription_schedule.rb', line 744

def released_subscription
  @released_subscription
end

#statusObject (readonly)

The present status of the subscription schedule. Possible values are not_started, active, completed, released, and canceled. You can read more about the different states in our behavior guide.



746
747
748
# File 'lib/stripe/resources/subscription_schedule.rb', line 746

def status
  @status
end

#subscriptionObject (readonly)

ID of the subscription managed by the subscription schedule.



748
749
750
# File 'lib/stripe/resources/subscription_schedule.rb', line 748

def subscription
  @subscription
end

#test_clockObject (readonly)

ID of the test clock this subscription schedule belongs to.



750
751
752
# File 'lib/stripe/resources/subscription_schedule.rb', line 750

def test_clock
  @test_clock
end

Class Method Details

.amend(schedule, params = {}, opts = {}) ⇒ Object

Amends an existing subscription schedule.



763
764
765
766
767
768
769
770
# File 'lib/stripe/resources/subscription_schedule.rb', line 763

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

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

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.



783
784
785
786
787
788
789
790
# File 'lib/stripe/resources/subscription_schedule.rb', line 783

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

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

Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.



793
794
795
796
797
798
799
800
# File 'lib/stripe/resources/subscription_schedule.rb', line 793

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

.field_remappingsObject



853
854
855
# File 'lib/stripe/resources/subscription_schedule.rb', line 853

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



842
843
844
845
846
847
848
849
850
851
# File 'lib/stripe/resources/subscription_schedule.rb', line 842

def self.inner_class_types
  @inner_class_types = {
    billing_mode: BillingMode,
    current_phase: CurrentPhase,
    default_settings: DefaultSettings,
    last_price_migration_error: LastPriceMigrationError,
    phases: Phase,
    prebilling: Prebilling,
  }
end

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

Retrieves the list of your subscription schedules.



803
804
805
806
807
808
809
810
# File 'lib/stripe/resources/subscription_schedule.rb', line 803

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

.object_nameObject



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

def self.object_name
  "subscription_schedule"
end

.release(schedule, params = {}, opts = {}) ⇒ Object

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.



823
824
825
826
827
828
829
830
# File 'lib/stripe/resources/subscription_schedule.rb', line 823

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

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

Updates an existing subscription schedule.



833
834
835
836
837
838
839
840
# File 'lib/stripe/resources/subscription_schedule.rb', line 833

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

Instance Method Details

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

Amends an existing subscription schedule.



753
754
755
756
757
758
759
760
# File 'lib/stripe/resources/subscription_schedule.rb', line 753

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

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

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.



773
774
775
776
777
778
779
780
# File 'lib/stripe/resources/subscription_schedule.rb', line 773

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

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

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.



813
814
815
816
817
818
819
820
# File 'lib/stripe/resources/subscription_schedule.rb', line 813

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