dodopayments 2.22.0 → 2.24.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/checkout_session_preview_response.rb +12 -1
  5. data/lib/dodopayments/models/subscription.rb +10 -1
  6. data/lib/dodopayments/models/subscription_list_params.rb +1 -0
  7. data/lib/dodopayments/models/subscription_list_response.rb +10 -1
  8. data/lib/dodopayments/models/subscription_paused_webhook_event.rb +40 -0
  9. data/lib/dodopayments/models/subscription_status.rb +1 -0
  10. data/lib/dodopayments/models/subscription_unpaused_webhook_event.rb +40 -0
  11. data/lib/dodopayments/models/subscription_update_params.rb +10 -1
  12. data/lib/dodopayments/models/tax_category.rb +1 -0
  13. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +5 -1
  14. data/lib/dodopayments/models/unwrap_webhook_event.rb +5 -1
  15. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  16. data/lib/dodopayments/models.rb +4 -0
  17. data/lib/dodopayments/resources/subscriptions.rb +3 -1
  18. data/lib/dodopayments/resources/webhooks.rb +2 -2
  19. data/lib/dodopayments/version.rb +1 -1
  20. data/lib/dodopayments.rb +2 -0
  21. data/rbi/dodopayments/models/checkout_session_preview_response.rbi +14 -0
  22. data/rbi/dodopayments/models/subscription.rbi +10 -0
  23. data/rbi/dodopayments/models/subscription_list_params.rbi +5 -0
  24. data/rbi/dodopayments/models/subscription_list_response.rbi +10 -0
  25. data/rbi/dodopayments/models/subscription_paused_webhook_event.rbi +67 -0
  26. data/rbi/dodopayments/models/subscription_status.rbi +1 -0
  27. data/rbi/dodopayments/models/subscription_unpaused_webhook_event.rbi +67 -0
  28. data/rbi/dodopayments/models/subscription_update_params.rbi +10 -0
  29. data/rbi/dodopayments/models/tax_category.rbi +2 -0
  30. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +2 -0
  31. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +2 -0
  32. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  33. data/rbi/dodopayments/models.rbi +6 -0
  34. data/rbi/dodopayments/resources/subscriptions.rbi +4 -0
  35. data/rbi/dodopayments/resources/webhooks.rbi +4 -0
  36. data/sig/dodopayments/models/checkout_session_preview_response.rbs +5 -0
  37. data/sig/dodopayments/models/subscription.rbs +5 -0
  38. data/sig/dodopayments/models/subscription_list_params.rbs +8 -1
  39. data/sig/dodopayments/models/subscription_list_response.rbs +5 -0
  40. data/sig/dodopayments/models/subscription_paused_webhook_event.rbs +35 -0
  41. data/sig/dodopayments/models/subscription_status.rbs +2 -1
  42. data/sig/dodopayments/models/subscription_unpaused_webhook_event.rbs +35 -0
  43. data/sig/dodopayments/models/subscription_update_params.rbs +5 -0
  44. data/sig/dodopayments/models/tax_category.rbs +3 -1
  45. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +2 -0
  46. data/sig/dodopayments/models/unwrap_webhook_event.rbs +2 -0
  47. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  48. data/sig/dodopayments/models.rbs +4 -0
  49. data/sig/dodopayments/resources/subscriptions.rbs +1 -0
  50. data/sig/dodopayments/resources/webhooks.rbs +4 -0
  51. metadata +8 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 163def2395f779a9e37c434ed82db681beb1604ecfca9e9805408a8748882b14
4
- data.tar.gz: cd58f274a55ce3838d5f779703a1a26127d18381d4ea2f017d841c066ebc238c
3
+ metadata.gz: 54faa371ee06087dd998ac36184e28534d52955c484830b985ef33041c1be2ef
4
+ data.tar.gz: a3033cc80faf66427ae2dbbd42f326580702550236eeac8f672b12e85de156fd
5
5
  SHA512:
