dodopayments 2.20.0 → 2.21.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 (78) 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 +41 -4
  5. data/lib/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rb +4 -2
  6. data/lib/dodopayments/models/discount.rb +95 -3
  7. data/lib/dodopayments/models/discount_create_params.rb +110 -3
  8. data/lib/dodopayments/models/discount_list_params.rb +7 -2
  9. data/lib/dodopayments/models/discount_type.rb +1 -0
  10. data/lib/dodopayments/models/discount_update_params.rb +108 -3
  11. data/lib/dodopayments/models/payment.rb +162 -1
  12. data/lib/dodopayments/models/payment_list_params.rb +163 -1
  13. data/lib/dodopayments/models/payment_method_types.rb +0 -1
  14. data/lib/dodopayments/models/price.rb +19 -1
  15. data/lib/dodopayments/models/subscription.rb +11 -1
  16. data/lib/dodopayments/models/subscription_create_response.rb +10 -1
  17. data/lib/dodopayments/models/subscription_list_params.rb +12 -1
  18. data/lib/dodopayments/models/subscription_list_response.rb +11 -1
  19. data/lib/dodopayments/models/subscription_update_payment_method_webhook_event.rb +40 -0
  20. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +4 -1
  21. data/lib/dodopayments/models/unwrap_webhook_event.rb +4 -1
  22. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  23. data/lib/dodopayments/models.rb +3 -0
  24. data/lib/dodopayments/resources/credit_entitlements/balances.rb +1 -1
  25. data/lib/dodopayments/resources/discounts.rb +24 -5
  26. data/lib/dodopayments/resources/payments.rb +3 -1
  27. data/lib/dodopayments/resources/subscriptions.rb +6 -1
  28. data/lib/dodopayments/resources/webhooks.rb +2 -2
  29. data/lib/dodopayments/version.rb +1 -1
  30. data/lib/dodopayments.rb +1 -0
  31. data/rbi/dodopayments/models/checkout_session_preview_response.rbi +47 -5
  32. data/rbi/dodopayments/models/credit_entitlements/balance_create_ledger_entry_params.rbi +6 -2
  33. data/rbi/dodopayments/models/discount.rbi +151 -2
  34. data/rbi/dodopayments/models/discount_create_params.rbi +197 -2
  35. data/rbi/dodopayments/models/discount_list_params.rbi +6 -2
  36. data/rbi/dodopayments/models/discount_type.rbi +1 -0
  37. data/rbi/dodopayments/models/discount_update_params.rbi +193 -2
  38. data/rbi/dodopayments/models/payment.rbi +365 -0
  39. data/rbi/dodopayments/models/payment_list_params.rbi +327 -0
  40. data/rbi/dodopayments/models/payment_method_types.rbi +0 -1
  41. data/rbi/dodopayments/models/price.rbi +20 -0
  42. data/rbi/dodopayments/models/subscription.rbi +15 -3
  43. data/rbi/dodopayments/models/subscription_create_response.rbi +13 -3
  44. data/rbi/dodopayments/models/subscription_list_params.rbi +11 -0
  45. data/rbi/dodopayments/models/subscription_list_response.rbi +15 -3
  46. data/rbi/dodopayments/models/subscription_update_payment_method_webhook_event.rbi +67 -0
  47. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +1 -0
  48. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +1 -0
  49. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  50. data/rbi/dodopayments/models.rbi +3 -0
  51. data/rbi/dodopayments/resources/credit_entitlements/balances.rbi +3 -1
  52. data/rbi/dodopayments/resources/discounts.rbi +57 -3
  53. data/rbi/dodopayments/resources/payments.rbi +3 -0
  54. data/rbi/dodopayments/resources/subscriptions.rbi +3 -0
  55. data/rbi/dodopayments/resources/webhooks.rbi +2 -0
  56. data/sig/dodopayments/models/checkout_session_preview_response.rbs +18 -3
  57. data/sig/dodopayments/models/discount.rbs +69 -0
  58. data/sig/dodopayments/models/discount_create_params.rbs +69 -0
  59. data/sig/dodopayments/models/discount_type.rbs +2 -1
  60. data/sig/dodopayments/models/discount_update_params.rbs +69 -0
  61. data/sig/dodopayments/models/payment.rbs +145 -0
  62. data/sig/dodopayments/models/payment_list_params.rbs +308 -0
  63. data/sig/dodopayments/models/payment_method_types.rbs +0 -2
  64. data/sig/dodopayments/models/price.rbs +10 -0
  65. data/sig/dodopayments/models/subscription.rbs +8 -3
  66. data/sig/dodopayments/models/subscription_create_response.rbs +8 -3
  67. data/sig/dodopayments/models/subscription_list_params.rbs +7 -0
  68. data/sig/dodopayments/models/subscription_list_response.rbs +8 -3
  69. data/sig/dodopayments/models/subscription_update_payment_method_webhook_event.rbs +35 -0
  70. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +1 -0
  71. data/sig/dodopayments/models/unwrap_webhook_event.rbs +1 -0
  72. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  73. data/sig/dodopayments/models.rbs +2 -0
  74. data/sig/dodopayments/resources/discounts.rbs +8 -0
  75. data/sig/dodopayments/resources/payments.rbs +1 -0
  76. data/sig/dodopayments/resources/subscriptions.rbs +1 -0
  77. data/sig/dodopayments/resources/webhooks.rbs +2 -0
  78. metadata +5 -2
