dodopayments 1.61.7 → 1.66.1

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/billing_address.rb +18 -18
  5. data/lib/dodopayments/models/checkout_session_request.rb +10 -1
  6. data/lib/dodopayments/models/subscription_create_params.rb +12 -1
  7. data/lib/dodopayments/models/subscription_create_response.rb +27 -1
  8. data/lib/dodopayments/models/subscription_preview_change_plan_params.rb +63 -0
  9. data/lib/dodopayments/models/subscription_preview_change_plan_response.rb +388 -0
  10. data/lib/dodopayments/models/subscription_updated_webhook_event.rb +76 -0
  11. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +3 -1
  12. data/lib/dodopayments/models/unwrap_webhook_event.rb +3 -1
  13. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  14. data/lib/dodopayments/models.rb +4 -0
  15. data/lib/dodopayments/resources/checkout_sessions.rb +3 -1
  16. data/lib/dodopayments/resources/payments.rb +2 -0
  17. data/lib/dodopayments/resources/subscriptions.rb +36 -1
  18. data/lib/dodopayments/resources/webhooks.rb +2 -2
  19. data/lib/dodopayments/version.rb +1 -1
  20. data/lib/dodopayments.rb +4 -0
  21. data/rbi/dodopayments/models/billing_address.rbi +20 -20
  22. data/rbi/dodopayments/models/checkout_session_request.rbi +13 -0
  23. data/rbi/dodopayments/models/subscription_create_params.rbi +12 -0
  24. data/rbi/dodopayments/models/subscription_create_response.rbi +54 -0
  25. data/rbi/dodopayments/models/subscription_preview_change_plan_params.rbi +118 -0
  26. data/rbi/dodopayments/models/subscription_preview_change_plan_response.rbi +633 -0
  27. data/rbi/dodopayments/models/subscription_updated_webhook_event.rbi +185 -0
  28. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +2 -1
  29. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +2 -1
  30. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  31. data/rbi/dodopayments/models.rbi +6 -0
  32. data/rbi/dodopayments/resources/checkout_sessions.rbi +4 -0
  33. data/rbi/dodopayments/resources/subscriptions.rbi +32 -0
  34. data/rbi/dodopayments/resources/webhooks.rbi +4 -2
  35. data/sig/dodopayments/models/billing_address.rbs +17 -17
  36. data/sig/dodopayments/models/checkout_session_request.rbs +7 -0
  37. data/sig/dodopayments/models/subscription_create_params.rbs +5 -0
  38. data/sig/dodopayments/models/subscription_create_response.rbs +17 -0
  39. data/sig/dodopayments/models/subscription_preview_change_plan_params.rbs +54 -0
  40. data/sig/dodopayments/models/subscription_preview_change_plan_response.rbs +356 -0
  41. data/sig/dodopayments/models/subscription_updated_webhook_event.rbs +76 -0
  42. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
  43. data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
  44. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  45. data/sig/dodopayments/models.rbs +4 -0
  46. data/sig/dodopayments/resources/checkout_sessions.rbs +1 -0
  47. data/sig/dodopayments/resources/subscriptions.rbs +10 -0
  48. data/sig/dodopayments/resources/webhooks.rbs +4 -2
  49. metadata +11 -2
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionUpdatedWebhookEvent < 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
+ # Event-specific data
14
+ #
15
+ # @return [Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Data]
16
+ required :data, -> { Dodopayments::SubscriptionUpdatedWebhookEvent::Data }
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, Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::SubscriptionUpdatedWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Data] Event-specific data
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Type] The event type
38
+
39
+ # @see Dodopayments::Models::SubscriptionUpdatedWebhookEvent#data
40
+ class Data < Dodopayments::Models::Subscription
41
+ # @!attribute payload_type
42
+ # The type of payload in the data field
43
+ #
44
+ # @return [Symbol, Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Data::PayloadType, nil]
45
+ optional :payload_type, enum: -> { Dodopayments::SubscriptionUpdatedWebhookEvent::Data::PayloadType }
46
+
47
+ # @!method initialize(payload_type: nil)
48
+ # Event-specific data
49
+ #
50
+ # @param payload_type [Symbol, Dodopayments::Models::SubscriptionUpdatedWebhookEvent::Data::PayloadType] The type of payload in the data field
51
+
52
+ # The type of payload in the data field
53
+ module PayloadType
54
+ extend Dodopayments::Internal::Type::Enum
55
+
56
+ SUBSCRIPTION = :Subscription
57
+
58
+ # @!method self.values
59
+ # @return [Array<Symbol>]
60
+ end
61
+ end
62
+
63
+ # The event type
64
+ #
65
+ # @see Dodopayments::Models::SubscriptionUpdatedWebhookEvent#type
66
+ module Type
67
+ extend Dodopayments::Internal::Type::Enum
68
+
69
+ SUBSCRIPTION_UPDATED = :"subscription.updated"
70
+
71
+ # @!method self.values
72
+ # @return [Array<Symbol>]
73
+ end
74
+ end
75
+ end
76
+ end
@@ -47,8 +47,10 @@ module Dodopayments
47
47
 