6
- metadata.gz: f124c53ff18ae2919095987fa5567cdd032ebfad926e01480868d98a1df64f760432e6de39a9a23bd6e6505f303b6de90063d80e7714df5bdb4a26a7323999ed
7
- data.tar.gz: b6659504610c0a812ffc0766da56f721864a0aa0eed10b846609881f90d07d50c539386f3c6402175c8ee09261f6dae933288e720b038ef035f00aacf21fce8e
6
+ metadata.gz: 51fcd5e514a4b8042240d297815f2857357d42344a60a9b157a6226f93dc5850d421fc560386ced09ec4b351fe0ea4daa685dc7d91dbc8a781bbd1471fcd75c8
7
+ data.tar.gz: f55ccbebdd5c52348a75c2ff069352e5eef4b46e7898cd8401b166ffa7881ef4b387a71fa6f13902ece22d5f4dda4b20e39dfd05787ec2f4c912b7d58e8bb6ad
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.24.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.23.0...v2.24.0) (2026-08-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** add subscription pause/unpause ([40d887a](https://github.com/dodopayments/dodopayments-ruby/commit/40d887abc1f80fca0fffedbd7c9966ef89ec4051))
9
+ * **api:** add subscription pause/unpause ([40280ad](https://github.com/dodopayments/dodopayments-ruby/commit/40280ad39a2abb9297ff48468da7f2bea721d622))
10
+
11
+ ## [2.23.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.22.0...v2.23.0) (2026-08-05)
12
+
13
+
14
+ ### Features
15
+
16
+ * **api:** add addon single_quantity_price and live_tutoring tax category ([531e3b0](https://github.com/dodopayments/dodopayments-ruby/commit/531e3b0e327d01fb8340fb02f9baaadca25723bc))
17
+ * **api:** add addon single_quantity_price and live_tutoring tax category ([a347ee8](https://github.com/dodopayments/dodopayments-ruby/commit/a347ee844bc54bcd9a8c2a82f726b39f488673d7))
18
+
3
19
  ## [2.22.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.21.0...v2.22.0) (2026-07-31)
4
20
 
5
21
 
data/README.md CHANGED
@@ -23,7 +23,7 @@ To use this gem, install via Bundler by adding the following to your application
23
23
  <!-- x-release-please-start-version -->
24
24
 
25
25
  ```ruby
26
- gem "dodopayments", "~> 2.22.0"
26
+ gem "dodopayments", "~> 2.24.0"
27
27
  ```
28
28
 
29
29
  <!-- x-release-please-end -->
@@ -439,6 +439,15 @@ module Dodopayments
439
439
  # @return [Integer]
440
440
  required :quantity, Integer
441
441
 
442
+ # @!attribute single_quantity_price
443
+ # Per-unit price in `currency`, converted and adaptive-priced but pre-tax and
444
+ # pre-discount (both depend on quantity and the rest of the cart). Set even when
445
+ # `quantity` is 0, so the checkout page can price the addon before the buyer has
446
+ # selected any.
447
+ #
448
+ # @return [Integer]
449
+ required :single_quantity_price, Integer
450
+
442
451
  # @!attribute tax_category
443
452
  # Represents the different categories of taxation applicable to various products
444
453
  # and services.
@@ -473,7 +482,7 @@ module Dodopayments
473
482
  # @return [Integer, nil]
474
483
  optional :tax, Integer, nil?: true
475
484
 
476
- # @!method initialize(addon_id:, currency:, discounted_price:, name:, og_currency:, og_price:, quantity:, tax_category:, tax_inclusive:, tax_rate:, description: nil, discount_amount: nil, tax: nil)
485
+ # @!method initialize(addon_id:, currency:, discounted_price:, name:, og_currency:, og_price:, quantity:, single_quantity_price:, tax_category:, tax_inclusive:, tax_rate:, description: nil, discount_amount: nil, tax: nil)
477
486
  # Some parameter documentations has been truncated, see
478
487
  # {Dodopayments::Models::CheckoutSessionPreviewResponse::ProductCart::Addon} for
479
488
  # more details.
@@ -492,6 +501,8 @@ module Dodopayments
492
501
  #
493
502
  # @param quantity [Integer]
494
503
  #
504
+ # @param single_quantity_price [Integer] Per-unit price in `currency`, converted and adaptive-priced but pre-tax
505
+ #
495
506
  # @param tax_category [Symbol, Dodopayments::Models::TaxCategory] Represents the different categories of taxation applicable to various products a
496
507
  #
497
508
  # @param tax_inclusive [Boolean]
@@ -217,6 +217,13 @@ module Dodopayments
217
217
  # @return [Time, nil]
218
218
  optional :expires_at, Time, nil?: true
219
219
 
220
+ # @!attribute paused_at
221
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
222
+ # due to an unresolved pause settlement). `null` otherwise.
223
+ #
224
+ # @return [Time, nil]
225
+ optional :paused_at, Time, nil?: true
226
+
220
227
  # @!attribute payment_method_id
221
228
  # Saved payment method id used for recurring charges
222
229
  #
@@ -243,7 +250,7 @@ module Dodopayments
243
250
  # @return [Integer, nil]
244
251
  optional :trial_amount, Integer, nil?: true
245
252
 
246
- # @!method initialize(addons:, billing:, brand_id:, cancel_at_next_billing_date:, created_at:, credit_entitlement_cart:, currency:, customer:, metadata:, meter_credit_entitlement_cart:, meters:, next_billing_date:, on_demand:, payment_frequency_count:, payment_frequency_interval:, previous_billing_date:, product_id:, quantity:, recurring_pre_tax_amount:, status:, subscription_id:, subscription_period_count:, subscription_period_interval:, tax_inclusive:, trial_period_days:, cancellation_comment: nil, cancellation_feedback: nil, cancelled_at: nil, custom_field_responses: nil, customer_business_name: nil, discount_cycles_remaining: nil, discount_id: nil, discounts: nil, expires_at: nil, payment_method_id: nil, scheduled_change: nil, tax_id: nil, trial_amount: nil)
253
+ # @!method initialize(addons:, billing:, brand_id:, cancel_at_next_billing_date:, created_at:, credit_entitlement_cart:, currency:, customer:, metadata:, meter_credit_entitlement_cart:, meters:, next_billing_date:, on_demand:, payment_frequency_count:, payment_frequency_interval:, previous_billing_date:, product_id:, quantity:, recurring_pre_tax_amount:, status:, subscription_id:, subscription_period_count:, subscription_period_interval:, tax_inclusive:, trial_period_days:, cancellation_comment: nil, cancellation_feedback: nil, cancelled_at: nil, custom_field_responses: nil, customer_business_name: nil, discount_cycles_remaining: nil, discount_id: nil, discounts: nil, expires_at: nil, paused_at: nil, payment_method_id: nil, scheduled_change: nil, tax_id: nil, trial_amount: nil)
247
254
  # Some parameter documentations has been truncated, see
248
255
  # {Dodopayments::Models::Subscription} for more details.
249
256
  #
@@ -317,6 +324,8 @@ module Dodopayments
317
324
  #
318
325
  # @param expires_at [Time, nil] Timestamp when the subscription will expire
319
326
  #
327
+ # @param paused_at [Time, nil] Timestamp when the subscription was paused, if it currently is (or is
328
+ #
320
329
  # @param payment_method_id [String, nil] Saved payment method id used for recurring charges
321
330
  #
322
331
  # @param scheduled_change [Dodopayments::Models::ScheduledPlanChange, nil] Scheduled plan change details, if any
@@ -92,6 +92,7 @@ module Dodopayments
92
92
  PENDING = :pending
93
93
  ACTIVE = :active
94
94
  ON_HOLD = :on_hold
95
+ PAUSED = :paused
95
96
  CANCELLED = :cancelled
96
97
  FAILED = :failed
97
98
  EXPIRED = :expired
@@ -158,6 +158,13 @@ module Dodopayments
158
158
  # @return [String, nil]
159
159
  optional :discount_id, String, nil?: true
160
160
 
161
+ # @!attribute paused_at
162
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
163
+ # due to an unresolved pause settlement). `null` otherwise.
164
+ #
165
+ # @return [Time, nil]
166
+ optional :paused_at, Time, nil?: true
167
+
161
168
  # @!attribute payment_method_id
162
169
  # Saved payment method id used for recurring charges
163
170
  #
@@ -190,7 +197,7 @@ module Dodopayments
190
197
  # @return [Integer, nil]
191
198
  optional :trial_amount, Integer, nil?: true
192
199
 
193
- # @!method initialize(billing:, cancel_at_next_billing_date:, created_at:, currency:, customer:, discounts:, metadata:, next_billing_date:, on_demand:, payment_frequency_count:, payment_frequency_interval:, previous_billing_date:, product_id:, quantity:, recurring_pre_tax_amount:, status:, subscription_id:, subscription_period_count:, subscription_period_interval:, tax_inclusive:, trial_period_days:, cancelled_at: nil, customer_business_name: nil, discount_cycles_remaining: nil, discount_id: nil, payment_method_id: nil, product_name: nil, scheduled_change: nil, tax_id: nil, trial_amount: nil)
200
+ # @!method initialize(billing:, cancel_at_next_billing_date:, created_at:, currency:, customer:, discounts:, metadata:, next_billing_date:, on_demand:, payment_frequency_count:, payment_frequency_interval:, previous_billing_date:, product_id:, quantity:, recurring_pre_tax_amount:, status:, subscription_id:, subscription_period_count:, subscription_period_interval:, tax_inclusive:, trial_period_days:, cancelled_at: nil, customer_business_name: nil, discount_cycles_remaining: nil, discount_id: nil, paused_at: nil, payment_method_id: nil, product_name: nil, scheduled_change: nil, tax_id: nil, trial_amount: nil)
194
201
  # Some parameter documentations has been truncated, see
195
202
  # {Dodopayments::Models::SubscriptionListResponse} for more details.
196
203
  #
@@ -246,6 +253,8 @@ module Dodopayments
246
253
  #
247
254
  # @param discount_id [String, nil] DEPRECATED: Use discounts instead.
248
255
  #
256
+ # @param paused_at [Time, nil] Timestamp when the subscription was paused, if it currently is (or is
257
+ #
249
258
  # @param payment_method_id [String, nil] Saved payment method id used for recurring charges
250
259
  #
251
260
  # @param product_name [String, nil] Name of the product associated with this subscription
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionPausedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Response struct representing subscription details
14
+ #
15
+ # @return [Dodopayments::Models::Subscription]
16
+ required :data, -> { Dodopayments::Subscription }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, :"subscription.paused"]
28
+ required :type, const: :"subscription.paused"
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type: :"subscription.paused")
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::Subscription] Response struct representing subscription details
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, :"subscription.paused"] The event type
38
+ end
39
+ end
40
+ end
@@ -8,6 +8,7 @@ module Dodopayments
8
8
  PENDING = :pending
9
9
  ACTIVE = :active
10
10
  ON_HOLD = :on_hold
11
+ PAUSED = :paused
11
12
  CANCELLED = :cancelled
12
13
  FAILED = :failed
13
14
  EXPIRED = :expired
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionUnpausedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Response struct representing subscription details
14
+ #
15
+ # @return [Dodopayments::Models::Subscription]
16
+ required :data, -> { Dodopayments::Subscription }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, :"subscription.unpaused"]
28
+ required :type, const: :"subscription.unpaused"
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type: :"subscription.unpaused")
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::Subscription] Response struct representing subscription details
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, :"subscription.unpaused"] The event type
38
+ end
39
+ end
40
+ end
@@ -84,6 +84,13 @@ module Dodopayments
84
84
  # @return [Time, nil]
85
85
  optional :next_billing_date, Time, nil?: true
86
86
 
87
+ # @!attribute pause
88
+ # `Some(true)` pauses an active subscription; `Some(false)` unpauses a `Paused`
89
+ # (or abandoned `OnHold`) subscription. Exclusive of every other field.
90
+ #
91
+ # @return [Boolean, nil]
92
+ optional :pause, Dodopayments::Internal::Type::Boolean, nil?: true
93
+
87
94
  # @!attribute status
88
95
  #
89
96
  # @return [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
@@ -111,7 +118,7 @@ module Dodopayments
111
118
  # @return [String, nil]
112
119
  optional :tax_id, String, nil?: true
113
120
 
114
- # @!method initialize(subscription_id:, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, cancellation_comment: nil, cancellation_feedback: nil, credit_entitlement_cart: nil, customer_business_name: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, subscription_period_count: nil, subscription_period_interval: nil, tax_id: nil, request_options: {})
121
+ # @!method initialize(subscription_id:, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, cancellation_comment: nil, cancellation_feedback: nil, credit_entitlement_cart: nil, customer_business_name: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, pause: nil, status: nil, subscription_period_count: nil, subscription_period_interval: nil, tax_id: nil, request_options: {})
115
122
  # Some parameter documentations has been truncated, see
116
123
  # {Dodopayments::Models::SubscriptionUpdateParams} for more details.
117
124
  #
@@ -139,6 +146,8 @@ module Dodopayments
139
146
  #
140
147
  # @param next_billing_date [Time, nil]
141
148
  #
149
+ # @param pause [Boolean, nil] `Some(true)` pauses an active subscription; `Some(false)` unpauses a
150
+ #
142
151
  # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
143
152
  #
144
153
  # @param subscription_period_count [Integer, nil] New number of `subscription_period_interval` units the subscription
@@ -11,6 +11,7 @@ module Dodopayments
11
11
  SAAS = :saas
12
12
  E_BOOK = :e_book
13
13
  EDTECH = :edtech
14
+ LIVE_TUTORING = :live_tutoring
14
15
 
15
16
  # @!method self.values
16
17
  # @return [Array<Symbol>]
@@ -89,17 +89,21 @@ module Dodopayments
89
89
 
90
90
  variant :"subscription.on_hold", -> { Dodopayments::SubscriptionOnHoldWebhookEvent }
91
91
 
92
+ variant :"subscription.paused", -> { Dodopayments::SubscriptionPausedWebhookEvent }
93
+
92
94
  variant :"subscription.plan_changed", -> { Dodopayments::SubscriptionPlanChangedWebhookEvent }
93
95
 
94
96
  variant :"subscription.renewed", -> { Dodopayments::SubscriptionRenewedWebhookEvent }
95
97
 
98
+ variant :"subscription.unpaused", -> { Dodopayments::SubscriptionUnpausedWebhookEvent }
99
+
96
100
  variant :"subscription.update_payment_method",
97
101
  -> { Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent }
98
102
 
99
103
  variant :"subscription.updated", -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
100
104
 
101
105
  # @!method self.variants
102
- # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
106
+ # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
103
107
  end
104
108
  end
105
109
  end
@@ -89,17 +89,21 @@ module Dodopayments
89
89
 
90
90
  variant :"subscription.on_hold", -> { Dodopayments::SubscriptionOnHoldWebhookEvent }
91
91
 
92
+ variant :"subscription.paused", -> { Dodopayments::SubscriptionPausedWebhookEvent }
93
+
92
94
  variant :"subscription.plan_changed", -> { Dodopayments::SubscriptionPlanChangedWebhookEvent }
93
95
 
94
96
  variant :"subscription.renewed", -> { Dodopayments::SubscriptionRenewedWebhookEvent }
95
97
 
98
+ variant :"subscription.unpaused", -> { Dodopayments::SubscriptionUnpausedWebhookEvent }
99
+
96
100
  variant :"subscription.update_payment_method",
97
101
  -> { Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent }
98
102
 
99
103
  variant :"subscription.updated", -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
100
104
 
101
105
  # @!method self.variants
102
- # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
106
+ # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
103
107
  end
104
108
  end
105
109
  end
@@ -23,6 +23,7 @@ module Dodopayments
23
23
  SUBSCRIPTION_RENEWED = :"subscription.renewed"
24
24
  SUBSCRIPTION_ON_HOLD = :"subscription.on_hold"
25
25
  SUBSCRIPTION_PAUSED = :"subscription.paused"
26
+ SUBSCRIPTION_UNPAUSED = :"subscription.unpaused"
26
27
  SUBSCRIPTION_CANCELLED = :"subscription.cancelled"
27
28
  SUBSCRIPTION_FAILED = :"subscription.failed"
28
29
  SUBSCRIPTION_EXPIRED = :"subscription.expired"
@@ -468,6 +468,8 @@ module Dodopayments
468
468
 
469
469
  SubscriptionOnHoldWebhookEvent = Dodopayments::Models::SubscriptionOnHoldWebhookEvent
470
470
 
471
+ SubscriptionPausedWebhookEvent = Dodopayments::Models::SubscriptionPausedWebhookEvent
472
+
471
473
  SubscriptionPlanChangedWebhookEvent = Dodopayments::Models::SubscriptionPlanChangedWebhookEvent
472
474
 
473
475
  SubscriptionPreviewChangePlanParams = Dodopayments::Models::SubscriptionPreviewChangePlanParams
@@ -482,6 +484,8 @@ module Dodopayments
482
484
 
483
485
  SubscriptionStatus = Dodopayments::Models::SubscriptionStatus
484
486
 
487
+ SubscriptionUnpausedWebhookEvent = Dodopayments::Models::SubscriptionUnpausedWebhookEvent
488
+
485
489
  SubscriptionUpdatedWebhookEvent = Dodopayments::Models::SubscriptionUpdatedWebhookEvent
486
490
 
487
491
  SubscriptionUpdateParams = Dodopayments::Models::SubscriptionUpdateParams
@@ -95,7 +95,7 @@ module Dodopayments
95
95
  # Some parameter documentations has been truncated, see
96
96
  # {Dodopayments::Models::SubscriptionUpdateParams} for more details.
97
97
  #
98
- # @overload update(subscription_id, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, cancellation_comment: nil, cancellation_feedback: nil, credit_entitlement_cart: nil, customer_business_name: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, subscription_period_count: nil, subscription_period_interval: nil, tax_id: nil, request_options: {})
98
+ # @overload update(subscription_id, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, cancellation_comment: nil, cancellation_feedback: nil, credit_entitlement_cart: nil, customer_business_name: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, pause: nil, status: nil, subscription_period_count: nil, subscription_period_interval: nil, tax_id: nil, request_options: {})
99
99
  #
100
100
  # @param subscription_id [String] Subscription Id
101
101
  #
@@ -121,6 +121,8 @@ module Dodopayments
121
121
  #
122
122
  # @param next_billing_date [Time, nil]
123
123
  #
124
+ # @param pause [Boolean, nil] `Some(true)` pauses an active subscription; `Some(false)` unpauses a
125
+ #
124
126
  # @param status [Symbol, Dodopayments::Models::SubscriptionStatus, nil]
125
127
  #
126
128
  # @param subscription_period_count [Integer, nil] New number of `subscription_period_interval` units the subscription
@@ -170,7 +170,7 @@ module Dodopayments
170
170
 
171
171
  # @param payload [String] The raw webhook payload as a string
172
172
  #
173
- # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
173
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
174
174
  def unsafe_unwrap(payload)
175
175
  parsed = JSON.parse(payload, symbolize_names: true)
176
176
  Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed)