@@ -13,6 +13,12 @@ module Dodopayments
13
13
  # @return [String, nil]
14
14
  optional :brand_id, String
15
15
 
16
+ # @!attribute cancel_at_next_billing_date
17
+ # Filter by cancel_at_next_billing_date (subscriptions scheduled for cancellation)
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :cancel_at_next_billing_date, Dodopayments::Internal::Type::Boolean
21
+
16
22
  # @!attribute created_at_gte
17
23
  # Get events after this created time
18
24
  #
@@ -55,9 +61,14 @@ module Dodopayments
55
61
  # @return [Symbol, Dodopayments::Models::SubscriptionListParams::Status, nil]
56
62
  optional :status, enum: -> { Dodopayments::SubscriptionListParams::Status }
57
63
 
58
- # @!method initialize(brand_id: nil, created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
64
+ # @!method initialize(brand_id: nil, cancel_at_next_billing_date: nil, created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
65
+ # Some parameter documentations has been truncated, see
66
+ # {Dodopayments::Models::SubscriptionListParams} for more details.
67
+ #
59
68
  # @param brand_id [String] filter by Brand id
60
69
  #
70
+ # @param cancel_at_next_billing_date [Boolean] Filter by cancel_at_next_billing_date (subscriptions scheduled for cancellation)
71
+ #
61
72
  # @param created_at_gte [Time] Get events after this created time
62
73
  #
63
74
  # @param created_at_lte [Time] Get events created before this time
@@ -182,7 +182,15 @@ module Dodopayments
182
182
  # @return [String, nil]
183
183
  optional :tax_id, String, nil?: true
184
184
 
185
- # @!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)
185
+ # @!attribute trial_amount
186
+ # Per-unit trial amount after discounts, snapshotted at subscription creation
187
+ # (price currency minor units, pre-quantity, pre-tax). Null for a free trial or no
188
+ # trial.
189
+ #
190
+ # @return [Integer, nil]
191
+ optional :trial_amount, Integer, nil?: true
192
+
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)
186
194
  # Some parameter documentations has been truncated, see
187
195
  # {Dodopayments::Models::SubscriptionListResponse} for more details.
188
196
  #
@@ -245,6 +253,8 @@ module Dodopayments
245
253
  # @param scheduled_change [Dodopayments::Models::ScheduledPlanChange, nil] Scheduled plan change details, if any