48
48
  variant -> { Dodopayments::SubscriptionRenewedWebhookEvent }
49
49
 
50
+ variant -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
51
+
50
52
  # @!method self.variants
51
- # @return [Array(Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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)]
53
+ # @return [Array(Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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::SubscriptionUpdatedWebhookEvent)]
52
54
  end
53
55
  end
54
56
  end
@@ -47,8 +47,10 @@ module Dodopayments
47
47
 
48
48
  variant -> { Dodopayments::SubscriptionRenewedWebhookEvent }
49
49
 
50
+ variant -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
51
+
50
52
  # @!method self.variants
51
- # @return [Array(Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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)]
53
+ # @return [Array(Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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::SubscriptionUpdatedWebhookEvent)]
52
54
  end
53
55
  end
54
56
  end
@@ -26,6 +26,7 @@ module Dodopayments
26
26
  SUBSCRIPTION_FAILED = :"subscription.failed"
27
27
  SUBSCRIPTION_EXPIRED = :"subscription.expired"
28
28
  SUBSCRIPTION_PLAN_CHANGED = :"subscription.plan_changed"
29
+ SUBSCRIPTION_UPDATED = :"subscription.updated"
29
30
  LICENSE_KEY_CREATED = :"license_key.created"
30
31
 
31
32
  # @!method self.values
@@ -287,6 +287,8 @@ module Dodopayments
287
287
 
288
288
  SubscriptionPlanChangedWebhookEvent = Dodopayments::Models::SubscriptionPlanChangedWebhookEvent
289
289
 
290
+ SubscriptionPreviewChangePlanParams = Dodopayments::Models::SubscriptionPreviewChangePlanParams
291
+
290
292
  SubscriptionRenewedWebhookEvent = Dodopayments::Models::SubscriptionRenewedWebhookEvent
291
293
 
292
294
  SubscriptionRetrieveParams = Dodopayments::Models::SubscriptionRetrieveParams
@@ -295,6 +297,8 @@ module Dodopayments
295
297
 
296
298
  SubscriptionStatus = Dodopayments::Models::SubscriptionStatus
297
299
 
300
+ SubscriptionUpdatedWebhookEvent = Dodopayments::Models::SubscriptionUpdatedWebhookEvent
301
+
298
302
  SubscriptionUpdateParams = Dodopayments::Models::SubscriptionUpdateParams
299
303
 
300
304
  SubscriptionUpdatePaymentMethodParams = Dodopayments::Models::SubscriptionUpdatePaymentMethodParams
@@ -6,7 +6,7 @@ module Dodopayments
6
6
  # Some parameter documentations has been truncated, see
7
7
  # {Dodopayments::Models::CheckoutSessionCreateParams} for more details.
8
8
  #