@@ -182,7 +182,7 @@ module Dodopayments
182
182
  #
183
183
  # @param key [String, nil] The webhook signing key
184
184
  #
185
- # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
185
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditOverageResetWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::EntitlementGrantCreatedWebhookEvent, Dodopayments::Models::EntitlementGrantDeliveredWebhookEvent, Dodopayments::Models::EntitlementGrantFailedWebhookEvent, Dodopayments::Models::EntitlementGrantRevokedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::PayoutCreatedWebhookEvent, Dodopayments::Models::PayoutFailedWebhookEvent, Dodopayments::Models::PayoutInProgressWebhookEvent, Dodopayments::Models::PayoutOnHoldWebhookEvent, Dodopayments::Models::PayoutSuccessWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPausedWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUnpausedWebhookEvent, Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
186
186
  def unwrap(payload, headers:, key: @client.webhook_key)
187
187
  if key.nil?
188
188
  raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_key or passed in as an argument")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "2.22.0"
4
+ VERSION = "2.24.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -343,6 +343,7 @@ require_relative "dodopayments/models/subscription_failed_webhook_event"
343
343
  require_relative "dodopayments/models/subscription_list_params"
344
344
  require_relative "dodopayments/models/subscription_list_response"
345
345
  require_relative "dodopayments/models/subscription_on_hold_webhook_event"