246
254
  #
247
255
  # @param tax_id [String, nil] Tax identifier provided for this subscription (if applicable)
256
+ #
257
+ # @param trial_amount [Integer, nil] Per-unit trial amount after discounts, snapshotted at subscription creation
248
258
 
249
259
  class Discount < Dodopayments::Internal::Type::BaseModel
250
260
  # @!attribute discount_id
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class SubscriptionUpdatePaymentMethodWebhookEvent < 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.update_payment_method"]
28
+ required :type, const: :"subscription.update_payment_method"
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type: :"subscription.update_payment_method")
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.update_payment_method"] The event type
38
+ end
39
+ end
40
+ end
@@ -83,10 +83,13 @@ module Dodopayments
83
83
 
84
84
  variant :"subscription.renewed", -> { Dodopayments::SubscriptionRenewedWebhookEvent }
85
85
 
86
+ variant :"subscription.update_payment_method",
87
+ -> { Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent }
88
+
86
89
  variant :"subscription.updated", -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
87
90
 
88
91
  # @!method self.variants
89
- # @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::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)]
92
+ # @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::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)]
90
93
  end
91
94
  end
92
95
  end
@@ -83,10 +83,13 @@ module Dodopayments
83
83
 
84
84
  variant :"subscription.renewed", -> { Dodopayments::SubscriptionRenewedWebhookEvent }
85
85
 
86
+ variant :"subscription.update_payment_method",
87
+ -> { Dodopayments::SubscriptionUpdatePaymentMethodWebhookEvent }
88
+
86
89
  variant :"subscription.updated", -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
87
90
 
88
91
  # @!method self.variants
89
- # @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::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)]
92
+ # @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::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)]
90
93
  end
91
94
  end
92
95
  end
@@ -28,6 +28,7 @@ module Dodopayments
28
28
  SUBSCRIPTION_EXPIRED = :"subscription.expired"
29
29
  SUBSCRIPTION_PLAN_CHANGED = :"subscription.plan_changed"
30
30
  SUBSCRIPTION_UPDATED = :"subscription.updated"
31
+ SUBSCRIPTION_UPDATE_PAYMENT_METHOD = :"subscription.update_payment_method"
31
32
  LICENSE_KEY_CREATED = :"license_key.created"
32
33
  PAYOUT_NOT_INITIATED = :"payout.not_initiated"
33
34
  PAYOUT_ON_HOLD = :"payout.on_hold"
@@ -478,6 +478,9 @@ module Dodopayments
478
478
 
479
479
  SubscriptionUpdatePaymentMethodParams = Dodopayments::Models::SubscriptionUpdatePaymentMethodParams
480
480
 
481
+ SubscriptionUpdatePaymentMethodWebhookEvent =
482
+ Dodopayments::Models::SubscriptionUpdatePaymentMethodWebhookEvent
483
+
481
484
  TaxCategory = Dodopayments::Models::TaxCategory
482
485
 
483
486
  ThemeConfig = Dodopayments::Models::ThemeConfig
@@ -136,7 +136,7 @@ module Dodopayments
136
136
  #
137
137
  # @param credit_entitlement_id [String] Path param: Credit Entitlement ID
138
138
  #
139
- # @param amount [String] Body param: Amount to credit or debit
139
+ # @param amount [String] Body param: Amount to credit or debit. Bounded to a `NUMERIC(38,28)` column, so
140
140
  #
141
141
  # @param entry_type [Symbol, Dodopayments::Models::CreditEntitlements::LedgerEntryType] Body param: Entry type: credit or debit
142
142
  #
@@ -9,24 +9,32 @@ module Dodopayments
9
9
  # POST /discounts If `code` is omitted or empty, a random 16-char uppercase code
10
10
  # is generated.
11
11
  #