9
- # @overload create(product_cart:, allowed_payment_method_types: nil, billing_address: nil, billing_currency: nil, confirm: nil, customer: nil, customization: nil, discount_code: nil, feature_flags: nil, force_3ds: nil, metadata: nil, return_url: nil, show_saved_payment_methods: nil, subscription_data: nil, request_options: {})
9
+ # @overload create(product_cart:, allowed_payment_method_types: nil, billing_address: nil, billing_currency: nil, confirm: nil, customer: nil, customization: nil, discount_code: nil, feature_flags: nil, force_3ds: nil, metadata: nil, minimal_address: nil, return_url: nil, show_saved_payment_methods: nil, subscription_data: nil, request_options: {})
10
10
  #
11
11
  # @param product_cart [Array<Dodopayments::Models::CheckoutSessionRequest::ProductCart>]
12
12
  #
@@ -30,6 +30,8 @@ module Dodopayments
30
30
  #
31
31
  # @param metadata [Hash{Symbol=>String}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
32
32
  #
33
+ # @param minimal_address [Boolean] If true, only zipcode is required when confirm is true; other address fields rem
34
+ #
33
35
  # @param return_url [String, nil] The url to redirect after payment failure or success.
34
36
  #
35
37
  # @param show_saved_payment_methods [Boolean] Display saved payment methods of a returning customer False by default
@@ -3,6 +3,8 @@
3
3
  module Dodopayments
4
4
  module Resources
5
5
  class Payments
6
+ # @deprecated
7
+ #
6
8
  # Some parameter documentations has been truncated, see
7
9
  # {Dodopayments::Models::PaymentCreateParams} for more details.
8
10
  #
@@ -3,10 +3,12 @@
3
3
  module Dodopayments
4
4
  module Resources
5
5
  class Subscriptions
6
+ # @deprecated
7
+ #
6
8
  # Some parameter documentations has been truncated, see
7
9
  # {Dodopayments::Models::SubscriptionCreateParams} for more details.
8
10
  #
9
- # @overload create(billing:, customer:, product_id:, quantity:, addons: nil, allowed_payment_method_types: nil, billing_currency: nil, discount_code: nil, force_3ds: nil, metadata: nil, on_demand: nil, payment_link: nil, return_url: nil, show_saved_payment_methods: nil, tax_id: nil, trial_period_days: nil, request_options: {})
11
+ # @overload create(billing:, customer:, product_id:, quantity:, addons: nil, allowed_payment_method_types: nil, billing_currency: nil, discount_code: nil, force_3ds: nil, metadata: nil, on_demand: nil, one_time_product_cart: nil, payment_link: nil, return_url: nil, show_saved_payment_methods: nil, tax_id: nil, trial_period_days: nil, request_options: {})
10
12
  #
11
13
  # @param billing [Dodopayments::Models::BillingAddress] Billing address information for the subscription
12
14
  #
@@ -30,6 +32,8 @@ module Dodopayments
30
32
  #
31
33
  # @param on_demand [Dodopayments::Models::OnDemandSubscription, nil]
32
34
  #
35
+ # @param one_time_product_cart [Array<Dodopayments::Models::OneTimeProductCartItem>, nil] List of one time products that will be bundled with the first payment for this s
36
+ #
33
37
  # @param payment_link [Boolean, nil] If true, generates a payment link.
34
38
  #
35
39
  # @param return_url [String, nil] Optional URL to redirect after successful subscription creation
@@ -209,6 +213,37 @@ module Dodopayments
209
213
  )
210
214
  end
211
215
 