346
+ require_relative "dodopayments/models/subscription_paused_webhook_event"
346
347
  require_relative "dodopayments/models/subscription_plan_changed_webhook_event"
347
348
  require_relative "dodopayments/models/subscription_preview_change_plan_params"
348
349
  require_relative "dodopayments/models/subscription_preview_change_plan_response"
@@ -353,6 +354,7 @@ require_relative "dodopayments/models/subscription_retrieve_params"
353
354
  require_relative "dodopayments/models/subscription_retrieve_usage_history_params"
354
355
  require_relative "dodopayments/models/subscription_retrieve_usage_history_response"
355
356
  require_relative "dodopayments/models/subscription_status"
357
+ require_relative "dodopayments/models/subscription_unpaused_webhook_event"
356
358
  require_relative "dodopayments/models/subscription_updated_webhook_event"
357
359
  require_relative "dodopayments/models/subscription_update_params"
358
360
  require_relative "dodopayments/models/subscription_update_payment_method_params"
@@ -629,6 +629,13 @@ module Dodopayments
629
629
  sig { returns(Integer) }
630
630
  attr_accessor :quantity
631
631
 
632
+ # Per-unit price in `currency`, converted and adaptive-priced but pre-tax and
633
+ # pre-discount (both depend on quantity and the rest of the cart). Set even when
634
+ # `quantity` is 0, so the checkout page can price the addon before the buyer has
635
+ # selected any.
636
+ sig { returns(Integer) }
637
+ attr_accessor :single_quantity_price
638
+
632
639
  # Represents the different categories of taxation applicable to various products