12
- # @overload create(amount:, type:, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, usage_limit: nil, request_options: {})
12
+ # @overload create(amount:, type:, code: nil, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: nil, subscription_cycles: nil, usage_limit: nil, request_options: {})
13
13
  #
14
14
  # @param amount [Integer] The discount amount in **basis points** (e.g. `540` means `5.4%`, `10000` means
15
15
  #
16
- # @param type [Symbol, Dodopayments::Models::DiscountType] The discount type. Currently only `percentage` is supported.
16
+ # @param type [Symbol, Dodopayments::Models::DiscountType] The discount type: `percentage` or `flat` (`flat_per_unit` stays blocked).
17
17
  #
18
18
  # @param code [String, nil] Optionally supply a code (will be uppercased).
19
19
  #
20
+ # @param currency_options [Array<Dodopayments::Models::DiscountCreateParams::CurrencyOption>, nil] Per-currency options (flat deduction / percentage cap + minimum subtotal).
21
+ #
22
+ # @param customer_eligibility [Symbol, Dodopayments::Models::DiscountCreateParams::CustomerEligibility, nil] Who may redeem this discount code. Defaults to `any` (unrestricted).
23
+ #
20
24
  # @param expires_at [Time, nil] When the discount expires, if ever.
21
25
  #
22
26
  # @param metadata [Hash{Symbol=>String, Float, Boolean}] Additional metadata for the discount
23
27
  #
24
28
  # @param name [String, nil]
25
29
  #
30
+ # @param per_customer_usage_limit [Integer, nil] Maximum number of times a single customer may redeem this discount.
31
+ #
26
32
  # @param preserve_on_plan_change [Boolean] Whether this discount should be preserved when a subscription changes plans.
27
33
  #
28
34
  # @param restricted_to [Array<String>, nil] List of product IDs to restrict usage (if any).
29
35
  #
36
+ # @param starts_at [Time, nil] When the discount becomes active, if scheduled for the future.
37
+ #
30
38
  # @param subscription_cycles [Integer, nil] Number of subscription billing cycles this discount is valid for.
31
39
  #
32
40
  # @param usage_limit [Integer, nil] How many times this discount can be used (if any).
@@ -72,7 +80,7 @@ module Dodopayments
72
80
  #
73
81
  # PATCH /discounts/{discount_id}
74
82
  #
75
- # @overload update(discount_id, amount: nil, code: nil, expires_at: nil, metadata: nil, name: nil, preserve_on_plan_change: nil, restricted_to: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {})
83
+ # @overload update(discount_id, amount: nil, code: nil, currency_options: nil, customer_eligibility: nil, expires_at: nil, metadata: nil, name: nil, per_customer_usage_limit: nil, preserve_on_plan_change: nil, restricted_to: nil, starts_at: nil, subscription_cycles: nil, type: nil, usage_limit: nil, request_options: {})
76
84
  #
77
85
  # @param discount_id [String] Discount Id
78
86
  #
@@ -80,19 +88,27 @@ module Dodopayments
80
88
  #
81
89
  # @param code [String, nil] If present, update the discount code (uppercase).
82
90
  #
91
+ # @param currency_options [Array<Dodopayments::Models::DiscountUpdateParams::CurrencyOption>, nil] If present, fully replaces the discount's currency options (replace-set
92
+ #
93
+ # @param customer_eligibility [Symbol, Dodopayments::Models::DiscountUpdateParams::CustomerEligibility, nil] If present, update who may redeem this discount. Plain field (not
94
+ #
83
95
  # @param expires_at [Time, nil]
84
96
  #
85
97
  # @param metadata [Hash{Symbol=>String, Float, Boolean}, nil] Additional metadata for the discount
86
98
  #
87
99
  # @param name [String, nil]
88
100
  #
101
+ # @param per_customer_usage_limit [Integer, nil] If present, update the per-customer usage limit (double-option: send
102
+ #
89
103
  # @param preserve_on_plan_change [Boolean, nil] Whether this discount should be preserved when a subscription changes plans.
