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:
-
If ‘day_of_month` and `start_date` are not provided `start_date` will be
the [mandate](#core-endpoints-mandates)‘s `next_possible_charge_date` and the subscription will then recur based on the `interval` & `interval_unit`
-
If ‘month` or `day_of_month` are present the following validations
apply:
| interval_unit | __month__ | day_of_month | | :—————- | :——————————————— | :—————————————– | | yearly | optional (required if ‘day_of_month` provided) | optional (invalid if `month` not provided) | | monthly | invalid | optional | | weekly | invalid | invalid |
Examples:
| interval_unit | __interval__ | __month__ | day_of_month | valid?
|
| :—————- | :———– | :——– | :————— | :————————————————- | | yearly | 1 | january | -1 | valid
|
| monthly | 6 | | | valid
|
| monthly | 6 | | 12 | valid
|
| weekly | 2 | | | valid
|
| yearly | 1 | march | | invalid - missing ‘day_of_month` | | yearly | 1 | | 2 | invalid - missing `month` | | monthly | 6 | august | 12 | invalid - `month` must be blank | | 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.
-
#count ⇒ Object
readonly
Returns the value of attribute count.
-
#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.
-
#earliest_charge_date_after_resume ⇒ Object
readonly
Returns the value of attribute earliest_charge_date_after_resume.
-
#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.
-
#parent_plan_paused ⇒ Object
readonly
Returns the value of attribute parent_plan_paused.
-
#payment_reference ⇒ Object
readonly
Returns the value of attribute payment_reference.
-
#retry_if_possible ⇒ Object
readonly
Returns the value of attribute retry_if_possible.
-
#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
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 76 def initialize(object, response = nil) @object = object @amount = object['amount'] @app_fee = object['app_fee'] @count = object['count'] @created_at = object['created_at'] @currency = object['currency'] @day_of_month = object['day_of_month'] @earliest_charge_date_after_resume = object['earliest_charge_date_after_resume'] @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'] @parent_plan_paused = object['parent_plan_paused'] @payment_reference = object['payment_reference'] @retry_if_possible = object['retry_if_possible'] @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.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 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 |
#count ⇒ Object (readonly)
Returns the value of attribute count.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def count @count end |
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def created_at @created_at end |
#currency ⇒ Object (readonly)
Returns the value of attribute currency.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def currency @currency end |
#day_of_month ⇒ Object (readonly)
Returns the value of attribute day_of_month.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def day_of_month @day_of_month end |
#earliest_charge_date_after_resume ⇒ Object (readonly)
Returns the value of attribute earliest_charge_date_after_resume.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def earliest_charge_date_after_resume @earliest_charge_date_after_resume end |
#end_date ⇒ Object (readonly)
Returns the value of attribute end_date.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def end_date @end_date end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def id @id end |
#interval ⇒ Object (readonly)
Returns the value of attribute interval.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def interval @interval end |
#interval_unit ⇒ Object (readonly)
Returns the value of attribute interval_unit.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def interval_unit @interval_unit end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def @metadata end |
#month ⇒ Object (readonly)
Returns the value of attribute month.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def month @month end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def name @name end |
#parent_plan_paused ⇒ Object (readonly)
Returns the value of attribute parent_plan_paused.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def parent_plan_paused @parent_plan_paused end |
#payment_reference ⇒ Object (readonly)
Returns the value of attribute payment_reference.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def payment_reference @payment_reference end |
#retry_if_possible ⇒ Object (readonly)
Returns the value of attribute retry_if_possible.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def retry_if_possible @retry_if_possible end |
#start_date ⇒ Object (readonly)
Returns the value of attribute start_date.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def start_date @start_date end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def status @status end |
#upcoming_payments ⇒ Object (readonly)
Returns the value of attribute upcoming_payments.
71 72 73 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 71 def upcoming_payments @upcoming_payments end |
Instance Method Details
#api_response ⇒ Object
103 104 105 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 103 def api_response ApiResponse.new(@response) end |
#links ⇒ Object
Return the links that the resource has
108 109 110 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 108 def links @subscription_links ||= Links.new(@links) end |
#to_h ⇒ Object
Provides the subscription resource as a hash of all its readable attributes
113 114 115 |
# File 'lib/gocardless_pro/resources/subscription.rb', line 113 def to_h @object end |