Class: GoCardlessPro::Resources::Subscription
- Inherits:
-
Object
- Object
- GoCardlessPro::Resources::Subscription
- Defined in:
- lib/gocardless_pro/resources/subscription.rb
Overview
Subscriptions create [payments](#core-endpoints-payments) according to a schedule.
### Recurrence Rules
The following rules apply when specifying recurrence:
-
The first payment must be charged within 1 year.
-
When neither ‘month` nor `day_of_month` are present, the subscription
will recur from the ‘start_date` based on the `interval_unit`.
-
If ‘month` or `day_of_month` are present, the recurrence rules will be
applied from the ‘start_date`, and the following validations apply:
| interval_unit | month | day_of_month | | :————– | :——————————————— | :————————————– | | yearly | optional (required if ‘day_of_month` provided) | optional (required if `month` provided) | | monthly | invalid | required | | weekly | invalid | invalid |
Examples:
| interval_unit | interval | month | day_of_month | valid?
|
| :————– | :——— | :—— | :————- | :————————————————- | | yearly | 1 | january | -1 | valid
|
| yearly | 1 | march | | invalid - missing ‘day_of_month` | | monthly | 6 | | 12 | valid
|
| monthly | 6 | august | 12 | invalid - ‘month` must be blank | | weekly | 2 | | | valid
|
| weekly | 2 | october | 10 | invalid - ‘month` and `day_of_month` must be blank |
### Rolling dates
When a charge date falls on a non-business day, one of two things will happen:
-
if the recurrence rule specified ‘-1` as the `day_of_month`, the charge
date will be rolled __backwards__ to the previous business day (i.e., the last working day of the month).
-
otherwise the charge date will be rolled __forwards__ to the next
business day.
Defined Under Namespace
Classes: Links
Instance Attribute Summary collapse
-
#amount ⇒ Object
readonly
Returns the value of attribute amount.
-
#app_fee ⇒ Object
readonly
Returns the value of attribute app_fee.
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#currency ⇒ Object
readonly
Returns the value of attribute currency.
-
#day_of_month ⇒ Object
readonly
Returns the value of attribute day_of_month.
-
#end_date ⇒ Object
readonly
Returns the value of attribute end_date.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#interval ⇒ Object
readonly
Returns the value of attribute interval.
-
#interval_unit ⇒ Object
readonly
Returns the value of attribute interval_unit.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#month ⇒ Object
readonly
Returns the value of attribute month.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#payment_reference ⇒ Object
readonly
Returns the value of attribute payment_reference.
-
#start_date ⇒ Object
readonly
Returns the value of attribute start_date.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#upcoming_payments ⇒ Object
readonly
Returns the value of attribute upcoming_payments.
Instance Method Summary collapse
- #api_response ⇒ Object
-
#initialize(object, response = nil) ⇒ Subscription
constructor
Initialize a subscription resource instance.
-
#links ⇒ Object
Return the links that the resource has.
-
#to_h ⇒ Object
Provides the subscription resource as a hash of all its readable attributes.
Constructor Details
#initialize(object, response = nil) ⇒ Subscription
Initialize a subscription resource instance
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 89 def initialize(object, response = nil) @object = object @amount = object['amount'] @app_fee = object['app_fee'] @created_at = object['created_at'] @currency = object['currency'] @day_of_month = object['day_of_month'] @end_date = object['end_date'] @id = object['id'] @interval = object['interval'] @interval_unit = object['interval_unit'] @links = object['links'] @metadata = object['metadata'] @month = object['month'] @name = object['name'] @payment_reference = object['payment_reference'] @start_date = object['start_date'] @status = object['status'] @upcoming_payments = object['upcoming_payments'] @response = response end |
Instance Attribute Details
#amount ⇒ Object (readonly)
Returns the value of attribute amount.
70 71 72 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 70 def amount @amount end |
#app_fee ⇒ Object (readonly)
Returns the value of attribute app_fee.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def app_fee @app_fee end |
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
72 73 74 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 72 def created_at @created_at end |
#currency ⇒ Object (readonly)
Returns the value of attribute currency.
73 74 75 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 73 def currency @currency end |
#day_of_month ⇒ Object (readonly)
Returns the value of attribute day_of_month.
74 75 76 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 74 def day_of_month @day_of_month end |
#end_date ⇒ Object (readonly)
Returns the value of attribute end_date.
75 76 77 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 75 def end_date @end_date end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
76 77 78 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 76 def id @id end |
#interval ⇒ Object (readonly)
Returns the value of attribute interval.
77 78 79 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 77 def interval @interval end |
#interval_unit ⇒ Object (readonly)
Returns the value of attribute interval_unit.
78 79 80 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 78 def interval_unit @interval_unit end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
79 80 81 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 79 def @metadata end |
#month ⇒ Object (readonly)
Returns the value of attribute month.
80 81 82 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 80 def month @month end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
81 82 83 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 81 def name @name end |
#payment_reference ⇒ Object (readonly)
Returns the value of attribute payment_reference.
82 83 84 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 82 def payment_reference @payment_reference end |
#start_date ⇒ Object (readonly)
Returns the value of attribute start_date.
83 84 85 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 83 def start_date @start_date end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
84 85 86 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 84 def status @status end |
#upcoming_payments ⇒ Object (readonly)
Returns the value of attribute upcoming_payments.
85 86 87 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 85 def upcoming_payments @upcoming_payments end |
Instance Method Details
#api_response ⇒ Object
112 113 114 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 112 def api_response ApiResponse.new(@response) end |
#links ⇒ Object
Return the links that the resource has
117 118 119 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 117 def links @subscription_links ||= Links.new(@links) end |
#to_h ⇒ Object
Provides the subscription resource as a hash of all its readable attributes
122 123 124 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 122 def to_h @object end |