90
104
  #
91
105
  # @param restricted_to [Array<String>, nil] If present, replaces all restricted product IDs with this new set.
92
106
  #
107
+ # @param starts_at [Time, nil] If present, update `starts_at` (double-option: send `null` to clear it).
108
+ #
93
109
  # @param subscription_cycles [Integer, nil] Number of subscription billing cycles this discount is valid for.
94
110
  #
95
- # @param type [Symbol, Dodopayments::Models::DiscountType, nil] If present, update the discount type. Currently only `percentage` is supported.
111
+ # @param type [Symbol, Dodopayments::Models::DiscountType, nil] If present, update the discount type (`percentage` or `flat`).
96
112
  #
97
113
  # @param usage_limit [Integer, nil]
98
114
  #
@@ -112,11 +128,14 @@ module Dodopayments
112
128
  )
113
129
  end
114
130
 
131
+ # Some parameter documentations has been truncated, see
132
+ # {Dodopayments::Models::DiscountListParams} for more details.
133
+ #
115
134
  # GET /discounts
116
135
  #
117
136
  # @overload list(active: nil, code: nil, discount_type: nil, page_number: nil, page_size: nil, product_id: nil, request_options: {})
118
137
  #
119
- # @param active [Boolean] Filter by active status (true = not expired, false = expired)
138
+ # @param active [Boolean] Filter by active status. `true` = currently redeemable (started, not
120
139
  #
121
140
  # @param code [String] Filter by discount code (partial match, case-insensitive)
122
141
  #
@@ -82,7 +82,7 @@ module Dodopayments
82
82
  )
83
83
  end
84
84
 
85
- # @overload list(brand_id: nil, created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, subscription_id: nil, request_options: {})
85
+ # @overload list(brand_id: nil, created_at_gte: nil, created_at_lte: nil, currency: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, subscription_id: nil, request_options: {})
86
86
  #
87
87
  # @param brand_id [String] filter by Brand id
88
88
  #
@@ -90,6 +90,8 @@ module Dodopayments
90
90
  #
91
91
  # @param created_at_lte [Time] Get events created before this time
92
92
  #
93
+ # @param currency [Symbol, Dodopayments::Models::PaymentListParams::Currency] Filter by currency
94
+ #
93
95
  # @param customer_id [String] Filter by customer id
94
96
  #
95
97
  # @param page_number [Integer] Page number default is 0
@@ -145,10 +145,15 @@ module Dodopayments
145
145
  )
146
146
  end
147
147
 
148
- # @overload list(brand_id: nil, created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
148
+ # Some parameter documentations has been truncated, see
149
+ # {Dodopayments::Models::SubscriptionListParams} for more details.
150
+ #
151
+ # @overload list(brand_id: nil, cancel_at_next_billing_date: nil, created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
149
152
  #
150
153
  # @param brand_id [String] filter by Brand id
151
154
  #
155
+ # @param cancel_at_next_billing_date [Boolean] Filter by cancel_at_next_billing_date (subscriptions scheduled for cancellation)
156
+ #
152
157
  # @param created_at_gte [Time] Get events after this created time
153
158
  #
154
159
  # @param created_at_lte [Time] Get events created before this time
@@ -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::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]
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::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]
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::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]
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::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]
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.20.0"
4
+ VERSION = "2.21.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -352,6 +352,7 @@ require_relative "dodopayments/models/subscription_updated_webhook_event"
352
352
  require_relative "dodopayments/models/subscription_update_params"
353
353
  require_relative "dodopayments/models/subscription_update_payment_method_params"
354
354
  require_relative "dodopayments/models/subscription_update_payment_method_response"
355
+ require_relative "dodopayments/models/subscription_update_payment_method_webhook_event"
355
356
  require_relative "dodopayments/models/tax_category"
356
357
  require_relative "dodopayments/models/theme_config"