633
640
  # and services.
634
641
  sig { returns(Dodopayments::TaxCategory::TaggedSymbol) }
@@ -660,6 +667,7 @@ module Dodopayments
660
667
  og_currency: Dodopayments::Currency::OrSymbol,
661
668
  og_price: Integer,
662
669
  quantity: Integer,
670
+ single_quantity_price: Integer,
663
671
  tax_category: Dodopayments::TaxCategory::OrSymbol,
664
672
  tax_inclusive: T::Boolean,
665
673
  tax_rate: Integer,
@@ -676,6 +684,11 @@ module Dodopayments
676
684
  og_currency:,
677
685
  og_price:,
678
686
  quantity:,
687
+ # Per-unit price in `currency`, converted and adaptive-priced but pre-tax and
688
+ # pre-discount (both depend on quantity and the rest of the cart). Set even when
689
+ # `quantity` is 0, so the checkout page can price the addon before the buyer has
690
+ # selected any.
691
+ single_quantity_price:,
679
692
  # Represents the different categories of taxation applicable to various products
680
693
  # and services.
681
694
  tax_category:,
@@ -699,6 +712,7 @@ module Dodopayments
699
712
  og_currency: Dodopayments::Currency::TaggedSymbol,
700
713
  og_price: Integer,
701
714
  quantity: Integer,