216
+ # Some parameter documentations has been truncated, see
217
+ # {Dodopayments::Models::SubscriptionPreviewChangePlanParams} for more details.
218
+ #
219
+ # @overload preview_change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, addons: nil, request_options: {})
220
+ #
221
+ # @param subscription_id [String] Subscription Id
222
+ #
223
+ # @param product_id [String] Unique identifier of the product to subscribe to
224
+ #
225
+ # @param proration_billing_mode [Symbol, Dodopayments::Models::SubscriptionPreviewChangePlanParams::ProrationBillingMode] Proration Billing Mode
226
+ #
227
+ # @param quantity [Integer] Number of units to subscribe for. Must be at least 1.
228
+ #
229
+ # @param addons [Array<Dodopayments::Models::AttachAddon>, nil] Addons for the new plan.
230
+ #
231
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
232
+ #
233
+ # @return [Dodopayments::Models::SubscriptionPreviewChangePlanResponse]
234
+ #
235
+ # @see Dodopayments::Models::SubscriptionPreviewChangePlanParams
236
+ def preview_change_plan(subscription_id, params)
237
+ parsed, options = Dodopayments::SubscriptionPreviewChangePlanParams.dump_request(params)
238
+ @client.request(
239
+ method: :post,
240
+ path: ["subscriptions/%1$s/change-plan/preview", subscription_id],
241
+ body: parsed,
242
+ model: Dodopayments::Models::SubscriptionPreviewChangePlanResponse,
243
+ options: options
244
+ )
245
+ end
246
+
212
247
  # Get detailed usage history for a subscription that includes usage-based billing
213
248
  # (metered components). This endpoint provides insights into customer usage
214
249
  # patterns and billing calculations over time.
@@ -166,7 +166,7 @@ module Dodopayments
166
166
 
167
167
  # @param payload [String] The raw webhook payload as a string
168
168
  #
169
- # @return [Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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]
169
+ # @return [Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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::SubscriptionUpdatedWebhookEvent]
170
170
  def unsafe_unwrap(payload)
171
171
  parsed = JSON.parse(payload, symbolize_names: true)
172
172
  Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed)
@@ -174,7 +174,7 @@ module Dodopayments
174
174
 
175
175
  # @param payload [String] The raw webhook payload as a string
176
176
  #
177
- # @return [Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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]
177
+ # @return [Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, 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::SubscriptionUpdatedWebhookEvent]
178
178
  def unwrap(payload)
179
179
  parsed = JSON.parse(payload, symbolize_names: true)
180
180
  Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnwrapWebhookEvent, parsed)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "1.61.7"
4
+ VERSION = "1.66.1"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -224,12 +224,16 @@ require_relative "dodopayments/models/subscription_on_hold_webhook_event"
224
224
  require_relative "dodopayments/models/subscription_on_hold_webhook_event"
225
225
  require_relative "dodopayments/models/subscription_plan_changed_webhook_event"
226
226
  require_relative "dodopayments/models/subscription_plan_changed_webhook_event"
227
+ require_relative "dodopayments/models/subscription_preview_change_plan_params"
228
+ require_relative "dodopayments/models/subscription_preview_change_plan_response"
227
229
  require_relative "dodopayments/models/subscription_renewed_webhook_event"
228
230
  require_relative "dodopayments/models/subscription_renewed_webhook_event"
229
231
  require_relative "dodopayments/models/subscription_retrieve_params"
230
232
  require_relative "dodopayments/models/subscription_retrieve_usage_history_params"
231
233
  require_relative "dodopayments/models/subscription_retrieve_usage_history_response"
232
234
  require_relative "dodopayments/models/subscription_status"
235
+ require_relative "dodopayments/models/subscription_updated_webhook_event"
236
+ require_relative "dodopayments/models/subscription_updated_webhook_event"
233
237
  require_relative "dodopayments/models/subscription_update_params"
234
238
  require_relative "dodopayments/models/subscription_update_payment_method_params"
235
239
  require_relative "dodopayments/models/subscription_update_payment_method_response"
@@ -8,57 +8,57 @@ module Dodopayments
8
8
  T.any(Dodopayments::BillingAddress, Dodopayments::Internal::AnyHash)
9
9
  end
10
10
 
11
- # City name
12
- sig { returns(String) }
13
- attr_accessor :city
14
-
15
11
  # Two-letter ISO country code (ISO 3166-1 alpha-2)
16
12
  sig { returns(Dodopayments::CountryCode::OrSymbol) }
17
13
  attr_accessor :country
18
14
 