357
358
  require_relative "dodopayments/models/theme_mode_config"
@@ -56,6 +56,13 @@ module Dodopayments
56
56
  sig { returns(Integer) }
57
57
  attr_accessor :total_price
58
58
 
59
+ # The upcoming billing date for subscriptions, computed relative to now: with a
60
+ # trial it is `now + trial_period_days`, otherwise `now + payment frequency`.
61
+ # `None` for one-time-only carts. This is a preview estimate; the authoritative
62
+ # value is set when the subscription activates.
63
+ sig { returns(T.nilable(Time)) }
64
+ attr_accessor :next_billing_date
65
+
59
66
  # Breakup of recurring payments (None for one-time only)
60
67
  sig do
61
68
  returns(
@@ -92,6 +99,17 @@ module Dodopayments
92
99
  sig { returns(T.nilable(Integer)) }
93
100
  attr_accessor :total_tax
94
101
 
102
+ # Per-unit trial amount after discounts, in the price currency's minor units
103
+ # (pre-quantity, pre-tax; see `current_breakup` for the taxed total due today).
104
+ # Only present for a paid trial; `None` for a free trial or no trial.
105
+ sig { returns(T.nilable(Integer)) }
106
+ attr_accessor :trial_amount
107
+
108
+ # Effective trial duration in days for the subscription line, when there's a trial
109
+ # (free or paid). `None` if no subscription or no trial.
110
+ sig { returns(T.nilable(Integer)) }
111
+ attr_accessor :trial_period_days
112
+
95
113
  # Data returned by the calculate checkout session API
96
114
  sig do
97
115
  params(
@@ -105,6 +123,7 @@ module Dodopayments
105
123
  Dodopayments::Models::CheckoutSessionPreviewResponse::ProductCart::OrHash
106
124
  ],
107
125
  total_price: Integer,
126
+ next_billing_date: T.nilable(Time),
108
127
  recurring_breakup:
109
128
  T.nilable(
110
129
  Dodopayments::Models::CheckoutSessionPreviewResponse::RecurringBreakup::OrHash
@@ -112,7 +131,9 @@ module Dodopayments
112
131
  tax_id_business_name: T.nilable(String),
113
132
  tax_id_err_msg: T.nilable(String),
114
133
  tax_id_format_name: T.nilable(String),
115
- total_tax: T.nilable(Integer)
134
+ total_tax: T.nilable(Integer),
135
+ trial_amount: T.nilable(Integer),
136
+ trial_period_days: T.nilable(Integer)
116
137
  ).returns(T.attached_class)
117
138
  end
118
139
  def self.new(
@@ -131,6 +152,11 @@ module Dodopayments
131
152
  product_cart:,
132
153
  # Total calculate price of the product cart
133
154
  total_price:,
155
+ # The upcoming billing date for subscriptions, computed relative to now: with a
156
+ # trial it is `now + trial_period_days`, otherwise `now + payment frequency`.
157
+ # `None` for one-time-only carts. This is a preview estimate; the authoritative
158
+ # value is set when the subscription activates.
159
+ next_billing_date: nil,
134
160
  # Breakup of recurring payments (None for one-time only)
135
161
  recurring_breakup: nil,
136
162
  # Registered business name from the official registry (EU/GB/AU) when found
@@ -140,7 +166,14 @@ module Dodopayments
140
166
  # The matched tax ID notation (e.g. "VAT Number", "GSTIN") when valid
141
167
  tax_id_format_name: nil,
142
168
  # Total tax
143
- total_tax: nil
169
+ total_tax: nil,
170
+ # Per-unit trial amount after discounts, in the price currency's minor units
171
+ # (pre-quantity, pre-tax; see `current_breakup` for the taxed total due today).
172
+ # Only present for a paid trial; `None` for a free trial or no trial.
173
+ trial_amount: nil,
174
+ # Effective trial duration in days for the subscription line, when there's a trial
175
+ # (free or paid). `None` if no subscription or no trial.
176
+ trial_period_days: nil
144
177
  )
145
178
  end
146
179
 
@@ -157,6 +190,7 @@ module Dodopayments
157
190
  Dodopayments::Models::CheckoutSessionPreviewResponse::ProductCart
158
191
  ],