715
+ single_quantity_price: Integer,
702
716
  tax_category: Dodopayments::TaxCategory::TaggedSymbol,
703
717
  tax_inclusive: T::Boolean,
704
718
  tax_rate: Integer,
@@ -159,6 +159,11 @@ module Dodopayments
159
159
  sig { returns(T.nilable(Time)) }
160
160
  attr_accessor :expires_at
161
161
 
162
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
163
+ # due to an unresolved pause settlement). `null` otherwise.
164
+ sig { returns(T.nilable(Time)) }
165
+ attr_accessor :paused_at
166
+
162
167
  # Saved payment method id used for recurring charges
163
168
  sig { returns(T.nilable(String)) }
164
169
  attr_accessor :payment_method_id
@@ -225,6 +230,7 @@ module Dodopayments
225
230
  discount_id: T.nilable(String),
226
231
  discounts: T.nilable(T::Array[Dodopayments::DiscountDetail::OrHash]),
227
232
  expires_at: T.nilable(Time),
233
+ paused_at: T.nilable(Time),
228
234
  payment_method_id: T.nilable(String),
229
235
  scheduled_change:
230
236
  T.nilable(Dodopayments::ScheduledPlanChange::OrHash),
@@ -304,6 +310,9 @@ module Dodopayments
304
310
  discounts: nil,