15
+ # City name
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :city
18
+
19
19
  # State or province name
20
- sig { returns(String) }
20
+ sig { returns(T.nilable(String)) }
21
21
  attr_accessor :state
22
22
 
23
23
  # Street address including house number and unit/apartment if applicable
24
- sig { returns(String) }
24
+ sig { returns(T.nilable(String)) }
25
25
  attr_accessor :street
26
26
 
27
27
  # Postal code or ZIP code
28
- sig { returns(String) }
28
+ sig { returns(T.nilable(String)) }
29
29
  attr_accessor :zipcode
30
30
 
31
31
  sig do
32
32
  params(
33
- city: String,
34
33
  country: Dodopayments::CountryCode::OrSymbol,
35
- state: String,
36
- street: String,
37
- zipcode: String
34
+ city: T.nilable(String),
35
+ state: T.nilable(String),
36
+ street: T.nilable(String),
37
+ zipcode: T.nilable(String)
38
38
  ).returns(T.attached_class)
39
39
  end
40
40
  def self.new(
41
- # City name
42
- city:,
43
41
  # Two-letter ISO country code (ISO 3166-1 alpha-2)
44
42
  country:,
43
+ # City name
44
+ city: nil,
45
45
  # State or province name
46
- state:,
46
+ state: nil,
47
47
  # Street address including house number and unit/apartment if applicable
48
- street:,
48
+ street: nil,
49
49
  # Postal code or ZIP code
50
- zipcode:
50
+ zipcode: nil
51
51
  )
52
52
  end
53
53
 
54
54
  sig do
55
55
  override.returns(
56
56
  {
57
- city: String,
58
57
  country: Dodopayments::CountryCode::OrSymbol,
59
- state: String,
60
- street: String,
61
- zipcode: String
58
+ city: T.nilable(String),
59
+ state: T.nilable(String),
60
+ street: T.nilable(String),
61
+ zipcode: T.nilable(String)
62
62
  }
63
63
  )
64
64
  end
@@ -107,6 +107,14 @@ module Dodopayments
107
107
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
108
108
  attr_accessor :metadata
109
109
 
110
+ # If true, only zipcode is required when confirm is true; other address fields
111
+ # remain optional
112
+ sig { returns(T.nilable(T::Boolean)) }
113
+ attr_reader :minimal_address
114
+
115
+ sig { params(minimal_address: T::Boolean).void }
116
+ attr_writer :minimal_address
117
+
110
118
  # The url to redirect after payment failure or success.
111
119
  sig { returns(T.nilable(String)) }
112
120
  attr_accessor :return_url
@@ -161,6 +169,7 @@ module Dodopayments
161
169
  Dodopayments::CheckoutSessionRequest::FeatureFlags::OrHash,
162
170
  force_3ds: T.nilable(T::Boolean),
163
171
  metadata: T.nilable(T::Hash[Symbol, String]),
172
+ minimal_address: T::Boolean,
164
173
  return_url: T.nilable(String),
165
174
  show_saved_payment_methods: T::Boolean,
166
175
  subscription_data:
@@ -196,6 +205,9 @@ module Dodopayments
196
205
  # Additional metadata associated with the payment. Defaults to empty if not
197
206
  # provided.
198
207
  metadata: nil,
208
+ # If true, only zipcode is required when confirm is true; other address fields
209
+ # remain optional
210
+ minimal_address: nil,
199
211
  # The url to redirect after payment failure or success.
200
212
  return_url: nil,
201
213
  # Display saved payment methods of a returning customer False by default
@@ -227,6 +239,7 @@ module Dodopayments
227
239
  feature_flags: Dodopayments::CheckoutSessionRequest::FeatureFlags,
228
240
  force_3ds: T.nilable(T::Boolean),
229
241
  metadata: T.nilable(T::Hash[Symbol, String]),
242
+ minimal_address: T::Boolean,
230
243
  return_url: T.nilable(String),
231
244
  show_saved_payment_methods: T::Boolean,
232
245
  subscription_data:
