dodopayments 2.26.0 → 2.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/dodopayments/client.rb +4 -0
- data/lib/dodopayments/internal/type/union.rb +15 -5
- data/lib/dodopayments/models/balance_ledger_entry.rb +9 -1
- data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
- data/lib/dodopayments/models/blocklist/block_by_customer_id.rb +18 -0
- data/lib/dodopayments/models/blocklist/block_by_email.rb +18 -0
- data/lib/dodopayments/models/blocklist/block_identifier.rb +21 -0
- data/lib/dodopayments/models/blocklist/blocked_customer.rb +128 -0
- data/lib/dodopayments/models/blocklist/blocked_customer_source.rb +22 -0
- data/lib/dodopayments/models/blocklist/create_blocked_customer_request.rb +66 -0
- data/lib/dodopayments/models/blocklist/customer_create_params.rb +16 -0
- data/lib/dodopayments/models/blocklist/customer_delete_params.rb +22 -0
- data/lib/dodopayments/models/blocklist/customer_list_params.rb +64 -0
- data/lib/dodopayments/models/blocklist/customer_retrieve_params.rb +22 -0
- data/lib/dodopayments/models/blocklist/customers/blocked_customer_note.rb +44 -0
- data/lib/dodopayments/models/blocklist/customers/note_create_params.rb +24 -0
- data/lib/dodopayments/models/blocklist/customers/note_request.rb +19 -0
- data/lib/dodopayments/models/blocklist/customers/note_update_params.rb +30 -0
- data/lib/dodopayments/models/checkout_session_preview_response.rb +10 -1
- data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +1 -1
- data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rb +21 -1
- data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +2 -7
- data/lib/dodopayments/models/customer.rb +22 -1
- data/lib/dodopayments/models/customers/email_body.rb +57 -0
- data/lib/dodopayments/models/customers/email_failure_code.rb +27 -0
- data/lib/dodopayments/models/customers/email_list_params.rb +39 -0
- data/lib/dodopayments/models/customers/email_log_item.rb +121 -0
- data/lib/dodopayments/models/customers/email_log_status.rb +24 -0
- data/lib/dodopayments/models/customers/email_policies.rb +45 -0
- data/lib/dodopayments/models/customers/email_retrieve_body_params.rb +28 -0
- data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +1 -0
- data/lib/dodopayments/models/dunning_started_webhook_event.rb +1 -0
- data/lib/dodopayments/models/manual_retry.rb +76 -0
- data/lib/dodopayments/models/manual_retry_state.rb +50 -0
- data/lib/dodopayments/models/payment_retrieve_retry_state_params.rb +20 -0
- data/lib/dodopayments/models/payment_retry_params.rb +20 -0
- data/lib/dodopayments/models/price.rb +95 -27
- data/lib/dodopayments/models/subscription.rb +10 -1
- data/lib/dodopayments/models/subscription_active_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_cancelled_webhook_event.rb +33 -4
- data/lib/dodopayments/models/subscription_create_response.rb +10 -1
- data/lib/dodopayments/models/subscription_expired_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_failed_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_list_params.rb +1 -0
- data/lib/dodopayments/models/subscription_list_response.rb +10 -1
- data/lib/dodopayments/models/subscription_on_hold_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_past_due_webhook_event.rb +68 -0
- data/lib/dodopayments/models/subscription_paused_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_plan_changed_webhook_event.rb +33 -4
- data/lib/dodopayments/models/subscription_renewed_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_status.rb +1 -0
- data/lib/dodopayments/models/subscription_unpaused_webhook_event.rb +32 -4
- data/lib/dodopayments/models/subscription_update_params.rb +1 -0
- data/lib/dodopayments/models/subscription_update_payment_method_webhook_event.rb +34 -4
- data/lib/dodopayments/models/subscription_updated_webhook_event.rb +32 -4
- data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +3 -1
- data/lib/dodopayments/models/unwrap_webhook_event.rb +3 -1
- data/lib/dodopayments/models/webhook_event_type.rb +1 -0
- data/lib/dodopayments/models/webhook_payload.rb +19 -1
- data/lib/dodopayments/models.rb +12 -0
- data/lib/dodopayments/resources/blocklist/customers/notes.rb +68 -0
- data/lib/dodopayments/resources/blocklist/customers.rb +107 -0
- data/lib/dodopayments/resources/blocklist.rb +18 -0
- data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -0
- data/lib/dodopayments/resources/customers/emails.rb +76 -0
- data/lib/dodopayments/resources/customers.rb +4 -0
- data/lib/dodopayments/resources/payments.rb +36 -0
- data/lib/dodopayments/resources/webhooks.rb +2 -2
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +31 -1
- data/rbi/dodopayments/client.rbi +3 -0
- data/rbi/dodopayments/models/balance_ledger_entry.rbi +16 -0
- data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
- data/rbi/dodopayments/models/blocklist/block_by_customer_id.rbi +32 -0
- data/rbi/dodopayments/models/blocklist/block_by_email.rbi +32 -0
- data/rbi/dodopayments/models/blocklist/block_identifier.rbi +30 -0
- data/rbi/dodopayments/models/blocklist/blocked_customer.rbi +161 -0
- data/rbi/dodopayments/models/blocklist/blocked_customer_source.rbi +55 -0
- data/rbi/dodopayments/models/blocklist/create_blocked_customer_request.rbi +143 -0
- data/rbi/dodopayments/models/blocklist/customer_create_params.rbi +34 -0
- data/rbi/dodopayments/models/blocklist/customer_delete_params.rbi +40 -0
- data/rbi/dodopayments/models/blocklist/customer_list_params.rbi +88 -0
- data/rbi/dodopayments/models/blocklist/customer_retrieve_params.rbi +40 -0
- data/rbi/dodopayments/models/blocklist/customers/blocked_customer_note.rbi +66 -0
- data/rbi/dodopayments/models/blocklist/customers/note_create_params.rbi +45 -0
- data/rbi/dodopayments/models/blocklist/customers/note_request.rbi +30 -0
- data/rbi/dodopayments/models/blocklist/customers/note_update_params.rbi +50 -0
- data/rbi/dodopayments/models/checkout_session_preview_response.rbi +10 -0
- data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +2 -2
- data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbi +8 -0
- data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +2 -6
- data/rbi/dodopayments/models/customer.rbi +20 -0
- data/rbi/dodopayments/models/customers/email_body.rbi +88 -0
- data/rbi/dodopayments/models/customers/email_failure_code.rbi +70 -0
- data/rbi/dodopayments/models/customers/email_list_params.rbi +68 -0
- data/rbi/dodopayments/models/customers/email_log_item.rbi +157 -0
- data/rbi/dodopayments/models/customers/email_log_status.rbi +46 -0
- data/rbi/dodopayments/models/customers/email_policies.rbi +68 -0
- data/rbi/dodopayments/models/customers/email_retrieve_body_params.rbi +48 -0
- data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +5 -0
- data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +5 -0
- data/rbi/dodopayments/models/manual_retry.rbi +93 -0
- data/rbi/dodopayments/models/manual_retry_state.rbi +65 -0
- data/rbi/dodopayments/models/payment_retrieve_retry_state_params.rbi +38 -0
- data/rbi/dodopayments/models/payment_retry_params.rbi +38 -0
- data/rbi/dodopayments/models/price.rbi +124 -25
- data/rbi/dodopayments/models/subscription.rbi +10 -0
- data/rbi/dodopayments/models/subscription_active_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_cancelled_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_create_response.rbi +10 -0
- data/rbi/dodopayments/models/subscription_expired_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_failed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_list_params.rbi +5 -0
- data/rbi/dodopayments/models/subscription_list_response.rbi +10 -0
- data/rbi/dodopayments/models/subscription_on_hold_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_past_due_webhook_event.rbi +114 -0
- data/rbi/dodopayments/models/subscription_paused_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_plan_changed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_renewed_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_status.rbi +2 -0
- data/rbi/dodopayments/models/subscription_unpaused_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/subscription_update_params.rbi +5 -0
- data/rbi/dodopayments/models/subscription_update_payment_method_webhook_event.rbi +58 -6
- data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +53 -6
- data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +1 -0
- data/rbi/dodopayments/models/unwrap_webhook_event.rbi +1 -0
- data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
- data/rbi/dodopayments/models/webhook_payload.rbi +37 -3
- data/rbi/dodopayments/models.rbi +14 -0
- data/rbi/dodopayments/resources/blocklist/customers/notes.rbi +50 -0
- data/rbi/dodopayments/resources/blocklist/customers.rbi +88 -0
- data/rbi/dodopayments/resources/blocklist.rbi +15 -0
- data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +2 -1
- data/rbi/dodopayments/resources/customers/emails.rbi +60 -0
- data/rbi/dodopayments/resources/customers.rbi +3 -0
- data/rbi/dodopayments/resources/payments.rbi +26 -0
- data/rbi/dodopayments/resources/webhooks.rbi +2 -0
- data/sig/dodopayments/client.rbs +2 -0
- data/sig/dodopayments/models/balance_ledger_entry.rbs +9 -0
- data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
- data/sig/dodopayments/models/blocklist/block_by_customer_id.rbs +15 -0
- data/sig/dodopayments/models/blocklist/block_by_email.rbs +15 -0
- data/sig/dodopayments/models/blocklist/block_identifier.rbs +15 -0
- data/sig/dodopayments/models/blocklist/blocked_customer.rbs +87 -0
- data/sig/dodopayments/models/blocklist/blocked_customer_source.rbs +20 -0
- data/sig/dodopayments/models/blocklist/create_blocked_customer_request.rbs +71 -0
- data/sig/dodopayments/models/blocklist/customer_create_params.rbs +17 -0
- data/sig/dodopayments/models/blocklist/customer_delete_params.rbs +25 -0
- data/sig/dodopayments/models/blocklist/customer_list_params.rbs +53 -0
- data/sig/dodopayments/models/blocklist/customer_retrieve_params.rbs +25 -0
- data/sig/dodopayments/models/blocklist/customers/blocked_customer_note.rbs +44 -0
- data/sig/dodopayments/models/blocklist/customers/note_create_params.rbs +30 -0
- data/sig/dodopayments/models/blocklist/customers/note_request.rbs +17 -0
- data/sig/dodopayments/models/blocklist/customers/note_update_params.rbs +36 -0
- data/sig/dodopayments/models/checkout_session_preview_response.rbs +5 -0
- data/sig/dodopayments/models/credit_entitlements/balance_create_ledger_entry_response.rbs +5 -0
- data/sig/dodopayments/models/customer.rbs +10 -0
- data/sig/dodopayments/models/customers/email_body.rbs +42 -0
- data/sig/dodopayments/models/customers/email_failure_code.rbs +30 -0
- data/sig/dodopayments/models/customers/email_list_params.rbs +38 -0
- data/sig/dodopayments/models/customers/email_log_item.rbs +82 -0
- data/sig/dodopayments/models/customers/email_log_status.rbs +20 -0
- data/sig/dodopayments/models/customers/email_policies.rbs +37 -0
- data/sig/dodopayments/models/customers/email_retrieve_body_params.rbs +30 -0
- data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +2 -1
- data/sig/dodopayments/models/dunning_started_webhook_event.rbs +2 -1
- data/sig/dodopayments/models/manual_retry.rbs +55 -0
- data/sig/dodopayments/models/manual_retry_state.rbs +40 -0
- data/sig/dodopayments/models/payment_retrieve_retry_state_params.rbs +23 -0
- data/sig/dodopayments/models/payment_retry_params.rbs +23 -0
- data/sig/dodopayments/models/price.rbs +52 -17
- data/sig/dodopayments/models/subscription.rbs +5 -0
- data/sig/dodopayments/models/subscription_active_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_cancelled_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_create_response.rbs +5 -0
- data/sig/dodopayments/models/subscription_expired_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_failed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_list_params.rbs +2 -0
- data/sig/dodopayments/models/subscription_list_response.rbs +5 -0
- data/sig/dodopayments/models/subscription_on_hold_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_past_due_webhook_event.rbs +47 -0
- data/sig/dodopayments/models/subscription_paused_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_plan_changed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_renewed_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_status.rbs +9 -1
- data/sig/dodopayments/models/subscription_unpaused_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_update_params.rbs +2 -0
- data/sig/dodopayments/models/subscription_update_payment_method_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +16 -4
- data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
- data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
- data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
- data/sig/dodopayments/models/webhook_payload.rbs +16 -4
- data/sig/dodopayments/models.rbs +12 -0
- data/sig/dodopayments/resources/blocklist/customers/notes.rbs +24 -0
- data/sig/dodopayments/resources/blocklist/customers.rbs +36 -0
- data/sig/dodopayments/resources/blocklist.rbs +9 -0
- data/sig/dodopayments/resources/customers/emails.rbs +22 -0
- data/sig/dodopayments/resources/customers.rbs +2 -0
- data/sig/dodopayments/resources/payments.rbs +10 -0
- data/sig/dodopayments/resources/webhooks.rbs +2 -0
- metadata +92 -2
|
@@ -28,10 +28,6 @@ module Dodopayments
|
|
|
28
28
|
sig { returns(Dodopayments::Currency::OrSymbol) }
|
|
29
29
|
attr_accessor :currency
|
|
30
30
|
|
|
31
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
32
|
-
sig { returns(Integer) }
|
|
33
|
-
attr_accessor :discount
|
|
34
|
-
|
|
35
31
|
# The payment amount, in the smallest denomination of the currency (e.g., cents
|
|
36
32
|
# for USD). For example, to charge $1.00, pass `100`.
|
|
37
33
|
#
|
|
@@ -43,6 +39,24 @@ module Dodopayments
|
|
|
43
39
|
sig { returns(Symbol) }
|
|
44
40
|
attr_accessor :type
|
|
45
41
|
|
|
42
|
+
# Deprecated: use `discount_bps` instead.
|
|
43
|
+
#
|
|
44
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
45
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
46
|
+
sig { returns(T.nilable(Integer)) }
|
|
47
|
+
attr_reader :discount
|
|
48
|
+
|
|
49
|
+
sig { params(discount: Integer).void }
|
|
50
|
+
attr_writer :discount
|
|
51
|
+
|
|
52
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
53
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
54
|
+
#
|
|
55
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
56
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
57
|
+
sig { returns(T.nilable(Integer)) }
|
|
58
|
+
attr_accessor :discount_bps
|
|
59
|
+
|
|
46
60
|
# Indicates whether the customer can pay any amount they choose. If set to `true`,
|
|
47
61
|
# the [`price`](Self::price) field is the minimum amount.
|
|
48
62
|
sig { returns(T.nilable(T::Boolean)) }
|
|
@@ -74,8 +88,9 @@ module Dodopayments
|
|
|
74
88
|
sig do
|
|
75
89
|
params(
|
|
76
90
|
currency: Dodopayments::Currency::OrSymbol,
|
|
77
|
-
discount: Integer,
|
|
78
91
|
price: Integer,
|
|
92
|
+
discount: Integer,
|
|
93
|
+
discount_bps: T.nilable(Integer),
|
|
79
94
|
pay_what_you_want: T::Boolean,
|
|
80
95
|
purchasing_power_parity: T::Boolean,
|
|
81
96
|
suggested_price: T.nilable(Integer),
|
|
@@ -86,14 +101,23 @@ module Dodopayments
|
|
|
86
101
|
def self.new(
|
|
87
102
|
# The currency in which the payment is made.
|
|
88
103
|
currency:,
|
|
89
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
90
|
-
discount:,
|
|
91
104
|
# The payment amount, in the smallest denomination of the currency (e.g., cents
|
|
92
105
|
# for USD). For example, to charge $1.00, pass `100`.
|
|
93
106
|
#
|
|
94
107
|
# If [`pay_what_you_want`](Self::pay_what_you_want) is set to `true`, this field
|
|
95
108
|
# represents the **minimum** amount the customer must pay.
|
|
96
109
|
price:,
|
|
110
|
+
# Deprecated: use `discount_bps` instead.
|
|
111
|
+
#
|
|
112
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
113
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
114
|
+
discount: nil,
|
|
115
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
116
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
117
|
+
#
|
|
118
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
119
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
120
|
+
discount_bps: nil,
|
|
97
121
|
# Indicates whether the customer can pay any amount they choose. If set to `true`,
|
|
98
122
|
# the [`price`](Self::price) field is the minimum amount.
|
|
99
123
|
pay_what_you_want: nil,
|
|
@@ -115,9 +139,10 @@ module Dodopayments
|
|
|
115
139
|
override.returns(
|
|
116
140
|
{
|
|
117
141
|
currency: Dodopayments::Currency::OrSymbol,
|
|
118
|
-
discount: Integer,
|
|
119
142
|
price: Integer,
|
|
120
143
|
type: Symbol,
|
|
144
|
+
discount: Integer,
|
|
145
|
+
discount_bps: T.nilable(Integer),
|
|
121
146
|
pay_what_you_want: T::Boolean,
|
|
122
147
|
purchasing_power_parity: T::Boolean,
|
|
123
148
|
suggested_price: T.nilable(Integer),
|
|
@@ -142,10 +167,6 @@ module Dodopayments
|
|
|
142
167
|
sig { returns(Dodopayments::Currency::OrSymbol) }
|
|
143
168
|
attr_accessor :currency
|
|
144
169
|
|
|
145
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
146
|
-
sig { returns(Integer) }
|
|
147
|
-
attr_accessor :discount
|
|
148
|
-
|
|
149
170
|
# Number of units for the payment frequency. For example, a value of `1` with a
|
|
150
171
|
# `payment_frequency_interval` of `month` represents monthly payments.
|
|
151
172
|
sig { returns(Integer) }
|
|
@@ -172,6 +193,24 @@ module Dodopayments
|
|
|
172
193
|
sig { returns(Symbol) }
|
|
173
194
|
attr_accessor :type
|
|
174
195
|
|
|
196
|
+
# Deprecated: use `discount_bps` instead.
|
|
197
|
+
#
|
|
198
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
199
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
200
|
+
sig { returns(T.nilable(Integer)) }
|
|
201
|
+
attr_reader :discount
|
|
202
|
+
|
|
203
|
+
sig { params(discount: Integer).void }
|
|
204
|
+
attr_writer :discount
|
|
205
|
+
|
|
206
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
207
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
208
|
+
#
|
|
209
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
210
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
211
|
+
sig { returns(T.nilable(Integer)) }
|
|
212
|
+
attr_accessor :discount_bps
|
|
213
|
+
|
|
175
214
|
# Opts this price in to purchasing power parity. The business must also enable
|
|
176
215
|
# purchasing power parity. The discount percentage per country is always
|
|
177
216
|
# business-wide. Defaults to `false`.
|
|
@@ -195,6 +234,13 @@ module Dodopayments
|
|
|
195
234
|
sig { returns(T.nilable(T::Boolean)) }
|
|
196
235
|
attr_accessor :trial_apply_discounts
|
|
197
236
|
|
|
237
|
+
# Let a customer start a free trial with no card. Defaults to false.
|
|
238
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
239
|
+
attr_reader :trial_payment_method_optional
|
|
240
|
+
|
|
241
|
+
sig { params(trial_payment_method_optional: T::Boolean).void }
|
|
242
|
+
attr_writer :trial_payment_method_optional
|
|
243
|
+
|
|
198
244
|
# Number of days for the trial period. A value of `0` indicates no trial period.
|
|
199
245
|
sig { returns(T.nilable(Integer)) }
|
|
200
246
|
attr_reader :trial_period_days
|
|
@@ -202,29 +248,38 @@ module Dodopayments
|
|
|
202
248
|
sig { params(trial_period_days: Integer).void }
|
|
203
249
|
attr_writer :trial_period_days
|
|
204
250
|
|
|
251
|
+
# Let a customer start a subscription with no card, when the amount due today is
|
|
252
|
+
# `0` (a native `0` price, or a 100% discount). Defaults to false.
|
|
253
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
254
|
+
attr_reader :zero_amount_payment_method_optional
|
|
255
|
+
|
|
256
|
+
sig { params(zero_amount_payment_method_optional: T::Boolean).void }
|
|
257
|
+
attr_writer :zero_amount_payment_method_optional
|
|
258
|
+
|
|
205
259
|
# Recurring price details.
|
|
206
260
|
sig do
|
|
207
261
|
params(
|
|
208
262
|
currency: Dodopayments::Currency::OrSymbol,
|
|
209
|
-
discount: Integer,
|
|
210
263
|
payment_frequency_count: Integer,
|
|
211
264
|
payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
212
265
|
price: Integer,
|
|
213
266
|
subscription_period_count: Integer,
|
|
214
267
|
subscription_period_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
268
|
+
discount: Integer,
|
|
269
|
+
discount_bps: T.nilable(Integer),
|
|
215
270
|
purchasing_power_parity: T::Boolean,
|
|
216
271
|
tax_inclusive: T.nilable(T::Boolean),
|
|
217
272
|
trial_amount: T.nilable(Integer),
|
|
218
273
|
trial_apply_discounts: T.nilable(T::Boolean),
|
|
274
|
+
trial_payment_method_optional: T::Boolean,
|
|
219
275
|
trial_period_days: Integer,
|
|
276
|
+
zero_amount_payment_method_optional: T::Boolean,
|
|
220
277
|
type: Symbol
|
|
221
278
|
).returns(T.attached_class)
|
|
222
279
|
end
|
|
223
280
|
def self.new(
|
|
224
281
|
# The currency in which the payment is made.
|
|
225
282
|
currency:,
|
|
226
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
227
|
-
discount:,
|
|
228
283
|
# Number of units for the payment frequency. For example, a value of `1` with a
|
|
229
284
|
# `payment_frequency_interval` of `month` represents monthly payments.
|
|
230
285
|
payment_frequency_count:,
|
|
@@ -238,6 +293,17 @@ module Dodopayments
|
|
|
238
293
|
subscription_period_count:,
|
|
239
294
|
# The time interval for the subscription period (e.g., day, month, year).
|
|
240
295
|
subscription_period_interval:,
|
|
296
|
+
# Deprecated: use `discount_bps` instead.
|
|
297
|
+
#
|
|
298
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
299
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
300
|
+
discount: nil,
|
|
301
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
302
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
303
|
+
#
|
|
304
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
305
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
306
|
+
discount_bps: nil,
|
|
241
307
|
# Opts this price in to purchasing power parity. The business must also enable
|
|
242
308
|
# purchasing power parity. The discount percentage per country is always
|
|
243
309
|
# business-wide. Defaults to `false`.
|
|
@@ -250,8 +316,13 @@ module Dodopayments
|
|
|
250
316
|
# Whether discount codes reduce the trial charge. Defaults to false. Only
|
|
251
317
|
# meaningful when a paid trial is configured.
|
|
252
318
|
trial_apply_discounts: nil,
|
|
319
|
+
# Let a customer start a free trial with no card. Defaults to false.
|
|
320
|
+
trial_payment_method_optional: nil,
|
|
253
321
|
# Number of days for the trial period. A value of `0` indicates no trial period.
|
|
254
322
|
trial_period_days: nil,
|
|
323
|
+
# Let a customer start a subscription with no card, when the amount due today is
|
|
324
|
+
# `0` (a native `0` price, or a 100% discount). Defaults to false.
|
|
325
|
+
zero_amount_payment_method_optional: nil,
|
|
255
326
|
type: :recurring_price
|
|
256
327
|
)
|
|
257
328
|
end
|
|
@@ -260,7 +331,6 @@ module Dodopayments
|
|
|
260
331
|
override.returns(
|
|
261
332
|
{
|
|
262
333
|
currency: Dodopayments::Currency::OrSymbol,
|
|
263
|
-
discount: Integer,
|
|
264
334
|
payment_frequency_count: Integer,
|
|
265
335
|
payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
266
336
|
price: Integer,
|
|
@@ -268,11 +338,15 @@ module Dodopayments
|
|
|
268
338
|
subscription_period_interval:
|
|
269
339
|
Dodopayments::TimeInterval::OrSymbol,
|
|
270
340
|
type: Symbol,
|
|
341
|
+
discount: Integer,
|
|
342
|
+
discount_bps: T.nilable(Integer),
|
|
271
343
|
purchasing_power_parity: T::Boolean,
|
|
272
344
|
tax_inclusive: T.nilable(T::Boolean),
|
|
273
345
|
trial_amount: T.nilable(Integer),
|
|
274
346
|
trial_apply_discounts: T.nilable(T::Boolean),
|
|
275
|
-
|
|
347
|
+
trial_payment_method_optional: T::Boolean,
|
|
348
|
+
trial_period_days: Integer,
|
|
349
|
+
zero_amount_payment_method_optional: T::Boolean
|
|
276
350
|
}
|
|
277
351
|
)
|
|
278
352
|
end
|
|
@@ -293,10 +367,6 @@ module Dodopayments
|
|
|
293
367
|
sig { returns(Dodopayments::Currency::OrSymbol) }
|
|
294
368
|
attr_accessor :currency
|
|
295
369
|
|
|
296
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
297
|
-
sig { returns(Integer) }
|
|
298
|
-
attr_accessor :discount
|
|
299
|
-
|
|
300
370
|
# The fixed payment amount. Represented in the lowest denomination of the currency
|
|
301
371
|
# (e.g., cents for USD). For example, to charge $1.00, pass `100`.
|
|
302
372
|
sig { returns(Integer) }
|
|
@@ -323,6 +393,24 @@ module Dodopayments
|
|
|
323
393
|
sig { returns(Symbol) }
|
|
324
394
|
attr_accessor :type
|
|
325
395
|
|
|
396
|
+
# Deprecated: use `discount_bps` instead.
|
|
397
|
+
#
|
|
398
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
399
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
400
|
+
sig { returns(T.nilable(Integer)) }
|
|
401
|
+
attr_reader :discount
|
|
402
|
+
|
|
403
|
+
sig { params(discount: Integer).void }
|
|
404
|
+
attr_writer :discount
|
|
405
|
+
|
|
406
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
407
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
408
|
+
#
|
|
409
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
410
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
411
|
+
sig { returns(T.nilable(Integer)) }
|
|
412
|
+
attr_accessor :discount_bps
|
|
413
|
+
|
|
326
414
|
sig { returns(T.nilable(T::Array[Dodopayments::AddMeterToPrice])) }
|
|
327
415
|
attr_accessor :meters
|
|
328
416
|
|
|
@@ -344,12 +432,13 @@ module Dodopayments
|
|
|
344
432
|
sig do
|
|
345
433
|
params(
|
|
346
434
|
currency: Dodopayments::Currency::OrSymbol,
|
|
347
|
-
discount: Integer,
|
|
348
435
|
fixed_price: Integer,
|
|
349
436
|
payment_frequency_count: Integer,
|
|
350
437
|
payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
351
438
|
subscription_period_count: Integer,
|
|
352
439
|
subscription_period_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
440
|
+
discount: Integer,
|
|
441
|
+
discount_bps: T.nilable(Integer),
|
|
353
442
|
meters: T.nilable(T::Array[Dodopayments::AddMeterToPrice::OrHash]),
|
|
354
443
|
purchasing_power_parity: T::Boolean,
|
|
355
444
|
tax_inclusive: T.nilable(T::Boolean),
|
|
@@ -359,8 +448,6 @@ module Dodopayments
|
|
|
359
448
|
def self.new(
|
|
360
449
|
# The currency in which the payment is made.
|
|
361
450
|
currency:,
|
|
362
|
-
# Discount applied to the price, represented as a percentage (0 to 100).
|
|
363
|
-
discount:,
|
|
364
451
|
# The fixed payment amount. Represented in the lowest denomination of the currency
|
|
365
452
|
# (e.g., cents for USD). For example, to charge $1.00, pass `100`.
|
|
366
453
|
fixed_price:,
|
|
@@ -374,6 +461,17 @@ module Dodopayments
|
|
|
374
461
|
subscription_period_count:,
|
|
375
462
|
# The time interval for the subscription period (e.g., day, month, year).
|
|
376
463
|
subscription_period_interval:,
|
|
464
|
+
# Deprecated: use `discount_bps` instead.
|
|
465
|
+
#
|
|
466
|
+
# Discount applied to the price, represented as a percentage (0 to 100). A
|
|
467
|
+
# response rounds this value to the nearest whole percent. Defaults to `0`.
|
|
468
|
+
discount: nil,
|
|
469
|
+
# Discount applied to the price, in basis points. 100 basis points make one
|
|
470
|
+
# percent, so `1250` is a discount of 12.5%.
|
|
471
|
+
#
|
|
472
|
+
# Use this field for a discount with a fraction of a percent. A request that sends
|
|
473
|
+
# this field ignores `discount`. A value of `0` gives no discount.
|
|
474
|
+
discount_bps: nil,
|
|
377
475
|
meters: nil,
|
|
378
476
|
# Opts this price in to purchasing power parity. The business must also enable
|
|
379
477
|
# purchasing power parity. The discount percentage per country is always
|
|
@@ -390,7 +488,6 @@ module Dodopayments
|
|
|
390
488
|
override.returns(
|
|
391
489
|
{
|
|
392
490
|
currency: Dodopayments::Currency::OrSymbol,
|
|
393
|
-
discount: Integer,
|
|
394
491
|
fixed_price: Integer,
|
|
395
492
|
payment_frequency_count: Integer,
|
|
396
493
|
payment_frequency_interval: Dodopayments::TimeInterval::OrSymbol,
|
|
@@ -398,6 +495,8 @@ module Dodopayments
|
|
|
398
495
|
subscription_period_interval:
|
|
399
496
|
Dodopayments::TimeInterval::OrSymbol,
|
|
400
497
|
type: Symbol,
|
|
498
|
+
discount: Integer,
|
|
499
|
+
discount_bps: T.nilable(Integer),
|
|
401
500
|
meters: T.nilable(T::Array[Dodopayments::AddMeterToPrice]),
|
|
402
501
|
purchasing_power_parity: T::Boolean,
|
|
403
502
|
tax_inclusive: T.nilable(T::Boolean)
|
|
@@ -48,6 +48,11 @@ module Dodopayments
|
|
|
48
48
|
end
|
|
49
49
|
attr_writer :customer
|
|
50
50
|
|
|
51
|
+
# Whether a payment method is on file. False while a card-optional subscription
|
|
52
|
+
# waits for the customer to add one.
|
|
53
|
+
sig { returns(T::Boolean) }
|
|
54
|
+
attr_accessor :has_payment_method
|
|
55
|
+
|
|
51
56
|
# Additional custom data associated with the subscription
|
|
52
57
|
sig { returns(T::Hash[Symbol, Dodopayments::MetadataItem::Variants]) }
|
|
53
58
|
attr_accessor :metadata
|
|
@@ -201,6 +206,7 @@ module Dodopayments
|
|
|
201
206
|
T::Array[Dodopayments::CreditEntitlementCartResponse::OrHash],
|
|
202
207
|
currency: Dodopayments::Currency::OrSymbol,
|
|
203
208
|
customer: Dodopayments::CustomerLimitedDetails::OrHash,
|
|
209
|
+
has_payment_method: T::Boolean,
|
|
204
210
|
metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
|
|
205
211
|
meter_credit_entitlement_cart:
|
|
206
212
|
T::Array[Dodopayments::MeterCreditEntitlementCartResponse::OrHash],
|
|
@@ -255,6 +261,9 @@ module Dodopayments
|
|
|
255
261
|
currency:,
|
|
256
262
|
# Customer details associated with the subscription
|
|
257
263
|
customer:,
|
|
264
|
+
# Whether a payment method is on file. False while a card-optional subscription
|
|
265
|
+
# waits for the customer to add one.
|
|
266
|
+
has_payment_method:,
|
|
258
267
|
# Additional custom data associated with the subscription
|
|
259
268
|
metadata:,
|
|
260
269
|
# Meter credit entitlement cart settings for this subscription
|
|
@@ -338,6 +347,7 @@ module Dodopayments
|
|
|
338
347
|
T::Array[Dodopayments::CreditEntitlementCartResponse],
|
|
339
348
|
currency: Dodopayments::Currency::TaggedSymbol,
|
|
340
349
|
customer: Dodopayments::CustomerLimitedDetails,
|
|
350
|
+
has_payment_method: T::Boolean,
|
|
341
351
|
metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
|
|
342
352
|
meter_credit_entitlement_cart:
|
|
343
353
|
T::Array[Dodopayments::MeterCreditEntitlementCartResponse],
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionActiveWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionActiveWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionActiveWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionActiveWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionActiveWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionCancelledWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionCancelledWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionCancelledWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionCancelledWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionCancelledWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|
|
@@ -32,6 +32,11 @@ module Dodopayments
|
|
|
32
32
|
sig { returns(String) }
|
|
33
33
|
attr_accessor :payment_id
|
|
34
34
|
|
|
35
|
+
# False when the customer can start this subscription with no card. True for every
|
|
36
|
+
# other subscription.
|
|
37
|
+
sig { returns(T::Boolean) }
|
|
38
|
+
attr_accessor :payment_method_required
|
|
39
|
+
|
|
35
40
|
# Tax will be added to the amount and charged to the customer on each billing
|
|
36
41
|
# cycle
|
|
37
42
|
sig { returns(Integer) }
|
|
@@ -86,6 +91,7 @@ module Dodopayments
|
|
|
86
91
|
customer: Dodopayments::CustomerLimitedDetails::OrHash,
|
|
87
92
|
metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
|
|
88
93
|
payment_id: String,
|
|
94
|
+
payment_method_required: T::Boolean,
|
|
89
95
|
recurring_pre_tax_amount: Integer,
|
|
90
96
|
subscription_id: String,
|
|
91
97
|
client_secret: T.nilable(String),
|
|
@@ -111,6 +117,9 @@ module Dodopayments
|
|
|
111
117
|
metadata:,
|
|
112
118
|
# First payment id for the subscription
|
|
113
119
|
payment_id:,
|
|
120
|
+
# False when the customer can start this subscription with no card. True for every
|
|
121
|
+
# other subscription.
|
|
122
|
+
payment_method_required:,
|
|
114
123
|
# Tax will be added to the amount and charged to the customer on each billing
|
|
115
124
|
# cycle
|
|
116
125
|
recurring_pre_tax_amount:,
|
|
@@ -143,6 +152,7 @@ module Dodopayments
|
|
|
143
152
|
customer: Dodopayments::CustomerLimitedDetails,
|
|
144
153
|
metadata: T::Hash[Symbol, Dodopayments::MetadataItem::Variants],
|
|
145
154
|
payment_id: String,
|
|
155
|
+
payment_method_required: T::Boolean,
|
|
146
156
|
recurring_pre_tax_amount: Integer,
|
|
147
157
|
subscription_id: String,
|
|
148
158
|
client_secret: T.nilable(String),
|
|
@@ -15,11 +15,16 @@ module Dodopayments
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :business_id
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
|
|
18
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
19
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
20
|
+
sig { returns(Dodopayments::SubscriptionExpiredWebhookEvent::Data) }
|
|
20
21
|
attr_reader :data
|
|
21
22
|
|
|
22
|
-
sig
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
data: Dodopayments::SubscriptionExpiredWebhookEvent::Data::OrHash
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
23
28
|
attr_writer :data
|
|
24
29
|
|
|
25
30
|
# The timestamp of when the event occurred
|
|
@@ -33,7 +38,7 @@ module Dodopayments
|
|
|
33
38
|
sig do
|
|
34
39
|
params(
|
|
35
40
|
business_id: String,
|
|
36
|
-
data: Dodopayments::
|
|
41
|
+
data: Dodopayments::SubscriptionExpiredWebhookEvent::Data::OrHash,
|
|
37
42
|
timestamp: Time,
|
|
38
43
|
type: Symbol
|
|
39
44
|
).returns(T.attached_class)
|
|
@@ -41,7 +46,8 @@ module Dodopayments
|
|
|
41
46
|
def self.new(
|
|
42
47
|
# The business identifier
|
|
43
48
|
business_id:,
|
|
44
|
-
#
|
|
49
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
50
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
45
51
|
data:,
|
|
46
52
|
# The timestamp of when the event occurred
|
|
47
53
|
timestamp:,
|
|
@@ -54,7 +60,7 @@ module Dodopayments
|
|
|
54
60
|
override.returns(
|
|
55
61
|
{
|
|
56
62
|
business_id: String,
|
|
57
|
-
data: Dodopayments::
|
|
63
|
+
data: Dodopayments::SubscriptionExpiredWebhookEvent::Data,
|
|
58
64
|
timestamp: Time,
|
|
59
65
|
type: Symbol
|
|
60
66
|
}
|
|
@@ -62,6 +68,47 @@ module Dodopayments
|
|
|
62
68
|
end
|
|
63
69
|
def to_hash
|
|
64
70
|
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Models::Subscription
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::SubscriptionExpiredWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
82
|
+
# `cancelled` at this time.
|
|
83
|
+
#
|
|
84
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
85
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
86
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
87
|
+
# deadline too, next to a `past_due` status.
|
|
88
|
+
sig { returns(T.nilable(Time)) }
|
|
89
|
+
attr_accessor :past_due_ends_at
|
|
90
|
+
|
|
91
|
+
# Subscription payload sent on a webhook. It carries every field of
|
|
92
|
+
# `SubscriptionResponse`, plus the grace-period deadline.
|
|
93
|
+
sig do
|
|
94
|
+
params(past_due_ends_at: T.nilable(Time)).returns(T.attached_class)
|
|
95
|
+
end
|
|
96
|
+
def self.new(
|
|
97
|
+
# Time when the grace period ends. The subscription moves to `on_hold` or to
|
|
98
|
+
# `cancelled` at this time.
|
|
99
|
+
#
|
|
100
|
+
# Read in the same query as the rest of the payload, so it always comes from the
|
|
101
|
+
# row snapshot that produced `status`. It is set whenever the subscription sits in
|
|
102
|
+
# a window at that moment. A delayed event of another type therefore carries the
|
|
103
|
+
# deadline too, next to a `past_due` status.
|
|
104
|
+
past_due_ends_at: nil
|
|
105
|
+
)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { override.returns({ past_due_ends_at: T.nilable(Time) }) }
|
|
109
|
+
def to_hash
|
|
110
|
+
end
|
|
111
|
+
end
|
|
65
112
|
end
|
|
66
113
|
end
|
|
67
114
|
end
|