159
192
  total_price: Integer,
193
+ next_billing_date: T.nilable(Time),
160
194
  recurring_breakup:
161
195
  T.nilable(
162
196
  Dodopayments::Models::CheckoutSessionPreviewResponse::RecurringBreakup
@@ -164,7 +198,9 @@ module Dodopayments
164
198
  tax_id_business_name: T.nilable(String),
165
199
  tax_id_err_msg: T.nilable(String),
166
200
  tax_id_format_name: T.nilable(String),
167
- total_tax: T.nilable(Integer)
201
+ total_tax: T.nilable(Integer),
202
+ trial_amount: T.nilable(Integer),
203
+ trial_period_days: T.nilable(Integer)
168
204
  }
169
205
  )
170
206
  end
@@ -316,7 +352,8 @@ module Dodopayments
316
352
  sig { returns(T.nilable(String)) }
317
353
  attr_accessor :description
318
354
 
319
- # discount percentage
355
+ # Percentage rate (basis points) of the applicable percentage code; null for flat
356
+ # codes (their deduction is `og_price - discounted_price`).
320
357
  sig { returns(T.nilable(Integer)) }
321
358
  attr_accessor :discount_amount
322
359
 
@@ -393,7 +430,8 @@ module Dodopayments
393
430
  tax_rate:,
394
431
  addons: nil,
395
432
  description: nil,
396
- # discount percentage
433
+ # Percentage rate (basis points) of the applicable percentage code; null for flat
434
+ # codes (their deduction is `og_price - discounted_price`).
397
435
  discount_amount: nil,
398
436
  # number of cycles the discount will apply
399
437
  discount_cycle: nil,
@@ -605,6 +643,8 @@ module Dodopayments
605
643
  sig { returns(T.nilable(String)) }
606
644
  attr_accessor :description
607
645
 
646
+ # Percentage rate (basis points) of the applicable percentage code; null for flat
647
+ # codes (their deduction is `og_price - discounted_price`).
608
648
  sig { returns(T.nilable(Integer)) }
609
649
  attr_accessor :discount_amount
610
650
 
@@ -642,6 +682,8 @@ module Dodopayments
642
682
  tax_inclusive:,
643
683
  tax_rate:,
644
684
  description: nil,
685
+ # Percentage rate (basis points) of the applicable percentage code; null for flat
686
+ # codes (their deduction is `og_price - discounted_price`).
645
687
  discount_amount: nil,
646
688
  tax: nil
647
689
  )
@@ -21,7 +21,9 @@ module Dodopayments
21
21
  sig { returns(String) }
22
22
  attr_accessor :customer_id
23
23
 
24
- # Amount to credit or debit
24
+ # Amount to credit or debit. Bounded to a `NUMERIC(38,28)` column, so the integer
25
+ # part must have fewer than 10 digits (< 10^10); larger values previously reached
26
+ # the DB and failed with a 22003 overflow surfaced as a 500.
25
27
  sig { returns(String) }
26
28
  attr_accessor :amount
27
29
 
@@ -70,7 +72,9 @@ module Dodopayments
70
72
  def self.new(
71
73
  credit_entitlement_id:,
72
74
  customer_id:,
73
- # Amount to credit or debit
75
+ # Amount to credit or debit. Bounded to a `NUMERIC(38,28)` column, so the integer
76
+ # part must have fewer than 10 digits (< 10^10); larger values previously reached
77
+ # the DB and failed with a 22003 overflow surfaced as a 500.
74
78
  amount:,
75
79
  # Entry type: credit or debit
76
80
  entry_type:,