@@ -82,6 +82,11 @@ module Dodopayments
82
82
  end
83
83
  attr_writer :on_demand
84
84
 
85
+ # List of one time products that will be bundled with the first payment for this
86
+ # subscription
87
+ sig { returns(T.nilable(T::Array[Dodopayments::OneTimeProductCartItem])) }
88
+ attr_accessor :one_time_product_cart
89
+
85
90
  # If true, generates a payment link. Defaults to false if not specified.
86
91
  sig { returns(T.nilable(T::Boolean)) }
87
92
  attr_accessor :payment_link
@@ -125,6 +130,8 @@ module Dodopayments
125
130
  force_3ds: T.nilable(T::Boolean),
126
131
  metadata: T::Hash[Symbol, String],
127
132
  on_demand: T.nilable(Dodopayments::OnDemandSubscription::OrHash),
133
+ one_time_product_cart:
134
+ T.nilable(T::Array[Dodopayments::OneTimeProductCartItem::OrHash]),
128
135
  payment_link: T.nilable(T::Boolean),
129
136
  return_url: T.nilable(String),
130
137
  show_saved_payment_methods: T::Boolean,
@@ -161,6 +168,9 @@ module Dodopayments
161
168
  # Additional metadata for the subscription Defaults to empty if not specified
162
169
  metadata: nil,
163
170
  on_demand: nil,
171
+ # List of one time products that will be bundled with the first payment for this
172
+ # subscription
173
+ one_time_product_cart: nil,
164
174
  # If true, generates a payment link. Defaults to false if not specified.
165
175
  payment_link: nil,
166
176
  # Optional URL to redirect after successful subscription creation
@@ -196,6 +206,8 @@ module Dodopayments
196
206
  force_3ds: T.nilable(T::Boolean),
197
207
  metadata: T::Hash[Symbol, String],
198
208
  on_demand: T.nilable(Dodopayments::OnDemandSubscription),
209
+ one_time_product_cart:
210
+ T.nilable(T::Array[Dodopayments::OneTimeProductCartItem]),
199
211
  payment_link: T.nilable(T::Boolean),
200
212
  return_url: T.nilable(String),
201
213
  show_saved_payment_methods: T::Boolean,
@@ -54,6 +54,18 @@ module Dodopayments
54
54
  sig { returns(T.nilable(Time)) }
55
55
  attr_accessor :expires_on
56
56
 
57
+ # One time products associated with the purchase of subscription
58
+ sig do
59
+ returns(
60
+ T.nilable(
61
+ T::Array[
62
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart
63
+ ]
64
+ )
65
+ )
66
+ end
67
+ attr_accessor :one_time_product_cart
68
+
57
69
  # URL to checkout page
58
70
  sig { returns(T.nilable(String)) }
59
71
  attr_accessor :payment_link
@@ -69,6 +81,12 @@ module Dodopayments
69
81
  client_secret: T.nilable(String),
70
82
  discount_id: T.nilable(String),
71
83
  expires_on: T.nilable(Time),
84
+ one_time_product_cart:
85
+ T.nilable(
86
+ T::Array[
87
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart::OrHash
88
+ ]
89
+ ),
72
90
  payment_link: T.nilable(String)
73
91
  ).returns(T.attached_class)
74
92
  end
@@ -93,6 +111,8 @@ module Dodopayments
93
111
  discount_id: nil,
94
112
  # Expiry timestamp of the payment link
95
113
  expires_on: nil,
114
+ # One time products associated with the purchase of subscription
115
+ one_time_product_cart: nil,
96
116
  # URL to checkout page
97
117
  payment_link: nil
98
118
  )
@@ -110,12 +130,46 @@ module Dodopayments
110
130
  client_secret: T.nilable(String),
111
131
  discount_id: T.nilable(String),
112
132
  expires_on: T.nilable(Time),
133
+ one_time_product_cart:
134
+ T.nilable(
135
+ T::Array[
136
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart
137
+ ]
138
+ ),
113
139
  payment_link: T.nilable(String)