305
311
  # Timestamp when the subscription will expire
306
312
  expires_at: nil,
313
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
314
+ # due to an unresolved pause settlement). `null` otherwise.
315
+ paused_at: nil,
307
316
  # Saved payment method id used for recurring charges
308
317
  payment_method_id: nil,
309
318
  # Scheduled plan change details, if any
@@ -360,6 +369,7 @@ module Dodopayments
360
369
  discount_id: T.nilable(String),
361
370
  discounts: T.nilable(T::Array[Dodopayments::DiscountDetail]),
362
371
  expires_at: T.nilable(Time),
372
+ paused_at: T.nilable(Time),
363
373
  payment_method_id: T.nilable(String),
364
374
  scheduled_change: T.nilable(Dodopayments::ScheduledPlanChange),
365
375
  tax_id: T.nilable(String),
@@ -166,6 +166,11 @@ module Dodopayments
166
166
  :on_hold,
167
167
  Dodopayments::SubscriptionListParams::Status::TaggedSymbol
168
168
  )
169
+ PAUSED =
170
+ T.let(
171
+ :paused,
172
+ Dodopayments::SubscriptionListParams::Status::TaggedSymbol
173
+ )
169
174
  CANCELLED =
170
175
  T.let(
171
176
  :cancelled,
@@ -126,6 +126,11 @@ module Dodopayments
126
126
  sig { returns(T.nilable(String)) }
127
127
  attr_accessor :discount_id
128
128
 
129
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
130
+ # due to an unresolved pause settlement). `null` otherwise.
131
+ sig { returns(T.nilable(Time)) }
132
+ attr_accessor :paused_at
133
+
129
134
  # Saved payment method id used for recurring charges
130
135
  sig { returns(T.nilable(String)) }
131
136
  attr_accessor :payment_method_id
@@ -186,6 +191,7 @@ module Dodopayments
186
191
  customer_business_name: T.nilable(String),
187
192
  discount_cycles_remaining: T.nilable(Integer),
188
193
  discount_id: T.nilable(String),
194
+ paused_at: T.nilable(Time),
189
195
  payment_method_id: T.nilable(String),
190
196
  product_name: T.nilable(String),
191
197
  scheduled_change:
@@ -248,6 +254,9 @@ module Dodopayments
248
254
  discount_cycles_remaining: nil,
249
255
  # DEPRECATED: Use discounts instead.
250
256
  discount_id: nil,
257
+ # Timestamp when the subscription was paused, if it currently is (or is `OnHold`
258
+ # due to an unresolved pause settlement). `null` otherwise.
259
+ paused_at: nil,
251
260
  # Saved payment method id used for recurring charges
252
261
  payment_method_id: nil,
253
262
  # Name of the product associated with this subscription
@@ -296,6 +305,7 @@ module Dodopayments
296
305
  customer_business_name: T.nilable(String),
297
306
  discount_cycles_remaining: T.nilable(Integer),
298
307
  discount_id: T.nilable(String),
308
+ paused_at: T.nilable(Time),
299
309
  payment_method_id: T.nilable(String),
300
310
  product_name: T.nilable(String),
301
311
  scheduled_change: T.nilable(Dodopayments::ScheduledPlanChange),