114
140
  }
115
141
  )
116
142
  end
117
143
  def to_hash
118
144
  end
145
+
146
+ class OneTimeProductCart < Dodopayments::Internal::Type::BaseModel
147
+ OrHash =
148
+ T.type_alias do
149
+ T.any(
150
+ Dodopayments::Models::SubscriptionCreateResponse::OneTimeProductCart,
151
+ Dodopayments::Internal::AnyHash
152
+ )
153
+ end
154
+
155
+ sig { returns(String) }
156
+ attr_accessor :product_id
157
+
158
+ sig { returns(Integer) }
159
+ attr_accessor :quantity
160
+
161
+ sig do
162
+ params(product_id: String, quantity: Integer).returns(
163
+ T.attached_class
164
+ )
165
+ end
166
+ def self.new(product_id:, quantity:)
167
+ end
168
+
169
+ sig { override.returns({ product_id: String, quantity: Integer }) }
170
+ def to_hash
171
+ end
172
+ end
119
173
  end
120
174
  end
121
175
  end
@@ -0,0 +1,118 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionPreviewChangePlanParams < Dodopayments::Internal::Type::BaseModel
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::SubscriptionPreviewChangePlanParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Unique identifier of the product to subscribe to
18
+ sig { returns(String) }
19
+ attr_accessor :product_id
20
+
21
+ # Proration Billing Mode
22
+ sig do
23
+ returns(
24
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::OrSymbol
25
+ )
26
+ end
27
+ attr_accessor :proration_billing_mode
28
+
29
+ # Number of units to subscribe for. Must be at least 1.
30
+ sig { returns(Integer) }
31
+ attr_accessor :quantity
32
+
33
+ # Addons for the new plan. Note : Leaving this empty would remove any existing
34
+ # addons
35
+ sig { returns(T.nilable(T::Array[Dodopayments::AttachAddon])) }
36
+ attr_accessor :addons
37
+
38
+ sig do
39
+ params(
40
+ product_id: String,
41
+ proration_billing_mode:
42
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::OrSymbol,
43
+ quantity: Integer,
44
+ addons: T.nilable(T::Array[Dodopayments::AttachAddon::OrHash]),
45
+ request_options: Dodopayments::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # Unique identifier of the product to subscribe to
50
+ product_id:,
51
+ # Proration Billing Mode
52
+ proration_billing_mode:,
53
+ # Number of units to subscribe for. Must be at least 1.
54
+ quantity:,
55
+ # Addons for the new plan. Note : Leaving this empty would remove any existing
56
+ # addons
57
+ addons: nil,
58
+ request_options: {}
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ product_id: String,
66
+ proration_billing_mode:
67
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::OrSymbol,
68
+ quantity: Integer,
69
+ addons: T.nilable(T::Array[Dodopayments::AttachAddon]),
70
+ request_options: Dodopayments::RequestOptions
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+
77
+ # Proration Billing Mode
78
+ module ProrationBillingMode
79
+ extend Dodopayments::Internal::Type::Enum
80
+
81
+ TaggedSymbol =
82
+ T.type_alias do
83
+ T.all(
84
+ Symbol,
85
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode
86
+ )
87
+ end
88
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
89
+
90
+ PRORATED_IMMEDIATELY =
91
+ T.let(
92
+ :prorated_immediately,
93
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::TaggedSymbol
94
+ )
95
+ FULL_IMMEDIATELY =
96
+ T.let(
97
+ :full_immediately,
98
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::TaggedSymbol
99
+ )
100
+ DIFFERENCE_IMMEDIATELY =
101
+ T.let(
102
+ :difference_immediately,
103
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::TaggedSymbol
104
+ )
105
+
106
+ sig do
107
+ override.returns(
108
+ T::Array[
109
+ Dodopayments::SubscriptionPreviewChangePlanParams::ProrationBillingMode::TaggedSymbol
110
+ ]
111
+ )
112
+ end
113
+ def self.values
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end